├── CHANGELOG ├── README.md ├── tr_st.sh └── tr_st.tar /CHANGELOG: -------------------------------------------------------------------------------- 1 | ### Change LOG ### 2 | 3 | ## Update v2.9.0-r02 - 2022.04.29 4 | - Fixed an error related to the previous version 42218 installation 5 | 6 | ## Update v2.9.0-r01 - 2022.04.29 7 | - Changed to allow automatic pre-download of *.pat files with the changed link for version 42661, 42661-1 8 | - Reflects the change so that rploader builds version 42661 at once (reduces build time) 9 | 10 | ## Update v2.7.9-r02 - 2022.04.27 11 | - A typo was identified and corrected in the USB creation function 12 | 13 | ## Update v2.7.9-r01 - 2022.04.19 14 | - include tr_cb.sh 15 | - Support Create boot image & USB on Tinycore 16 | 17 | ## Update v2.2.1-r01 - 2022.04.16 18 | - When modifying GRUB, the value fixed to /dev/sdb for the boot partition is modified 19 | so that it can be changed automatically depending on the execution environment. 20 | 21 | ## Update v2.2.0-r01 - 2022.04.14 22 | - 7.1-42661 Installation support (NEW & Migration) 23 | - Adjust variables and functions 24 | - 7.1.0-42621 RC and existing version installation support maintained 25 | 26 | ## Update v1.7.0-r01 - 2022.04.07 27 | - Add ext-manager.sh update process 28 | - Change the extension driver to be multi-selectable (ex> 57,13,14,10) 29 | 30 | ## Update v1.6.0-r01 - 2022.04.07 31 | - 7.1-42661 Version is newly created, and the problem that the list is not printed when the new method is performed has been fixed. 32 | - Modification of menu output function for future installation of 7.1-42661 version 33 | 34 | ## Update v1.4.6-r01 - 2022.04.03 35 | - Modified so that it can be run from a non-root tc account 36 | - 7.1.0-42621 Added feature to support installation 37 | - remake a manual video 38 | 39 | ## Update v.1.3.5-r01 - 2022.03.28 40 | - Organize all variable names 41 | - Added new process such as model name list and platform automatic selection through synology.com 42 | - Working with Model and Driver List Arrays 43 | - Create a new manual video 44 | 45 | ## Update v.0.9.9-r01 - 2022.03.15 46 | - Chage file name tr_est.sh -> tr_st.sh 47 | - Modified to enable not only ESXi, but also general methods 48 | - Change to proceed by selecting model, platform, and driver 49 | 50 | ## Update v.0.9.8-b02 - 2022.03.14 51 | - Add Interactive mothod 52 | 53 | ## Create v.0.9.0-b01 - 2022.03.12 54 | - Create tr_est.sh For ESXi 55 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Requirement 2 | =============================================================
3 | VM SATA Controller Config 4 | 5 | # Case1. New Create VM 6 | 7 |     Create SATA controller 2ea 8 | 9 |     SATA Controller 0:0 -> DATA Disk Iamge 10 |     SATA Controller 1:0 -> Tinycore Disk Image 11 | ![image](https://user-images.githubusercontent.com/42568682/158375978-cea33a04-4292-4d4c-abd9-8d531b203721.png) 12 | 13 | 14 | # Case2. Already Use VM 15 | 16 |     Add to SATA Controller 1ea 17 | 18 | AS-IS
19 |  SATA Controller 0 (0:0) -> Tinycore Disk Image 
20 | SATA Controller 0 (0:1) -> DATA Disk Iamge
21 | TO-BE
22 | SATA Controller 0 (0:0) -> DATA Disk Iamge
23 |  SATA Controller 1 (1:0) -> Tinycore Disk Image
  24 | 25 |  Change to Bios Boot Squence
26 | ![image](https://user-images.githubusercontent.com/42568682/158376024-af59cd26-688c-462e-b7fb-64ab2e681568.png) 27 | 28 | 29 | # Case3. Use VMWare Paravirtual 30 | 31 |    Create SATA Controller 1ea, SCIS Controller 1ea 32 | 33 |     SATA Controller 0:0 -> Tinycore Disk Image
34 |     SCSI Controller 0:0 -> DATA Disk Iamge
35 | ![image](https://user-images.githubusercontent.com/42568682/158376093-1d02a323-0cc0-4ff2-9e70-8a20ce026605.png) 36 | 37 | After setting to all case an error occurs when entering Tinycore.
38 | ![image](https://user-images.githubusercontent.com/42568682/158376130-2505c4b3-adce-4975-a7dc-a41f993154fb.png)
39 | enter 'e' Edit GRUB menu 
40 | change ![image](https://user-images.githubusercontent.com/42568682/158376183-90f7b886-50ca-4df9-abe1-a694070497a5.png) to ![image](https://user-images.githubusercontent.com/42568682/158376227-cfb222f8-05fd-45b0-8259-af824b170caa.png)
41 | enter 'F10' Continue Tinycore booting. 42 | 43 | 44 | If you set up VM like this and proceed, Data Disk will be defined as drive 1 in the DSM storage later. (In case of SCSI, define from drive 2) 45 | 46 | made a video of the config process. 47 | 48 | [![tr_st](http://img.youtube.com/vi/6MyYtv1X52g/0.jpg)](https://youtu.be/6MyYtv1X52g) 49 | 50 | 51 | # Howto Run 52 | ============================================================= 53 |   54 | 55 | 1. Download attached file on your PC (tr_st.tar) 56 | 57 |     or See the source page on github -> http://github.com/FOXBI/tr_st 58 |   59 | 60 | 2. Start up your Tinycore and upload it. (using sftp....) 61 | 62 |     Alternatively, you can paste the source directly from the shell. 63 |   64 | 65 | 3. Connect to ssh by tc account. 66 |   67 | 68 | 4. Progress as tc user. 69 |   70 | 71 | 5. Edit user_config.json 72 | 73 |     Serial, MAC, Sataportmap, diskidxmap etc... 74 | 75 |     recommand value.. 76 | 77 | Only use SATA
78 |     "SataPortMap": "9",
79 |     "DiskIdxMap": "0" 80 | 81 | Use SATA + SCSI
82 |     "SasIdxMap": "0",
83 |     "SataPortMap": "1",
84 |     "DiskIdxMap": "0" 85 | 86 |   87 | 6. Check Directory location 88 | 89 | pwd 90 | /home/tc 91 |   92 | 93 | 7. Decompress file & check file: 94 | 95 | tar xvf tr_st.tar 96 | ls -lrt 97 | chmod 755 tr_st.sh 98 | 99 | (check root’s run auth) 100 | 101 |   102 | 8. Run to Source file 103 | 104 | ./tr_st.sh 105 | 106 | 107 | When you execute it, proceed according to the description that is output. 108 | 109 | After reboot you install DSM keep going 110 | 111 | Follow the instructions to install (DS3622xs+ example) 112 | 113 | made a video of the setup process. 114 | 115 | [![tr_st](http://img.youtube.com/vi/doQX3RDh0FQ/0.jpg)](https://youtu.be/doQX3RDh0FQ) 116 | 117 | [![tr_st](http://img.youtube.com/vi/G996Y3pX1ws/0.jpg)](https://youtu.be/G996Y3pX1ws) 118 | 119 | [![tr_st](http://img.youtube.com/vi/ZQ_fQMnzNOE/0.jpg)](https://youtu.be/ZQ_fQMnzNOE) 120 | -------------------------------------------------------------------------------- /tr_st.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ver="3.0.0-r03" 3 | # 4 | # Made by FOXBI 5 | # 2023.05.31 6 | # 7 | # ============================================================================== 8 | # Y or N Function 9 | # ============================================================================== 10 | READ_YN () { # $1:question $2:default 11 | read -n1 -p "$1" Y_N 12 | case "$Y_N" in 13 | y) Y_N="y" 14 | echo -e "\n" ;; 15 | n) Y_N="n" 16 | echo -e "\n" ;; 17 | q) echo -e "\n" 18 | exit 0 ;; 19 | *) echo -e "\n" ;; 20 | esac 21 | } 22 | # ============================================================================== 23 | # Color Function 24 | # ============================================================================== 25 | cecho () { 26 | if [ -n "$3" ] 27 | then 28 | case "$3" in 29 | black | bk) bgcolor="40";; 30 | red | r) bgcolor="41";; 31 | green | g) bgcolor="42";; 32 | yellow | y) bgcolor="43";; 33 | blue | b) bgcolor="44";; 34 | purple | p) bgcolor="45";; 35 | cyan | c) bgcolor="46";; 36 | gray | gr) bgcolor="47";; 37 | esac 38 | else 39 | bgcolor="0" 40 | fi 41 | code="\033[" 42 | case "$1" in 43 | black | bk) color="${code}${bgcolor};30m";; 44 | red | r) color="${code}${bgcolor};31m";; 45 | green | g) color="${code}${bgcolor};32m";; 46 | yellow | y) color="${code}${bgcolor};33m";; 47 | blue | b) color="${code}${bgcolor};34m";; 48 | purple | p) color="${code}${bgcolor};35m";; 49 | cyan | c) color="${code}${bgcolor};36m";; 50 | gray | gr) color="${code}${bgcolor};37m";; 51 | esac 52 | 53 | text="$color$2${code}0m" 54 | echo -e "$text" 55 | } 56 | # ============================================================================== 57 | # Extension Driver Function 58 | # ============================================================================== 59 | EXDRIVER_FN () { 60 | echo "" 61 | cecho r "Add to Driver Repository..." 62 | echo "" 63 | READ_YN "Do you want Add Driver? Y/N : " 64 | ICHK=$Y_N 65 | while [ "$ICHK" == "y" ] || [ "$ICHK" == "Y" ] 66 | do 67 | ICNT= 68 | JCNT= 69 | IRRAY=() 70 | while read LINE_I; 71 | do 72 | ICNT=$(($ICNT + 1)) 73 | JCNT=$(($ICNT%5)) 74 | if [ "$JCNT" -eq "0" ] 75 | then 76 | IRRAY+=("$ICNT) $LINE_I\ln"); 77 | else 78 | IRRAY+=("$ICNT) $LINE_I\lt"); 79 | fi 80 | done < <(curl --no-progress-meter https://github.com/pocopico/rp-ext | grep "raw.githubusercontent.com" | awk '{print $2}' | awk -F= '{print $2}' | sed "s/\"//g" | awk -F/ '{print $7}') 81 | echo "" 82 | echo -e " ${IRRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 83 | echo "" 84 | read -n100 -p " -> Select Number Enter (To select multiple, separate them with , ): " I_O 85 | echo "" 86 | I_OCHK=`echo $I_O | grep , | wc -l` 87 | if [ "$I_OCHK" -gt "0" ] 88 | then 89 | while read LINE_J; 90 | do 91 | j=$((LINE_J - 1)) 92 | IEXT=`echo "${IRRAY[$j]}" | sed 's/\\\ln//g' | sed 's/\\\lt//g' | awk '{print $2}'` 93 | $CURDIR/rploader.sh ext $EVERSION add https://raw.githubusercontent.com/pocopico/rp-ext/master/$IEXT/rpext-index.json 94 | done < <(echo $I_O | tr ',' '\n') 95 | else 96 | I_O=$(($I_O - 1)) 97 | for (( i = 0; i < $ICNT; i++)); do 98 | if [ "$I_O" == $i ] 99 | then 100 | export IEXT=`echo "${IRRAY[$i]}" | sed 's/\\\ln//g' | sed 's/\\\lt//g' | awk '{print $2}'` 101 | fi 102 | done 103 | $CURDIR/rploader.sh ext $EVERSION add https://raw.githubusercontent.com/pocopico/rp-ext/master/$IEXT/rpext-index.json 104 | fi 105 | echo "" 106 | READ_YN "Do you want add driver? Y/N : " 107 | ICHK=$Y_N 108 | done 109 | } 110 | # ============================================================================== 111 | # Pat Download Function 7.2-64561 & 7.1-42661-1 112 | # ============================================================================== 113 | PATDL_FN () { 114 | TCHK=`sudo fdisk -l | grep -A 3 "*" | grep "sd.3" | awk '{print "df | grep "$1}' | sh | awk '{print $NF}'` 115 | mkdir -p $TCHK/auxfiles 116 | cd $TCHK/auxfiles 117 | DLMODEL=`echo $AMODEL | sed "s/\+/\%2B/g"` 118 | TPMODEL=`echo $AMODEL | sed "s/\+/p/g" | tr '[A-Z]' '[a-z]'` 119 | TVERSION=`echo $EVERSION | awk -F- '{print $NF}'` 120 | 121 | echo "" 122 | cecho r "Pat file pre-download...($TCHK/auxfiles/${TPMODEL}_${TVERSION}.pat)" 123 | echo "" 124 | if [ "$TVERSION" == "64561" ] 125 | then 126 | curl -o ${TPMODEL}_${TVERSION}.pat https://global.download.synology.com/download/DSM/release/7.2/${TVERSION}/DSM_${DLMODEL}_${TVERSION}.pat 127 | else 128 | curl -o ${TPMODEL}_${TVERSION}.pat https://global.download.synology.com/download/DSM/release/7.1/${TVERSION}-1/DSM_${DLMODEL}_${TVERSION}.pat 129 | fi 130 | cd $CURDIR 131 | echo "" 132 | } 133 | # ============================================================================== 134 | # Process Function 135 | # ============================================================================== 136 | clear 137 | CURDIR=`pwd` 138 | if [ "$CURDIR" != "/home/tc" ] 139 | then 140 | cd /home/tc 141 | CURDIR=`pwd` 142 | fi 143 | echo "" 144 | cecho c "Tinycore Rploader Support Tool ver. \033[0;31m"$ver"\033[00m - FOXBI" 145 | echo "" 146 | echo -e "\033[0;31mDo you want to install \033[0;33m New Version 7.x \033[0;31m ?\033[00m" | tr '\n' ' ' 147 | READ_YN "Y/N : " 148 | ACHK=$Y_N 149 | if [ "$ACHK" == "Y" ] || [ "$ACHK" == "y" ] 150 | then 151 | MGCHK=n 152 | DSMCHK=`sudo fdisk -l | grep fd | wc -l` 153 | if [ "$DSMCHK" -ge "2" ] 154 | then 155 | echo -e "\033[0;31mDSM installed detect!! \033[0;33m Continue Process...\033[00m" 156 | echo "" 157 | sleep 2 158 | MGCHK=n 159 | fi 160 | NEWCHK=y 161 | elif [ "$ACHK" == "N" ] || [ "$ACHK" == "n" ] 162 | then 163 | NEWCHK=n 164 | else 165 | echo "" 166 | echo "Wrong choice. please run again..." 167 | echo "" 168 | exit 0 169 | fi 170 | 171 | if [ "$NEWCHK" == "n" ] 172 | then 173 | echo -e "\033[0;31mDo you want to old method?\033[0;33m(if you want 7.1.0-42621 RC choose y)\033[00m" | tr '\n' ' ' 174 | READ_YN "Y/N : " 175 | OLDCHK=$Y_N 176 | if [ "$OLDCHK" == "Y" ] || [ "$OLDCHK" == "y" ] 177 | then 178 | SYNOCHK=y 179 | echo -e "\033[0;31m7.1.0-42621 RC Update in progress ?\033[00m" | tr '\n' ' ' 180 | READ_YN "Y/N : " 181 | RCCHK=$Y_N 182 | if [ "$RCCHK" == "Y" ] || [ "$RCCHK" == "y" ] 183 | then 184 | RCCHK=y 185 | elif [ "$RCCHK" == "N" ] || [ "$RCCHK" == "n" ] 186 | then 187 | RCCHK=n 188 | else 189 | echo "" 190 | echo "Wrong choice. please run again..." 191 | echo "" 192 | exit 0 193 | fi 194 | elif [ "$OLDCHK" == "N" ] || [ "$OLDCHK" == "n" ] 195 | then 196 | SYNOCHK=`nslookup archive.synology.com 2>&1 > /dev/null` 197 | RCCHK=n 198 | else 199 | echo "" 200 | echo "Wrong choice. please run again..." 201 | echo "" 202 | exit 0 203 | fi 204 | fi 205 | 206 | if [ "$RCCHK" == "y" ] 207 | then 208 | cecho c "Redpill 7.1.0-42621 RC update in preparation ..." 209 | echo "" 210 | sudo rm -rf /mnt/sdb3/backup/* 211 | $CURDIR/rploader.sh backuploader now 212 | echo "" 213 | else 214 | cecho c "Redpill update ..." 215 | echo "" 216 | sudo rm -rf /mnt/sdb3/backup/* 217 | $CURDIR/rploader.sh update now 218 | if [ "$NEWCHK" == "y" ] 219 | then 220 | echo "" 221 | cecho c "Redpill fullupgrade for 7.x .." 222 | echo "" 223 | sudo cp $CURDIR/user_config.json /tmp/user_config.json_bak 224 | $CURDIR/rploader.sh fullupgrade now 225 | sudo cp /tmp/user_config.json_bak $CURDIR/user_config.json 226 | else 227 | cecho c "Redpill Clean repository ..." 228 | echo "" 229 | $CURDIR/rploader.sh clean now 230 | fi 231 | echo "" 232 | fi 233 | # ============================================================================== 234 | # Model Name Select 235 | # ============================================================================== 236 | ACNT= 237 | BCNT= 238 | ARRAY=() 239 | BRRAY=() 240 | if [ "$SYNOCHK" == "" ] 241 | then 242 | cecho c "Select Xpenology Model...\033[0;31m(Available Model Red Color)\033[00m" 243 | export ACHK=`curl --no-progress-meter https://archive.synology.com/download/Os/DSM | grep noreferrer | awk -Fner\"\> '{print $2}'| egrep -vi "download|os|Parent" | sed "s/<\/a>//g" | egrep "^7" | head -3 \ 244 | | awk -F- '{ if($3 ~ "^[0-9]") {print $1"-"$2"-"$3} }' | head -1` 245 | while IFS= read -r LINE_A; 246 | do 247 | ACNT=$(($ACNT + 1)) 248 | BCNT=$(($ACNT%5)) 249 | BRRAY=( `cat $CURDIR/rploader.sh | grep "Available Models" | awk -F: '{print $2}' | sed 's/\\\"//g' | sed 's/^\s//g'` ) 250 | if [ "$BCNT" -eq "0" ] 251 | then 252 | if [[ "${BRRAY[@]}" =~ "$LINE_A" ]] 253 | then 254 | ARRAY+=("\033[0;31m$ACNT) $LINE_A\ln\033[00m"); 255 | else 256 | ARRAY+=("$ACNT) $LINE_A\ln"); 257 | fi 258 | else 259 | if [[ "${BRRAY[@]}" =~ "$LINE_A" ]] 260 | then 261 | ARRAY+=("\033[0;31m$ACNT) $LINE_A\lt\033[00m"); 262 | else 263 | ARRAY+=("$ACNT) $LINE_A\lt"); 264 | fi 265 | fi 266 | done < <(curl --no-progress-meter https://archive.synology.com/download/Os/DSM/$ACHK | grep noreferrer | awk -Fner\"\> '{print $2}'| grep "synology_" | sed "s/.pat<\/a>//g" | sed "s/synology_//g" | awk -F_ '{print $2}' | sort -u \ 267 | | awk '{ if($0 ~ "^[0-9]") {print "DS"$0} else { if($0 ~ "^[a-z]") { print $0 } } }' \ 268 | | sed "s/^rs/RS/g" | sed "s/^fs/FS/g" | sed "s/^ds/DS/g" | sed "s/^dva/DVA/g" | sed "s/^rc/RC/g" | sed "s/sa/SA/g" | sed "s/rpxs/RPxs/g" ) 269 | else 270 | if [ "$SYNOCHK" != "" ] && [ "$SYNOCHK" != "y" ] 271 | then 272 | cecho c "synology.com is not connected, proceeding the old method..." 273 | echo "" 274 | fi 275 | cecho c "Select Xpenology Model..." 276 | while read LINE_A; 277 | do 278 | ACNT=$(($ACNT + 1)) 279 | BCNT=$(($ACNT%5)) 280 | if [ "$BCNT" -eq "0" ] 281 | then 282 | ARRAY+=("$ACNT) $LINE_A\ln"); 283 | else 284 | ARRAY+=("$ACNT) $LINE_A\lt"); 285 | fi 286 | done < <(cat $CURDIR/rploader.sh | grep "Available Models" | awk -F: '{print $2}' | sed "s/\"//g" | sed "s/^\s//g" | sed "s/\s/\\n/g") 287 | fi 288 | echo "" 289 | echo -e " ${ARRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 290 | echo "" 291 | read -n3 -p " -> Select Number Enter : " A_O 292 | echo "" 293 | A_O=$(($A_O - 1)) 294 | for (( i = 0; i < $ACNT; i++)); do 295 | if [ "$A_O" == $i ] 296 | then 297 | export AMODEL=`echo "${ARRAY[$i]}" | sed 's/\\\ln/ /g' | sed 's/\\\lt/ /g' | awk '{print $2}'` 298 | fi 299 | done 300 | # ============================================================================== 301 | # DSM Model Select 302 | # ============================================================================== 303 | echo "" 304 | cecho c "Select $AMODEL's DSM version..." 305 | echo "" 306 | CCNT= 307 | DCNT= 308 | CRRAY=() 309 | if [ "$SYNOCHK" == "" ] 310 | then 311 | while read LINE_C; 312 | do 313 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "n" ] 314 | then 315 | continue 316 | else 317 | CCNT=$(($CCNT + 1)) 318 | DCNT=$(($CCNT%5)) 319 | if [ "$BCNT" -eq "0" ] 320 | then 321 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 322 | then 323 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\ln\033[00m"); 324 | else 325 | CRRAY+=("$CCNT) $LINE_C\ln"); 326 | fi 327 | else 328 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 329 | then 330 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\lt\033[00m"); 331 | else 332 | CRRAY+=("$CCNT) $LINE_C\lt"); 333 | fi 334 | fi 335 | fi 336 | done < <(curl --no-progress-meter https://archive.synology.com/download/Os/DSM | grep noreferrer | awk -Fner\"\> '{print $2}'| egrep -vi "download|os|Parent" | sed "s/<\/a>//g" | egrep "^7|^6.2.4" | awk -F- '{print $1"-"$2}' | sort -u) 337 | echo "" 338 | echo -e " ${CRRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 339 | echo "" 340 | read -n1 -p " -> Select Number Enter : " C_O 341 | echo "" 342 | C_O=$(($C_O - 1)) 343 | for (( i = 0; i < $CCNT; i++)); do 344 | if [ "$C_O" == $i ] 345 | then 346 | export CVERSION=`echo "${CRRAY[$i]}" | sed 's/\\\ln/ /g' | sed 's/\\\lt/ /g' | awk '{print $2}'` 347 | fi 348 | done 349 | else 350 | echo "" 351 | cecho c "DSM model selection proceeds after platform selection...." 352 | sleep 1 353 | echo "" 354 | fi 355 | # ============================================================================== 356 | # Platform Select 357 | # ============================================================================== 358 | if [ ! -d $CURDIR/redpill-load ] || [ "$RCCHK" == "y" ] || [ "$NEWCHK" == "y" ] 359 | then 360 | if [ "$SYNOCHK" == "" ] 361 | then 362 | echo "" 363 | cecho c "Auto Select Platform...." 364 | if [[ "$AMODEL" =~ ^"DS" ]] 365 | then 366 | BMODEL=`echo $AMODEL | cut -c 3- | tr '[A-Z]' '[a-z]'` 367 | BMODEL=`echo "_"$BMODEL"\."` 368 | else 369 | BMODEL=`echo $AMODEL | tr '[A-Z]' '[a-z]'` 370 | BMODEL=`echo $BMODEL"\."` 371 | fi 372 | ECHK=`curl --no-progress-meter https://archive.synology.com/download/Os/DSM | grep noreferrer | awk -Fner\"\> '{print $2}'| egrep -vi "download|os|Parent" | sed "s/<\/a>//g" | egrep "^7" | head -1 | awk -F- '{print $1"-"$2}'` 373 | FCHK=`echo $ACHK | awk -F- '{print $1"-"$2}'` 374 | if [ "$CVERSION" == "$FCHK" ] 375 | then 376 | ECHK=`echo $FCHK` 377 | else 378 | if [[ "$CVERSION" =~ "42661" ]] || [[ "$CVERSION" =~ "42962" ]] || [[ "$CVERSION" =~ "64561" ]] 379 | then 380 | ECHK=`echo $ECHK` 381 | else 382 | ECHK=`echo $CVERSION` 383 | fi 384 | fi 385 | 386 | EPLAT=`curl --no-progress-meter https://archive.synology.com/download/Os/DSM/$ACHK | grep noreferrer | awk -Fner\"\> '{print $2}'| grep "synology_" | sed "s/pat<\/a>//g" | sed "s/synology_//g" | grep -i "$BMODEL" | awk -F_ '{print $1}' | sed "s/$.//g"` 387 | B2MODEL=`echo $BMODEL | sed "s/_/ds/g" | sed "s/\\\\\.//g" | sed "s/xs+/xsp/g"` 388 | #EVERSION=`echo $EPLAT"-"$ECHK | sed "s/7.1-/7.1.0-/g" | sed "s/7.2-/7.2.0-/g"` 389 | EVERSION=`echo $B2MODEL"-"$ECHK | sed "s/7.1-/7.1.0-/g" | sed "s/7.2-/7.2.0-/g"` 390 | 391 | echo "" 392 | cecho c "Rploader update..." 393 | echo "" 394 | $CURDIR/rploader.sh download $EVERSION 2>&1 > /dev/null 395 | 396 | if [ $? -eq 99 ] 397 | then 398 | echo "" 399 | echo "$AMODEL is not supported, please run again" 400 | echo "" 401 | exit 0 402 | fi 403 | else 404 | ECNT= 405 | FCNT= 406 | ERRAY=() 407 | echo "" 408 | cecho c "Select Platform...." 409 | while read LINE_E; 410 | do 411 | if [[] "$LINE_E" =~ "42661" ]] || [[ "$LINE_E" =~ "42962" ]] || [[ "$LINE_E" =~ "64561" ]] && [ "$NEWCHK" == "n" ] 412 | then 413 | continue 414 | elif [[ "$LINE_E" =~ "42661" ]] || [[ "$LINE_E" =~ "42962" ]] || [[ "$LINE_E" =~ "64561" ]] && [ "$RCCHK" == "n" ] 415 | then 416 | continue 417 | else 418 | ECNT=$(($ECNT + 1)) 419 | FCNT=$(($ECNT%3)) 420 | if [ "$FCNT" -eq "0" ] 421 | then 422 | ERRAY+=("$ECNT) $LINE_E\ln"); 423 | else 424 | ERRAY+=("$ECNT) $LINE_E\lt"); 425 | fi 426 | fi 427 | done < <($CURDIR/rploader.sh | grep - | grep -v ^- | grep -v rploader) 428 | echo "" 429 | echo -e " ${ERRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 430 | echo "" 431 | read -n3 -p " -> Select Number Enter : " E_O 432 | echo "" 433 | E_O=$(($E_O - 1)) 434 | for (( i = 0; i < $ECNT; i++)); do 435 | if [ "$E_O" == $i ] 436 | then 437 | export EVERSION=`echo "${ERRAY[$i]}" | sed 's/\\\ln//g' | sed 's/\\\lt//g' | awk '{print $2}'` 438 | fi 439 | done 440 | 441 | echo "" 442 | cecho c "rploader update..." 443 | echo "" 444 | $CURDIR/rploader.sh download $EVERSION 2>&1 > /dev/null 445 | 446 | CCHECK=`ls $CURDIR/redpill-load/config/$AMODEL | wc -l` 447 | CCNT= 448 | DCNT= 449 | CRRAY=() 450 | while read LINE_C; 451 | do 452 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "n" ] 453 | then 454 | continue 455 | elif [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$RCCHK" == "n" ] 456 | then 457 | continue 458 | elif [[ "$LINE_C" =~ "template" ]] 459 | then 460 | continue 461 | else 462 | CCNT=$(($CCNT + 1)) 463 | DCNT=$(($CCNT%3)) 464 | if [ "$DCNT" -eq "0" ] 465 | then 466 | if [[ "$LINE_C" =~ "42661" ]] || [[] "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$RCCHK" == "y" ] 467 | then 468 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\ln\033[00m"); 469 | elif [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 470 | then 471 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\ln\033[00m"); 472 | else 473 | CRRAY+=("$CCNT) $LINE_C\ln"); 474 | fi 475 | else 476 | if [[ "$LINE_C" =~ "42621" ]] && [ "$RCCHK" == "y" ] 477 | then 478 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\lt\033[00m"); 479 | elif [[ "$LINE_C" =~ "42661" ]] && [ "$NEWCHK" == "y" ] 480 | then 481 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\lt\033[00m"); 482 | else 483 | CRRAY+=("$CCNT) $LINE_C\lt"); 484 | fi 485 | fi 486 | fi 487 | done < <(ls -l $CURDIR/redpill-load/config/$AMODEL | grep -v total | awk '{print $9}') 488 | 489 | if [ "$CCHECK" -gt "1" ] 490 | then 491 | echo "" 492 | cecho c "Slect again $AMODEL detail version..." 493 | echo "" 494 | echo -e " ${CRRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 495 | echo "" 496 | read -n1 -p " -> Select Number Enter : " C_O 497 | echo "" 498 | C_O=$(($C_O - 1)) 499 | for (( i = 0; i < $CCNT; i++)); do 500 | if [ "$C_O" == $i ] 501 | then 502 | export CVERSION=`echo "${CRRAY[$i]}" | sed 's/\\\ln/ /g' | sed 's/\\\lt/ /g' | awk '{print $2}'` 503 | fi 504 | done 505 | else 506 | CVERSION=`ls $CURDIR/redpill-load/config/$AMODEL` 507 | fi 508 | fi 509 | else 510 | echo "" 511 | echo "Empty redpil-load directory. please run again..." 512 | echo "" 513 | exit 0 514 | fi 515 | echo "" 516 | cecho c "Select $AMODEL($EVERSION) Completed !! Run to rploader.sh !!" 517 | sleep 1 518 | # ============================================================================== 519 | # Clear extension & install extension driver 520 | # ============================================================================== 521 | echo "" 522 | cecho c "Delete extension file..." 523 | sudo rm -rf $CURDIR/redpill-load/custom/extensions/* 524 | echo "" 525 | cecho c "Update ext-manager..." 526 | $CURDIR/redpill-load/ext-manager.sh update 527 | if [ "$NEWCHK" == "n" ] 528 | then 529 | EXDRIVER_FN 530 | echo "" 531 | fi 532 | # ============================================================================== 533 | # Build Progress 534 | # ============================================================================== 535 | if [ "$RCCHK" == "y" ] && [ "$NEWCHK" == "n" ] 536 | then 537 | if [ "$EVERSION" == "broadwellnk-7.0.1-42218" ] 538 | then 539 | $CURDIR/rploader.sh ext $EVERSION add https://github.com/jumkey/redpill-load/raw/develop/redpill-misc/rpext-index.json 540 | fi 541 | echo "" 542 | cecho y "Please select Y/n for both questions !!!" 543 | echo "" 544 | cecho y "Please select Y/n for both questions !!!" 545 | echo "" 546 | cecho y "Please select Y/n for both questions !!!" 547 | echo "" 548 | sleep 3 549 | $CURDIR/rploader.sh postupdate $EVERSION 550 | echo "" 551 | elif [[ "$EVERSION" =~ "42661" ]] || [[ "$EVERSION" =~ "42962" ]] || [[ "$EVERSION" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 552 | then 553 | $CURDIR/rploader.sh clean now 554 | EXDRIVER_FN 555 | PATDL_FN 556 | $CURDIR/rploader.sh build $EVERSION 557 | $CURDIR/rploader.sh clean now 558 | rm -rf /mnt/sdb3/auxfiles 559 | rm -rf $CURDIR/custom-module 560 | echo "" 561 | else 562 | sleep 2 563 | redpill-load 564 | $CURDIR/rploader.sh build $EVERSION 565 | echo "" 566 | fi 567 | # ============================================================================== 568 | # Backup & GRUB Patch 569 | # ============================================================================== 570 | UCHK=`lsblk -So NAME,TRAN | grep usb | awk '{print $1}'` 571 | if [ "$UCHK" == "" ] 572 | then 573 | PCHK=`sudo fdisk -l | grep "*" | grep "dev" | grep -v "img" | awk '{print $1}' | sed "s/\/dev\///g"` 574 | else 575 | PCHK=`sudo fdisk -l | grep "*" | grep "dev" | grep -v "img" | grep -v "$UCHK" | awk '{print $1}' | sed "s/\/dev\///g"` 576 | fi 577 | 578 | if [ ! -d /mnt/$PCHK/boot/grub ] 579 | then 580 | sudo mount /dev/$PCHK 581 | fi 582 | echo "" 583 | cecho c "Backup Original File...." 584 | GTIME=`date +%Y%m%d%H%M%S` 585 | mkdir -p $CURDIR/ESXi_backup 586 | tar cvfP $CURDIR/ESXi_backup/${AMODEL}_${GTIME}.tar /mnt/$PCHK/boot/grub/grub.cfg > /dev/null 2>&1 587 | sleep 1 588 | echo "" 589 | cecho c "Change Boot Config File....." 590 | sleep 1 591 | GCNT=`sudo fdisk -l /dev/sda | grep fd | wc -l` 592 | HCNT=`sudo fdisk -l | grep "*" | grep sda1 | wc -l` 593 | 594 | if [ "$GCNT" -eq "2" ] || [ "$HCNT" -eq "0" ] 595 | then 596 | sudo sed -i "s/hd0,msdos/hd1,msdos/g" /mnt/$PCHK/boot/grub/grub.cfg 597 | else 598 | sudo sed -i "s/hd1,msdos/hd0,msdos/g" /mnt/$PCHK/boot/grub/grub.cfg 599 | fi 600 | 601 | BSCHK=`cat /mnt/$PCHK/boot/grub/grubenv | grep saved_entry | awk -F= '{print $2}'` 602 | echo "" 603 | cecho c "Select you want Fist boot (SATA / USB / TCRP Friend / TC Image Build) ? : " 604 | echo "" 605 | echo "1) SATA 2) USB 3) TCRP Friend 4) TC Image Build" 606 | echo "" 607 | read -n2 -p " -> Select Number Enter : " B_S 608 | echo "" 609 | if [ "$B_S" == "1" ] 610 | then 611 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep SATA | awk -F\' '{print $2}'` 612 | elif [ "$B_S" == "2" ] 613 | then 614 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep USB | awk -F\' '{print $2}'` 615 | elif [ "$B_S" == "2" ] 616 | then 617 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep Friend | awk -F\' '{print $2}'` 618 | else 619 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep Build | awk -F\' '{print $2}'` 620 | fi 621 | sudo sed -i "s/$BSCHK/$BSCHNG/g" /mnt/$PCHK/boot/grub/grubenv 622 | 623 | sleep 2 624 | # ============================================================================== 625 | # Extra Boot image or USB Create Action 626 | # ============================================================================== 627 | FNAME=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | head -1 | awk '{print $3"_"$4}'` 628 | if [ "$FNAME" == "Core_Image" ] 629 | then 630 | echo "" 631 | echo "The built bootloader does not exist. please run again after build..." 632 | echo "" 633 | exit 0 634 | else 635 | echo "" 636 | cecho c "Extra Boot image or USB Create" 637 | echo "" 638 | READ_YN "Do you want Extra boot image create ? Y/N : " 639 | EXCHK=$Y_N 640 | MCHK="/mnt/tmp" 641 | if [ "$EXCHK" == "y" ] || [ "$EXCHK" == "Y" ] 642 | then 643 | echo "" 644 | cecho c "Now Select Create *.img or USB Create" 645 | echo "" 646 | echo "1) ${FNAME}.img 2) ${FNAME} Boot USB Create" 647 | echo "" 648 | read -n2 -p " -> Select Number Enter : " X_O 649 | echo "" 650 | RCHK=`echo $PCHK | sed "s/[0-9].*$//g"` 651 | if [ "$X_O" == "1" ] 652 | then 653 | echo "" 654 | cecho c "Create /home/tc/${FNAME}.img" 655 | echo "" 656 | sudo umount /dev/$PCHK > /dev/null 2>&1 657 | sudo dd if=/dev/$RCHK of=/home/tc/${FNAME}.img count=292500 > /dev/null 2>&1 658 | 659 | sudo fdisk /home/tc/${FNAME}.img > /dev/null 2>&1 << EOF 660 | d 661 | 3 662 | 663 | wq 664 | EOF 665 | sudo fdisk /home/tc/${FNAME}.img > /dev/null 2>&1 << EOF 666 | n 667 | p 668 | 3 669 | 670 | 671 | n 672 | wq 673 | EOF 674 | sudo chown tc:staff /home/tc/${FNAME}.img 675 | 676 | echo "" 677 | cecho c "Config grub.cfg..." 678 | echo "" 679 | sleep 1 680 | SCHK=`fdisk -l ${FNAME}.img | grep "*" | grep img | awk '{print $3}'` 681 | sudo mkdir -p $MCHK 682 | sudo mount -o loop,offset=$((512*$SCHK)) ${FNAME}.img $MCHK > /dev/null 2>&1 683 | 684 | LNUM=`cat $MCHK/boot/grub/grub.cfg | grep -n "Tiny Core Image Build" | awk -F: '{print $1}'` 685 | if [ "$LNUM" != "" ] 686 | then 687 | sudo sed -i "$LNUM,\$d" $MCHK/boot/grub/grub.cfg 688 | fi 689 | sudo umount $MCHK > /dev/null 2>&1 690 | 691 | echo "" 692 | cecho c "Create completed /home/tc/${FNAME}.img" 693 | echo "" 694 | read -n1 -p "When the SFTP download is complete, press any key." 695 | echo "" 696 | elif [ "$X_O" == "2" ] 697 | then 698 | if [ "$UCHK" == "" ] 699 | then 700 | echo "" 701 | echo "Do not Ready USB...Check Please..." 702 | echo "" 703 | else 704 | echo "" 705 | cecho c "Create $FNAME Bootable USB(/dev/$UCHK) - Takes a few minutes..." 706 | echo "" 707 | sudo umount /dev/$PCHK > /dev/null 2>&1 708 | sudo dd if=/dev/$RCHK of=/dev/$UCHK count=292500 > /dev/null 2>&1 709 | 710 | sudo fdisk /dev/$UCHK > /dev/null 2>&1 << EOF 711 | d 712 | 3 713 | 714 | wq 715 | EOF 716 | 717 | sudo fdisk /dev/$UCHK > /dev/null 2>&1 << EOF 718 | n 719 | p 720 | 3 721 | 722 | 723 | n 724 | wq 725 | EOF 726 | 727 | echo "" 728 | cecho c "Config grub.cfg..." 729 | echo "" 730 | 731 | LCHK=`find /sys -name $UCHK | grep usb` 732 | cd $LCHK 733 | cd ../../../../../../ 734 | PID=`cat idProduct` 735 | VID=`cat idVendor` 736 | sleep 1 737 | BCHK=`fdisk -l /dev/$UCHK | grep "*" | grep $UCHK | awk '{print $1}'` 738 | sudo mkdir -p $MCHK 739 | sudo mount $BCHK $MCHK 740 | 741 | LNUM=`cat $MCHK/boot/grub/grub.cfg | grep -n "Tiny Core Image Build" | awk -F: '{print $1}'` 742 | if [ "$LNUM" != "" ] 743 | then 744 | sudo sed -i "$LNUM,\$d" $MCHK/boot/grub/grub.cfg 745 | fi 746 | 747 | sudo sed -i "s/pid=0x.... earlycon/pid=0x$PID earlycon/g" $MCHK/boot/grub/grub.cfg 748 | sudo sed -i "s/vid=0x.... elevator/vid=0x$VID elevator/g" $MCHK/boot/grub/grub.cfg 749 | sudo sed -i "s/default=\"1\"/default=\"0\"/g" $MCHK/boot/grub/grub.cfg 750 | sudo sed -i "s/hd1,msdos/hd0,msdos/g" $MCHK/boot/grub/grub.cfg 751 | sudo umount $MCHK > /dev/null 2>&1 752 | 753 | echo "" 754 | cecho c "Create completed USB" 755 | echo "" 756 | read -n1 -p "Proceed with DSM installation using USB. press any key." 757 | echo "" 758 | fi 759 | else 760 | echo "" 761 | echo "Wrong choice. please run again..." 762 | echo "" 763 | exit 0 764 | fi 765 | fi 766 | fi 767 | # ============================================================================== 768 | # Backup configuration 769 | # ============================================================================== 770 | echo "" 771 | cecho c "Backup Config file" 772 | echo "" 773 | $CURDIR/rploader.sh backup now 774 | echo "" 775 | cecho c "Completed !! After reboot Install DSM." 776 | echo "" 777 | # ============================================================================== 778 | # Reboot 779 | # ============================================================================== 780 | READ_YN "Do you want reboot ? Y/N : " 781 | KCHECK=$Y_N 782 | if [ "$KCHECK" == "y" ] || [ "$KCHECK" == "Y" ] 783 | then 784 | echo "" 785 | cecho r "Now System Reboot !!" 786 | cecho r "3" 787 | sleep 1 788 | cecho r "2" 789 | sleep 1 790 | cecho r "1" 791 | sleep 1 792 | sudo reboot 793 | fi 794 | # ============================================================================== 795 | # End 796 | # ============================================================================== 797 | -------------------------------------------------------------------------------- /tr_st.tar: -------------------------------------------------------------------------------- 1 | tr_st.sh0100777000000000000000000006576014435412571007527 0ustar00#!/bin/bash 2 | ver="3.0.0-r03" 3 | # 4 | # Made by FOXBI 5 | # 2023.05.31 6 | # 7 | # ============================================================================== 8 | # Y or N Function 9 | # ============================================================================== 10 | READ_YN () { # $1:question $2:default 11 | read -n1 -p "$1" Y_N 12 | case "$Y_N" in 13 | y) Y_N="y" 14 | echo -e "\n" ;; 15 | n) Y_N="n" 16 | echo -e "\n" ;; 17 | q) echo -e "\n" 18 | exit 0 ;; 19 | *) echo -e "\n" ;; 20 | esac 21 | } 22 | # ============================================================================== 23 | # Color Function 24 | # ============================================================================== 25 | cecho () { 26 | if [ -n "$3" ] 27 | then 28 | case "$3" in 29 | black | bk) bgcolor="40";; 30 | red | r) bgcolor="41";; 31 | green | g) bgcolor="42";; 32 | yellow | y) bgcolor="43";; 33 | blue | b) bgcolor="44";; 34 | purple | p) bgcolor="45";; 35 | cyan | c) bgcolor="46";; 36 | gray | gr) bgcolor="47";; 37 | esac 38 | else 39 | bgcolor="0" 40 | fi 41 | code="\033[" 42 | case "$1" in 43 | black | bk) color="${code}${bgcolor};30m";; 44 | red | r) color="${code}${bgcolor};31m";; 45 | green | g) color="${code}${bgcolor};32m";; 46 | yellow | y) color="${code}${bgcolor};33m";; 47 | blue | b) color="${code}${bgcolor};34m";; 48 | purple | p) color="${code}${bgcolor};35m";; 49 | cyan | c) color="${code}${bgcolor};36m";; 50 | gray | gr) color="${code}${bgcolor};37m";; 51 | esac 52 | 53 | text="$color$2${code}0m" 54 | echo -e "$text" 55 | } 56 | # ============================================================================== 57 | # Extension Driver Function 58 | # ============================================================================== 59 | EXDRIVER_FN () { 60 | echo "" 61 | cecho r "Add to Driver Repository..." 62 | echo "" 63 | READ_YN "Do you want Add Driver? Y/N : " 64 | ICHK=$Y_N 65 | while [ "$ICHK" == "y" ] || [ "$ICHK" == "Y" ] 66 | do 67 | ICNT= 68 | JCNT= 69 | IRRAY=() 70 | while read LINE_I; 71 | do 72 | ICNT=$(($ICNT + 1)) 73 | JCNT=$(($ICNT%5)) 74 | if [ "$JCNT" -eq "0" ] 75 | then 76 | IRRAY+=("$ICNT) $LINE_I\ln"); 77 | else 78 | IRRAY+=("$ICNT) $LINE_I\lt"); 79 | fi 80 | done < <(curl --no-progress-meter https://github.com/pocopico/rp-ext | grep "raw.githubusercontent.com" | awk '{print $2}' | awk -F= '{print $2}' | sed "s/\"//g" | awk -F/ '{print $7}') 81 | echo "" 82 | echo -e " ${IRRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 83 | echo "" 84 | read -n100 -p " -> Select Number Enter (To select multiple, separate them with , ): " I_O 85 | echo "" 86 | I_OCHK=`echo $I_O | grep , | wc -l` 87 | if [ "$I_OCHK" -gt "0" ] 88 | then 89 | while read LINE_J; 90 | do 91 | j=$((LINE_J - 1)) 92 | IEXT=`echo "${IRRAY[$j]}" | sed 's/\\\ln//g' | sed 's/\\\lt//g' | awk '{print $2}'` 93 | $CURDIR/rploader.sh ext $EVERSION add https://raw.githubusercontent.com/pocopico/rp-ext/master/$IEXT/rpext-index.json 94 | done < <(echo $I_O | tr ',' '\n') 95 | else 96 | I_O=$(($I_O - 1)) 97 | for (( i = 0; i < $ICNT; i++)); do 98 | if [ "$I_O" == $i ] 99 | then 100 | export IEXT=`echo "${IRRAY[$i]}" | sed 's/\\\ln//g' | sed 's/\\\lt//g' | awk '{print $2}'` 101 | fi 102 | done 103 | $CURDIR/rploader.sh ext $EVERSION add https://raw.githubusercontent.com/pocopico/rp-ext/master/$IEXT/rpext-index.json 104 | fi 105 | echo "" 106 | READ_YN "Do you want add driver? Y/N : " 107 | ICHK=$Y_N 108 | done 109 | } 110 | # ============================================================================== 111 | # Pat Download Function 7.2-64561 & 7.1-42661-1 112 | # ============================================================================== 113 | PATDL_FN () { 114 | TCHK=`sudo fdisk -l | grep -A 3 "*" | grep "sd.3" | awk '{print "df | grep "$1}' | sh | awk '{print $NF}'` 115 | mkdir -p $TCHK/auxfiles 116 | cd $TCHK/auxfiles 117 | DLMODEL=`echo $AMODEL | sed "s/\+/\%2B/g"` 118 | TPMODEL=`echo $AMODEL | sed "s/\+/p/g" | tr '[A-Z]' '[a-z]'` 119 | TVERSION=`echo $EVERSION | awk -F- '{print $NF}'` 120 | 121 | echo "" 122 | cecho r "Pat file pre-download...($TCHK/auxfiles/${TPMODEL}_${TVERSION}.pat)" 123 | echo "" 124 | if [ "$TVERSION" == "64561" ] 125 | then 126 | curl -o ${TPMODEL}_${TVERSION}.pat https://global.download.synology.com/download/DSM/release/7.2/${TVERSION}/DSM_${DLMODEL}_${TVERSION}.pat 127 | else 128 | curl -o ${TPMODEL}_${TVERSION}.pat https://global.download.synology.com/download/DSM/release/7.1/${TVERSION}-1/DSM_${DLMODEL}_${TVERSION}.pat 129 | fi 130 | cd $CURDIR 131 | echo "" 132 | } 133 | # ============================================================================== 134 | # Process Function 135 | # ============================================================================== 136 | clear 137 | CURDIR=`pwd` 138 | if [ "$CURDIR" != "/home/tc" ] 139 | then 140 | cd /home/tc 141 | CURDIR=`pwd` 142 | fi 143 | echo "" 144 | cecho c "Tinycore Rploader Support Tool ver. \033[0;31m"$ver"\033[00m - FOXBI" 145 | echo "" 146 | echo -e "\033[0;31mDo you want to install \033[0;33m New Version 7.x \033[0;31m ?\033[00m" | tr '\n' ' ' 147 | READ_YN "Y/N : " 148 | ACHK=$Y_N 149 | if [ "$ACHK" == "Y" ] || [ "$ACHK" == "y" ] 150 | then 151 | MGCHK=n 152 | DSMCHK=`sudo fdisk -l | grep fd | wc -l` 153 | if [ "$DSMCHK" -ge "2" ] 154 | then 155 | echo -e "\033[0;31mDSM installed detect!! \033[0;33m Continue Process...\033[00m" 156 | echo "" 157 | sleep 2 158 | MGCHK=n 159 | fi 160 | NEWCHK=y 161 | elif [ "$ACHK" == "N" ] || [ "$ACHK" == "n" ] 162 | then 163 | NEWCHK=n 164 | else 165 | echo "" 166 | echo "Wrong choice. please run again..." 167 | echo "" 168 | exit 0 169 | fi 170 | 171 | if [ "$NEWCHK" == "n" ] 172 | then 173 | echo -e "\033[0;31mDo you want to old method?\033[0;33m(if you want 7.1.0-42621 RC choose y)\033[00m" | tr '\n' ' ' 174 | READ_YN "Y/N : " 175 | OLDCHK=$Y_N 176 | if [ "$OLDCHK" == "Y" ] || [ "$OLDCHK" == "y" ] 177 | then 178 | SYNOCHK=y 179 | echo -e "\033[0;31m7.1.0-42621 RC Update in progress ?\033[00m" | tr '\n' ' ' 180 | READ_YN "Y/N : " 181 | RCCHK=$Y_N 182 | if [ "$RCCHK" == "Y" ] || [ "$RCCHK" == "y" ] 183 | then 184 | RCCHK=y 185 | elif [ "$RCCHK" == "N" ] || [ "$RCCHK" == "n" ] 186 | then 187 | RCCHK=n 188 | else 189 | echo "" 190 | echo "Wrong choice. please run again..." 191 | echo "" 192 | exit 0 193 | fi 194 | elif [ "$OLDCHK" == "N" ] || [ "$OLDCHK" == "n" ] 195 | then 196 | SYNOCHK=`nslookup archive.synology.com 2>&1 > /dev/null` 197 | RCCHK=n 198 | else 199 | echo "" 200 | echo "Wrong choice. please run again..." 201 | echo "" 202 | exit 0 203 | fi 204 | fi 205 | 206 | if [ "$RCCHK" == "y" ] 207 | then 208 | cecho c "Redpill 7.1.0-42621 RC update in preparation ..." 209 | echo "" 210 | sudo rm -rf /mnt/sdb3/backup/* 211 | $CURDIR/rploader.sh backuploader now 212 | echo "" 213 | else 214 | cecho c "Redpill update ..." 215 | echo "" 216 | sudo rm -rf /mnt/sdb3/backup/* 217 | $CURDIR/rploader.sh update now 218 | if [ "$NEWCHK" == "y" ] 219 | then 220 | echo "" 221 | cecho c "Redpill fullupgrade for 7.x .." 222 | echo "" 223 | sudo cp $CURDIR/user_config.json /tmp/user_config.json_bak 224 | $CURDIR/rploader.sh fullupgrade now 225 | sudo cp /tmp/user_config.json_bak $CURDIR/user_config.json 226 | else 227 | cecho c "Redpill Clean repository ..." 228 | echo "" 229 | $CURDIR/rploader.sh clean now 230 | fi 231 | echo "" 232 | fi 233 | # ============================================================================== 234 | # Model Name Select 235 | # ============================================================================== 236 | ACNT= 237 | BCNT= 238 | ARRAY=() 239 | BRRAY=() 240 | if [ "$SYNOCHK" == "" ] 241 | then 242 | cecho c "Select Xpenology Model...\033[0;31m(Available Model Red Color)\033[00m" 243 | export ACHK=`curl --no-progress-meter https://archive.synology.com/download/Os/DSM | grep noreferrer | awk -Fner\"\> '{print $2}'| egrep -vi "download|os|Parent" | sed "s/<\/a>//g" | egrep "^7" | head -3 \ 244 | | awk -F- '{ if($3 ~ "^[0-9]") {print $1"-"$2"-"$3} }' | head -1` 245 | while IFS= read -r LINE_A; 246 | do 247 | ACNT=$(($ACNT + 1)) 248 | BCNT=$(($ACNT%5)) 249 | BRRAY=( `cat $CURDIR/rploader.sh | grep "Available Models" | awk -F: '{print $2}' | sed 's/\\\"//g' | sed 's/^\s//g'` ) 250 | if [ "$BCNT" -eq "0" ] 251 | then 252 | if [[ "${BRRAY[@]}" =~ "$LINE_A" ]] 253 | then 254 | ARRAY+=("\033[0;31m$ACNT) $LINE_A\ln\033[00m"); 255 | else 256 | ARRAY+=("$ACNT) $LINE_A\ln"); 257 | fi 258 | else 259 | if [[ "${BRRAY[@]}" =~ "$LINE_A" ]] 260 | then 261 | ARRAY+=("\033[0;31m$ACNT) $LINE_A\lt\033[00m"); 262 | else 263 | ARRAY+=("$ACNT) $LINE_A\lt"); 264 | fi 265 | fi 266 | done < <(curl --no-progress-meter https://archive.synology.com/download/Os/DSM/$ACHK | grep noreferrer | awk -Fner\"\> '{print $2}'| grep "synology_" | sed "s/.pat<\/a>//g" | sed "s/synology_//g" | awk -F_ '{print $2}' | sort -u \ 267 | | awk '{ if($0 ~ "^[0-9]") {print "DS"$0} else { if($0 ~ "^[a-z]") { print $0 } } }' \ 268 | | sed "s/^rs/RS/g" | sed "s/^fs/FS/g" | sed "s/^ds/DS/g" | sed "s/^dva/DVA/g" | sed "s/^rc/RC/g" | sed "s/sa/SA/g" | sed "s/rpxs/RPxs/g" ) 269 | else 270 | if [ "$SYNOCHK" != "" ] && [ "$SYNOCHK" != "y" ] 271 | then 272 | cecho c "synology.com is not connected, proceeding the old method..." 273 | echo "" 274 | fi 275 | cecho c "Select Xpenology Model..." 276 | while read LINE_A; 277 | do 278 | ACNT=$(($ACNT + 1)) 279 | BCNT=$(($ACNT%5)) 280 | if [ "$BCNT" -eq "0" ] 281 | then 282 | ARRAY+=("$ACNT) $LINE_A\ln"); 283 | else 284 | ARRAY+=("$ACNT) $LINE_A\lt"); 285 | fi 286 | done < <(cat $CURDIR/rploader.sh | grep "Available Models" | awk -F: '{print $2}' | sed "s/\"//g" | sed "s/^\s//g" | sed "s/\s/\\n/g") 287 | fi 288 | echo "" 289 | echo -e " ${ARRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 290 | echo "" 291 | read -n3 -p " -> Select Number Enter : " A_O 292 | echo "" 293 | A_O=$(($A_O - 1)) 294 | for (( i = 0; i < $ACNT; i++)); do 295 | if [ "$A_O" == $i ] 296 | then 297 | export AMODEL=`echo "${ARRAY[$i]}" | sed 's/\\\ln/ /g' | sed 's/\\\lt/ /g' | awk '{print $2}'` 298 | fi 299 | done 300 | # ============================================================================== 301 | # DSM Model Select 302 | # ============================================================================== 303 | echo "" 304 | cecho c "Select $AMODEL's DSM version..." 305 | echo "" 306 | CCNT= 307 | DCNT= 308 | CRRAY=() 309 | if [ "$SYNOCHK" == "" ] 310 | then 311 | while read LINE_C; 312 | do 313 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "n" ] 314 | then 315 | continue 316 | else 317 | CCNT=$(($CCNT + 1)) 318 | DCNT=$(($CCNT%5)) 319 | if [ "$BCNT" -eq "0" ] 320 | then 321 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 322 | then 323 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\ln\033[00m"); 324 | else 325 | CRRAY+=("$CCNT) $LINE_C\ln"); 326 | fi 327 | else 328 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 329 | then 330 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\lt\033[00m"); 331 | else 332 | CRRAY+=("$CCNT) $LINE_C\lt"); 333 | fi 334 | fi 335 | fi 336 | done < <(curl --no-progress-meter https://archive.synology.com/download/Os/DSM | grep noreferrer | awk -Fner\"\> '{print $2}'| egrep -vi "download|os|Parent" | sed "s/<\/a>//g" | egrep "^7|^6.2.4" | awk -F- '{print $1"-"$2}' | sort -u) 337 | echo "" 338 | echo -e " ${CRRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 339 | echo "" 340 | read -n1 -p " -> Select Number Enter : " C_O 341 | echo "" 342 | C_O=$(($C_O - 1)) 343 | for (( i = 0; i < $CCNT; i++)); do 344 | if [ "$C_O" == $i ] 345 | then 346 | export CVERSION=`echo "${CRRAY[$i]}" | sed 's/\\\ln/ /g' | sed 's/\\\lt/ /g' | awk '{print $2}'` 347 | fi 348 | done 349 | else 350 | echo "" 351 | cecho c "DSM model selection proceeds after platform selection...." 352 | sleep 1 353 | echo "" 354 | fi 355 | # ============================================================================== 356 | # Platform Select 357 | # ============================================================================== 358 | if [ ! -d $CURDIR/redpill-load ] || [ "$RCCHK" == "y" ] || [ "$NEWCHK" == "y" ] 359 | then 360 | if [ "$SYNOCHK" == "" ] 361 | then 362 | echo "" 363 | cecho c "Auto Select Platform...." 364 | if [[ "$AMODEL" =~ ^"DS" ]] 365 | then 366 | BMODEL=`echo $AMODEL | cut -c 3- | tr '[A-Z]' '[a-z]'` 367 | BMODEL=`echo "_"$BMODEL"\."` 368 | else 369 | BMODEL=`echo $AMODEL | tr '[A-Z]' '[a-z]'` 370 | BMODEL=`echo $BMODEL"\."` 371 | fi 372 | ECHK=`curl --no-progress-meter https://archive.synology.com/download/Os/DSM | grep noreferrer | awk -Fner\"\> '{print $2}'| egrep -vi "download|os|Parent" | sed "s/<\/a>//g" | egrep "^7" | head -1 | awk -F- '{print $1"-"$2}'` 373 | FCHK=`echo $ACHK | awk -F- '{print $1"-"$2}'` 374 | if [ "$CVERSION" == "$FCHK" ] 375 | then 376 | ECHK=`echo $FCHK` 377 | else 378 | if [[ "$CVERSION" =~ "42661" ]] || [[ "$CVERSION" =~ "42962" ]] || [[ "$CVERSION" =~ "64561" ]] 379 | then 380 | ECHK=`echo $ECHK` 381 | else 382 | ECHK=`echo $CVERSION` 383 | fi 384 | fi 385 | 386 | EPLAT=`curl --no-progress-meter https://archive.synology.com/download/Os/DSM/$ACHK | grep noreferrer | awk -Fner\"\> '{print $2}'| grep "synology_" | sed "s/pat<\/a>//g" | sed "s/synology_//g" | grep -i "$BMODEL" | awk -F_ '{print $1}' | sed "s/$.//g"` 387 | B2MODEL=`echo $BMODEL | sed "s/_/ds/g" | sed "s/\\\\\.//g" | sed "s/xs+/xsp/g"` 388 | #EVERSION=`echo $EPLAT"-"$ECHK | sed "s/7.1-/7.1.0-/g" | sed "s/7.2-/7.2.0-/g"` 389 | EVERSION=`echo $B2MODEL"-"$ECHK | sed "s/7.1-/7.1.0-/g" | sed "s/7.2-/7.2.0-/g"` 390 | 391 | echo "" 392 | cecho c "Rploader update..." 393 | echo "" 394 | $CURDIR/rploader.sh download $EVERSION 2>&1 > /dev/null 395 | 396 | if [ $? -eq 99 ] 397 | then 398 | echo "" 399 | echo "$AMODEL is not supported, please run again" 400 | echo "" 401 | exit 0 402 | fi 403 | else 404 | ECNT= 405 | FCNT= 406 | ERRAY=() 407 | echo "" 408 | cecho c "Select Platform...." 409 | while read LINE_E; 410 | do 411 | if [[] "$LINE_E" =~ "42661" ]] || [[ "$LINE_E" =~ "42962" ]] || [[ "$LINE_E" =~ "64561" ]] && [ "$NEWCHK" == "n" ] 412 | then 413 | continue 414 | elif [[ "$LINE_E" =~ "42661" ]] || [[ "$LINE_E" =~ "42962" ]] || [[ "$LINE_E" =~ "64561" ]] && [ "$RCCHK" == "n" ] 415 | then 416 | continue 417 | else 418 | ECNT=$(($ECNT + 1)) 419 | FCNT=$(($ECNT%3)) 420 | if [ "$FCNT" -eq "0" ] 421 | then 422 | ERRAY+=("$ECNT) $LINE_E\ln"); 423 | else 424 | ERRAY+=("$ECNT) $LINE_E\lt"); 425 | fi 426 | fi 427 | done < <($CURDIR/rploader.sh | grep - | grep -v ^- | grep -v rploader) 428 | echo "" 429 | echo -e " ${ERRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 430 | echo "" 431 | read -n3 -p " -> Select Number Enter : " E_O 432 | echo "" 433 | E_O=$(($E_O - 1)) 434 | for (( i = 0; i < $ECNT; i++)); do 435 | if [ "$E_O" == $i ] 436 | then 437 | export EVERSION=`echo "${ERRAY[$i]}" | sed 's/\\\ln//g' | sed 's/\\\lt//g' | awk '{print $2}'` 438 | fi 439 | done 440 | 441 | echo "" 442 | cecho c "rploader update..." 443 | echo "" 444 | $CURDIR/rploader.sh download $EVERSION 2>&1 > /dev/null 445 | 446 | CCHECK=`ls $CURDIR/redpill-load/config/$AMODEL | wc -l` 447 | CCNT= 448 | DCNT= 449 | CRRAY=() 450 | while read LINE_C; 451 | do 452 | if [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "n" ] 453 | then 454 | continue 455 | elif [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$RCCHK" == "n" ] 456 | then 457 | continue 458 | elif [[ "$LINE_C" =~ "template" ]] 459 | then 460 | continue 461 | else 462 | CCNT=$(($CCNT + 1)) 463 | DCNT=$(($CCNT%3)) 464 | if [ "$DCNT" -eq "0" ] 465 | then 466 | if [[ "$LINE_C" =~ "42661" ]] || [[] "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$RCCHK" == "y" ] 467 | then 468 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\ln\033[00m"); 469 | elif [[ "$LINE_C" =~ "42661" ]] || [[ "$LINE_C" =~ "42962" ]] || [[ "$LINE_C" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 470 | then 471 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\ln\033[00m"); 472 | else 473 | CRRAY+=("$CCNT) $LINE_C\ln"); 474 | fi 475 | else 476 | if [[ "$LINE_C" =~ "42621" ]] && [ "$RCCHK" == "y" ] 477 | then 478 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\lt\033[00m"); 479 | elif [[ "$LINE_C" =~ "42661" ]] && [ "$NEWCHK" == "y" ] 480 | then 481 | CRRAY+=("\033[0;31m$CCNT) $LINE_C\lt\033[00m"); 482 | else 483 | CRRAY+=("$CCNT) $LINE_C\lt"); 484 | fi 485 | fi 486 | fi 487 | done < <(ls -l $CURDIR/redpill-load/config/$AMODEL | grep -v total | awk '{print $9}') 488 | 489 | if [ "$CCHECK" -gt "1" ] 490 | then 491 | echo "" 492 | cecho c "Slect again $AMODEL detail version..." 493 | echo "" 494 | echo -e " ${CRRAY[@]}" | sed 's/\\ln/\n/g' | sed 's/\\lt/\t/g' 495 | echo "" 496 | read -n1 -p " -> Select Number Enter : " C_O 497 | echo "" 498 | C_O=$(($C_O - 1)) 499 | for (( i = 0; i < $CCNT; i++)); do 500 | if [ "$C_O" == $i ] 501 | then 502 | export CVERSION=`echo "${CRRAY[$i]}" | sed 's/\\\ln/ /g' | sed 's/\\\lt/ /g' | awk '{print $2}'` 503 | fi 504 | done 505 | else 506 | CVERSION=`ls $CURDIR/redpill-load/config/$AMODEL` 507 | fi 508 | fi 509 | else 510 | echo "" 511 | echo "Empty redpil-load directory. please run again..." 512 | echo "" 513 | exit 0 514 | fi 515 | echo "" 516 | cecho c "Select $AMODEL($EVERSION) Completed !! Run to rploader.sh !!" 517 | sleep 1 518 | # ============================================================================== 519 | # Clear extension & install extension driver 520 | # ============================================================================== 521 | echo "" 522 | cecho c "Delete extension file..." 523 | sudo rm -rf $CURDIR/redpill-load/custom/extensions/* 524 | echo "" 525 | cecho c "Update ext-manager..." 526 | $CURDIR/redpill-load/ext-manager.sh update 527 | if [ "$NEWCHK" == "n" ] 528 | then 529 | EXDRIVER_FN 530 | echo "" 531 | fi 532 | # ============================================================================== 533 | # Build Progress 534 | # ============================================================================== 535 | if [ "$RCCHK" == "y" ] && [ "$NEWCHK" == "n" ] 536 | then 537 | if [ "$EVERSION" == "broadwellnk-7.0.1-42218" ] 538 | then 539 | $CURDIR/rploader.sh ext $EVERSION add https://github.com/jumkey/redpill-load/raw/develop/redpill-misc/rpext-index.json 540 | fi 541 | echo "" 542 | cecho y "Please select Y/n for both questions !!!" 543 | echo "" 544 | cecho y "Please select Y/n for both questions !!!" 545 | echo "" 546 | cecho y "Please select Y/n for both questions !!!" 547 | echo "" 548 | sleep 3 549 | $CURDIR/rploader.sh postupdate $EVERSION 550 | echo "" 551 | elif [[ "$EVERSION" =~ "42661" ]] || [[ "$EVERSION" =~ "42962" ]] || [[ "$EVERSION" =~ "64561" ]] && [ "$NEWCHK" == "y" ] 552 | then 553 | $CURDIR/rploader.sh clean now 554 | EXDRIVER_FN 555 | PATDL_FN 556 | $CURDIR/rploader.sh build $EVERSION 557 | $CURDIR/rploader.sh clean now 558 | rm -rf /mnt/sdb3/auxfiles 559 | rm -rf $CURDIR/custom-module 560 | echo "" 561 | else 562 | sleep 2 563 | redpill-load 564 | $CURDIR/rploader.sh build $EVERSION 565 | echo "" 566 | fi 567 | # ============================================================================== 568 | # Backup & GRUB Patch 569 | # ============================================================================== 570 | UCHK=`lsblk -So NAME,TRAN | grep usb | awk '{print $1}'` 571 | if [ "$UCHK" == "" ] 572 | then 573 | PCHK=`sudo fdisk -l | grep "*" | grep "dev" | grep -v "img" | awk '{print $1}' | sed "s/\/dev\///g"` 574 | else 575 | PCHK=`sudo fdisk -l | grep "*" | grep "dev" | grep -v "img" | grep -v "$UCHK" | awk '{print $1}' | sed "s/\/dev\///g"` 576 | fi 577 | 578 | if [ ! -d /mnt/$PCHK/boot/grub ] 579 | then 580 | sudo mount /dev/$PCHK 581 | fi 582 | echo "" 583 | cecho c "Backup Original File...." 584 | GTIME=`date +%Y%m%d%H%M%S` 585 | mkdir -p $CURDIR/ESXi_backup 586 | tar cvfP $CURDIR/ESXi_backup/${AMODEL}_${GTIME}.tar /mnt/$PCHK/boot/grub/grub.cfg > /dev/null 2>&1 587 | sleep 1 588 | echo "" 589 | cecho c "Change Boot Config File....." 590 | sleep 1 591 | GCNT=`sudo fdisk -l /dev/sda | grep fd | wc -l` 592 | HCNT=`sudo fdisk -l | grep "*" | grep sda1 | wc -l` 593 | 594 | if [ "$GCNT" -eq "2" ] || [ "$HCNT" -eq "0" ] 595 | then 596 | sudo sed -i "s/hd0,msdos/hd1,msdos/g" /mnt/$PCHK/boot/grub/grub.cfg 597 | else 598 | sudo sed -i "s/hd1,msdos/hd0,msdos/g" /mnt/$PCHK/boot/grub/grub.cfg 599 | fi 600 | 601 | BSCHK=`cat /mnt/$PCHK/boot/grub/grubenv | grep saved_entry | awk -F= '{print $2}'` 602 | echo "" 603 | cecho c "Select you want Fist boot (SATA / USB / TCRP Friend / TC Image Build) ? : " 604 | echo "" 605 | echo "1) SATA 2) USB 3) TCRP Friend 4) TC Image Build" 606 | echo "" 607 | read -n2 -p " -> Select Number Enter : " B_S 608 | echo "" 609 | if [ "$B_S" == "1" ] 610 | then 611 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep SATA | awk -F\' '{print $2}'` 612 | elif [ "$B_S" == "2" ] 613 | then 614 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep USB | awk -F\' '{print $2}'` 615 | elif [ "$B_S" == "2" ] 616 | then 617 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep Friend | awk -F\' '{print $2}'` 618 | else 619 | BSCHNG=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | grep Build | awk -F\' '{print $2}'` 620 | fi 621 | sudo sed -i "s/$BSCHK/$BSCHNG/g" /mnt/$PCHK/boot/grub/grubenv 622 | 623 | sleep 2 624 | # ============================================================================== 625 | # Extra Boot image or USB Create Action 626 | # ============================================================================== 627 | FNAME=`cat /mnt/$PCHK/boot/grub/grub.cfg | grep menuentry | head -1 | awk '{print $3"_"$4}'` 628 | if [ "$FNAME" == "Core_Image" ] 629 | then 630 | echo "" 631 | echo "The built bootloader does not exist. please run again after build..." 632 | echo "" 633 | exit 0 634 | else 635 | echo "" 636 | cecho c "Extra Boot image or USB Create" 637 | echo "" 638 | READ_YN "Do you want Extra boot image create ? Y/N : " 639 | EXCHK=$Y_N 640 | MCHK="/mnt/tmp" 641 | if [ "$EXCHK" == "y" ] || [ "$EXCHK" == "Y" ] 642 | then 643 | echo "" 644 | cecho c "Now Select Create *.img or USB Create" 645 | echo "" 646 | echo "1) ${FNAME}.img 2) ${FNAME} Boot USB Create" 647 | echo "" 648 | read -n2 -p " -> Select Number Enter : " X_O 649 | echo "" 650 | RCHK=`echo $PCHK | sed "s/[0-9].*$//g"` 651 | if [ "$X_O" == "1" ] 652 | then 653 | echo "" 654 | cecho c "Create /home/tc/${FNAME}.img" 655 | echo "" 656 | sudo umount /dev/$PCHK > /dev/null 2>&1 657 | sudo dd if=/dev/$RCHK of=/home/tc/${FNAME}.img count=292500 > /dev/null 2>&1 658 | 659 | sudo fdisk /home/tc/${FNAME}.img > /dev/null 2>&1 << EOF 660 | d 661 | 3 662 | 663 | wq 664 | EOF 665 | sudo fdisk /home/tc/${FNAME}.img > /dev/null 2>&1 << EOF 666 | n 667 | p 668 | 3 669 | 670 | 671 | n 672 | wq 673 | EOF 674 | sudo chown tc:staff /home/tc/${FNAME}.img 675 | 676 | echo "" 677 | cecho c "Config grub.cfg..." 678 | echo "" 679 | sleep 1 680 | SCHK=`fdisk -l ${FNAME}.img | grep "*" | grep img | awk '{print $3}'` 681 | sudo mkdir -p $MCHK 682 | sudo mount -o loop,offset=$((512*$SCHK)) ${FNAME}.img $MCHK > /dev/null 2>&1 683 | 684 | LNUM=`cat $MCHK/boot/grub/grub.cfg | grep -n "Tiny Core Image Build" | awk -F: '{print $1}'` 685 | if [ "$LNUM" != "" ] 686 | then 687 | sudo sed -i "$LNUM,\$d" $MCHK/boot/grub/grub.cfg 688 | fi 689 | sudo umount $MCHK > /dev/null 2>&1 690 | 691 | echo "" 692 | cecho c "Create completed /home/tc/${FNAME}.img" 693 | echo "" 694 | read -n1 -p "When the SFTP download is complete, press any key." 695 | echo "" 696 | elif [ "$X_O" == "2" ] 697 | then 698 | if [ "$UCHK" == "" ] 699 | then 700 | echo "" 701 | echo "Do not Ready USB...Check Please..." 702 | echo "" 703 | else 704 | echo "" 705 | cecho c "Create $FNAME Bootable USB(/dev/$UCHK) - Takes a few minutes..." 706 | echo "" 707 | sudo umount /dev/$PCHK > /dev/null 2>&1 708 | sudo dd if=/dev/$RCHK of=/dev/$UCHK count=292500 > /dev/null 2>&1 709 | 710 | sudo fdisk /dev/$UCHK > /dev/null 2>&1 << EOF 711 | d 712 | 3 713 | 714 | wq 715 | EOF 716 | 717 | sudo fdisk /dev/$UCHK > /dev/null 2>&1 << EOF 718 | n 719 | p 720 | 3 721 | 722 | 723 | n 724 | wq 725 | EOF 726 | 727 | echo "" 728 | cecho c "Config grub.cfg..." 729 | echo "" 730 | 731 | LCHK=`find /sys -name $UCHK | grep usb` 732 | cd $LCHK 733 | cd ../../../../../../ 734 | PID=`cat idProduct` 735 | VID=`cat idVendor` 736 | sleep 1 737 | BCHK=`fdisk -l /dev/$UCHK | grep "*" | grep $UCHK | awk '{print $1}'` 738 | sudo mkdir -p $MCHK 739 | sudo mount $BCHK $MCHK 740 | 741 | LNUM=`cat $MCHK/boot/grub/grub.cfg | grep -n "Tiny Core Image Build" | awk -F: '{print $1}'` 742 | if [ "$LNUM" != "" ] 743 | then 744 | sudo sed -i "$LNUM,\$d" $MCHK/boot/grub/grub.cfg 745 | fi 746 | 747 | sudo sed -i "s/pid=0x.... earlycon/pid=0x$PID earlycon/g" $MCHK/boot/grub/grub.cfg 748 | sudo sed -i "s/vid=0x.... elevator/vid=0x$VID elevator/g" $MCHK/boot/grub/grub.cfg 749 | sudo sed -i "s/default=\"1\"/default=\"0\"/g" $MCHK/boot/grub/grub.cfg 750 | sudo sed -i "s/hd1,msdos/hd0,msdos/g" $MCHK/boot/grub/grub.cfg 751 | sudo umount $MCHK > /dev/null 2>&1 752 | 753 | echo "" 754 | cecho c "Create completed USB" 755 | echo "" 756 | read -n1 -p "Proceed with DSM installation using USB. press any key." 757 | echo "" 758 | fi 759 | else 760 | echo "" 761 | echo "Wrong choice. please run again..." 762 | echo "" 763 | exit 0 764 | fi 765 | fi 766 | fi 767 | # ============================================================================== 768 | # Backup configuration 769 | # ============================================================================== 770 | echo "" 771 | cecho c "Backup Config file" 772 | echo "" 773 | $CURDIR/rploader.sh backup now 774 | echo "" 775 | cecho c "Completed !! After reboot Install DSM." 776 | echo "" 777 | # ============================================================================== 778 | # Reboot 779 | # ============================================================================== 780 | READ_YN "Do you want reboot ? Y/N : " 781 | KCHECK=$Y_N 782 | if [ "$KCHECK" == "y" ] || [ "$KCHECK" == "Y" ] 783 | then 784 | echo "" 785 | cecho r "Now System Reboot !!" 786 | cecho r "3" 787 | sleep 1 788 | cecho r "2" 789 | sleep 1 790 | cecho r "1" 791 | sleep 1 792 | sudo reboot 793 | fi 794 | # ============================================================================== 795 | # End 796 | # ============================================================================== --------------------------------------------------------------------------------