From cd535584f303a2b816d55a9f00bc57f58f1ce1ab Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Wed, 18 May 2022 19:30:29 +0200 Subject: [PATCH] usbinstall.sh: remove obsolete hfs+ EFI boot partition; fix error on final grub-install due to defaulting to x86_64-EFI target --- src/usbinstall.sh | 75 ++++++++--------------------------------------- 1 file changed, 13 insertions(+), 62 deletions(-) diff --git a/src/usbinstall.sh b/src/usbinstall.sh index 1d9186c..cba99f1 100644 --- a/src/usbinstall.sh +++ b/src/usbinstall.sh @@ -3,25 +3,9 @@ # Arg 1: usb device for installation # Arg 2: iso file # Arg 3: option - - -#~ # openmamba-usbinstall è uno script per la generazione automatica di una chiavetta di boot per openmamba snapshot. -#~ # Se i file necessari sono presenti sul disco fisso verranno utilizzati quelli altrimenti -#~ # scaricherà direttamente la versione attuale dal sito di openmamba. -#~ # se il file iso è presente nella home verrà usato direttamente altrimenti si aprirà un dialogo dove sarà possibile cercarlo. #~ # (c) 2009 ercole 'ercolinux' carpanetto - ercole69@gmail.com -#~ # (c) 2009-2019 Silvan Calarco - silvan.calarco@mambasoft.it -# License: GPL v.3 - - -#%Changelog: -# 17/10/11 (michiamophil) -# * Script modificato organizzando il codice in funzioni, chiamate dal modulo installazione.py -# 06/01/12 (michiamophil) -# * "sudo u/mount -> udisks" -# * export $1, $2, $3 -> OPENMAMBA_* -# 08/01/12 (michiamophil) -# * INITIAL-CHECK +#~ # (c) 2009-2022 Silvan Calarco - silvan.calarco@mambasoft.it +# Released under the terms of the GPL v3 license TEXTDOMAINDIR=/usr/share/locale/ TEXTDOMAIN=usbinstall @@ -81,9 +65,6 @@ function errorAndExit() if [ "${SELECT_USB2}" ]; then udisksctl unmount -b ${SELECT_USB2} >/dev/null fi - if [ "${SELECT_USB3}" ]; then - udisksctl unmount -b ${SELECT_USB3} >/dev/null - fi exit_frontend "$1" # Termina il frontend con codice di errore 1 exit 1 } @@ -147,11 +128,9 @@ fi if [ "${SELECT_USB:0:9}" = "/dev/loop" ]; then SELECT_USB1=${SELECT_USB}p1 SELECT_USB2=${SELECT_USB}p2 - SELECT_USB3=${SELECT_USB}p3 else SELECT_USB1=${SELECT_USB}1 SELECT_USB2=${SELECT_USB}2 - SELECT_USB3=${SELECT_USB}3 fi # Check if Arg 2 is valid @@ -209,7 +188,7 @@ fi set_status $"Partitioning $SELECT_USB..." echo $"Partitioning $SELECT_USB..." -# Wipe any old GPT table or grub-install may fail due to mmultiple partition labels +# Wipe any old GPT table or grub-install may fail due to multiple partition labels sudo dd if=/dev/zero of=$SELECT_USB bs=512 count=2047 skip=1 # Start from a new partition table sudo parted -s $SELECT_USB mktable msdos &>>$LOGFILE @@ -217,22 +196,17 @@ if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"parted\" "$"exit with error (see $LOGFILE)" fi # EFI partition -sudo parted -s -a optimal -- $SELECT_USB mkpart primary hfs+ 1M 20M &>>$LOGFILE -if [ "$?" != "0" ]; then - errorAndExit $"Error:"" \"parted\" "$"exit with error (see $LOGFILE)" -fi -# EFI partition -sudo parted -s -a optimal -- $SELECT_USB mkpart primary fat32 20M 40M &>>$LOGFILE +sudo parted -s -a optimal -- $SELECT_USB mkpart primary fat32 1M 20M &>>$LOGFILE if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"parted\" "$"exit with error (see $LOGFILE)" fi # openmamba partition -sudo parted -s -a optimal -- $SELECT_USB mkpart primary ext4 40M -1 &>>$LOGFILE +sudo parted -s -a optimal -- $SELECT_USB mkpart primary ext4 20M -1 &>>$LOGFILE if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"parted\" "$"exit with error (see $LOGFILE)" fi # boot flag on openmamba partition -sudo parted -s $SELECT_USB set 3 boot on &>>$LOGFILE +sudo parted -s $SELECT_USB set 2 boot on &>>$LOGFILE if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"parted\" "$"exit with error (see $LOGFILE)" fi @@ -241,15 +215,11 @@ set_pbar 5 set_status $"Formatting $SELECT_USB..." echo $"Formatting $SELECT_USB..." -sudo mkfs.hfsplus ${SELECT_USB1} -v EFI_MAC &>>$LOGFILE -if [ "$?" != "0" ]; then - errorAndExit $"Error:"" \"mkfs.hfsplus\" "$"exit with error (see $LOGFILE)" -fi -sudo mkfs.vfat ${SELECT_USB2} -n EFI &>>$LOGFILE +sudo mkfs.vfat ${SELECT_USB1} -n EFI &>>$LOGFILE if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"mkfs.vfat\" "$"exit with error (see $LOGFILE)" fi -sudo mkfs.ext4 ${SELECT_USB3} -L openmamba_live &>>$LOGFILE +sudo mkfs.ext4 ${SELECT_USB2} -L openmamba_live &>>$LOGFILE if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"mkfs.ext4\" "$"exit with error (see $LOGFILE)" fi @@ -263,18 +233,9 @@ LANG=C udisksctl mount -b ${SELECT_USB2} &>>$LOGFILE if [ "$?" != "0" ]; then errorAndExit $"Error:"" \"udisks --mount\" "$"exit with error (see $LOGFILE)" fi -LANG=C udisksctl mount -b ${SELECT_USB3} &>>$LOGFILE -if [ "$?" != "0" ]; then - errorAndExit $"Error:"" \"udisks --mount\" "$"exit with error (see $LOGFILE)" -fi set_pbar 30 -MOUNTDIR_EFI_MAC=`udisksctl info -b ${SELECT_USB1} | grep -m1 MountPoints: | sed "s|.*[[:space:]]||"` -if [ ! -d "$MOUNTDIR_EFI_MAC" ]; then - errorAndExit $"Error: unable to found usb mount path" -fi - -MOUNTDIR_EFI=`udisksctl info -b ${SELECT_USB2} | grep -m1 MountPoints: | sed "s|.*[[:space:]]||"` +MOUNTDIR_EFI=`udisksctl info -b ${SELECT_USB1} | grep -m1 MountPoints: | sed "s|.*[[:space:]]||"` if [ ! -d "$MOUNTDIR_EFI" ]; then errorAndExit $"Error: unable to found usb mount path" fi @@ -296,7 +257,7 @@ if [ -d /usr/lib/grub/i386-efi ]; then } fi -MOUNTDIR=`udisksctl info -b ${SELECT_USB3} | grep -m1 MountPoints: | sed "s|.*[[:space:]]||"` +MOUNTDIR=`udisksctl info -b ${SELECT_USB2} | grep -m1 MountPoints: | sed "s|.*[[:space:]]||"` if [ ! -d "$MOUNTDIR" ]; then errorAndExit $"Error: unable to found usb mount path" fi @@ -396,17 +357,10 @@ search --no-floppy --label --set=root openmamba_live fi set_pbar 85 -cp -a $MOUNTDIR_EFI/EFI $MOUNTDIR_EFI_MAC - -if [ "$TARGET_ARCH" = "x86_64" ]; then - hfs-bless $MOUNTDIR_EFI_MAC/EFI/BOOT/bootx64.efi &>>$LOGFILE -else - hfs-bless $MOUNTDIR_EFI_MAC/EFI/BOOT/bootia32.efi &>>$LOGFILE -fi - set_status $"Writing bootloader..." echo $"Writing bootloader..." -sudo grub-install --modules="part_msdos part_gpt ext2" --removable --boot-directory=boot/ $SELECT_USB &>>$LOGFILE || { +# Install mbr bootloder (i386-pc) +grub-install --modules="part_msdos part_gpt ext2" --removable --target=i386-pc --boot-directory=boot/ $SELECT_USB &>>$LOGFILE || { errorAndExit $"Error: failed to install bootloader into device (${SELECT_USB})" } set_pbar 90 @@ -423,12 +377,9 @@ LANG=C udisksctl unmount -b ${SELECT_USB1} &>>$LOGFILE || { LANG=C udisksctl unmount -b ${SELECT_USB2} &>>$LOGFILE || { errorAndExit $"Error: fail to umount the usb key (${SELECT_USB2})" } -LANG=C udisksctl unmount -b ${SELECT_USB3} &>>$LOGFILE || { - errorAndExit $"Error: fail to umount the usb key (${SELECT_USB3})" -} ## WARNING: calling install-mbr after unmounting to prevent problems of FAT since EFI partition introduction -#sudo install-mbr $SELECT_USB &>>$LOGFILE +#install-mbr $SELECT_USB &>>$LOGFILE set_pbar 100 exit_frontend ""