@@ -15,10 +15,26 @@ data_size=""
1515efi_size=" 25M"
1616data_label=" MultiOS-USB"
1717updateOnly=" no"
18- log_file=" install.log"
18+ log_file=$( mktemp)
19+
20+ # shellcheck disable=SC2154
21+ trap ' {
22+ status=$?
23+ if [ $status -ne 0 ]; then
24+ echo -e "\e[1;31m"
25+ echo "=================================================================="
26+ echo "Installation error!"
27+ echo "Below are the details that may be helpful when reporting the issue"
28+ echo "=================================================================="
29+ echo "Exit code: $status"
30+ cat $log_file
31+ rm -f $log_file
32+ echo -e "==================================================================\e[0m"
33+ fi
34+ }' EXIT
1935
2036cd " $( dirname " $( readlink -f " $0 " ) " ) "
21- echo -e " Arguments: $@ \n " > $log_file
37+ echo " Arguments: $* " > $log_file
2238
2339showUsage () {
2440 cat << - EOF
@@ -41,14 +57,14 @@ showUsage() {
4157listDevices () {
4258 echo " Detected USB devices:"
4359 echo -------------------------------------------------------------
44- lsblk -p -d -o NAME,MODEL,SIZE,TRAN | grep ' usb' | sed ' s/usb$//'
60+ lsblk -p -d -o NAME,MODEL,SIZE,TRAN | grep ' usb' | sed ' s/usb$//' || true
4561 echo -------------------------------------------------------------
4662}
4763
4864listAllRwDevices () {
4965 echo " Detected writable devices:"
5066 echo -------------------------------------------------------------
51- lsblk -p -d -o NAME,MODEL,SIZE,TRAN,RO | grep ' 0$' | sed ' s/0$//'
67+ lsblk -p -d -o NAME,MODEL,SIZE,TRAN,RO | grep ' 0$' | sed ' s/0$//' || true
5268 echo -------------------------------------------------------------
5369}
5470
@@ -89,6 +105,7 @@ while [ "$#" -gt 0 ]; do
89105 data_size=" +$1 "
90106 else
91107 echo " Error! Incorrect partition size. Example: 500M, 5G"
108+ exit 1
92109 fi
93110 ;;
94111 * )
@@ -141,7 +158,7 @@ if [[ $updateOnly == yes ]]; then
141158 ;;
142159 * )
143160 echo -e ' \nAnswer not "YeS". Exiting...'
144- exit 1
161+ exit 0
145162 ;;
146163 esac
147164
@@ -252,19 +269,19 @@ case $yN in
252269 ;;
253270 * )
254271 echo ' Answer not "YeS". Exiting...'
255- exit 1
272+ exit 0
256273 ;;
257274esac
258275
259276umount -f " ${devp} " * & > /dev/null || true
260277
261278echo " Creating partitions..."
262- sgdisk -Z " $dev " >> $log_file
263- sgdisk -n 1::" +${efi_size} " -t 1:0700 -c 1:" EFI System" -A 1:set:0 -A 1:set:62 -A 1:set:63 " $dev " >> $log_file
264- sgdisk -n 2::" ${data_size} " -t 2:" $part_code " -c 2:" $part_name " " $dev " >> $log_file
279+ sgdisk -Z " $dev " & >> $log_file
280+ sgdisk -n 1::" +${efi_size} " -t 1:0700 -c 1:" EFI System" -A 1:set:0 -A 1:set:62 -A 1:set:63 " $dev " & >> $log_file
281+ sgdisk -n 2::" ${data_size} " -t 2:" $part_code " -c 2:" $part_name " " $dev " & >> $log_file
265282
266- wipefs -afq " ${devp} 1"
267- wipefs -afq " ${devp} 2"
283+ wipefs -af " ${devp} 1" & >> $log_file
284+ wipefs -af " ${devp} 2" & >> $log_file
268285
269286echo " Formating partitions..."
270287mkfs.fat -F 16 -n " MultiOS-EFI" " ${devp} 1" & >> $log_file
@@ -318,6 +335,8 @@ cp -r cert/ $part_efi/EFI/
318335dd conv=fsync status=none if=" $part_efi /grub/i386-pc/boot.img" of=" ${dev} " bs=1 count=446
319336dd conv=fsync status=none if=" $part_efi /grub/i386-pc/core.img" of=" ${dev} " bs=512 count=2014 seek=34
320337
338+ mv " $log_file " $part_data /MultiOS-USB/install.log
339+
321340sync
322341umount $part_efi
323342umount $part_data
0 commit comments