├── 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 | 
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 | 
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 | 
36 |
37 | After setting to all case an error occurs when entering Tinycore.
38 | 
39 | enter 'e' Edit GRUB menu
40 | change  to 
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 | [](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 | [](https://youtu.be/doQX3RDh0FQ)
116 |
117 | [](https://youtu.be/G996Y3pX1ws)
118 |
119 | [](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.sh 0100777 0000000 0000000 00000065760 14435412571 007527 0 ustar 00 #!/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 | # ==============================================================================
--------------------------------------------------------------------------------