mirror of
https://github.com/linuxboot/heads.git
synced 2024-12-18 20:47:55 +00:00
gui-init: retry mounting /boot after device changed
If CONFIG_BOOT_DEV isn't set or otherwise fails to mount, we prompt the user to change the /boot device, but never attempt to mount it to ensure it's sane, leading to potential failures later in the config/boot process. Ensure that CONFIG_BOOT_DEV is updated after the /boot device is changed, and attempt to re-mount /boot after the change. Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
This commit is contained in:
parent
57c4207bf8
commit
b1d57dac66
@ -8,15 +8,22 @@ CONFIG_BOOT_GUI_MENU_NAME='Heads Boot Menu'
|
|||||||
|
|
||||||
mount_boot()
|
mount_boot()
|
||||||
{
|
{
|
||||||
# ensure default boot device is set
|
|
||||||
if [ ! -e "$CONFIG_BOOT_DEV" ]; then
|
|
||||||
if (whiptail $CONFIG_ERROR_BG_COLOR --clear --title "ERROR: $CONFIG_BOOT_DEV missing!" \
|
|
||||||
--yesno "The /boot device $CONFIG_BOOT_DEV could not be found!\n\nYou will need to configure the correct device for /boot.\n\nWould you like to configure the /boot device now?" 30 90) then
|
|
||||||
config-gui.sh
|
|
||||||
fi
|
|
||||||
# Mount local disk if it is not already mounted
|
# Mount local disk if it is not already mounted
|
||||||
elif ! grep -q /boot /proc/mounts ; then
|
while ! grep -q /boot /proc/mounts ; do
|
||||||
mount -o ro /boot
|
# ensure default boot device is set
|
||||||
|
if [ ! -e "$CONFIG_BOOT_DEV" ]; then
|
||||||
|
if (whiptail $CONFIG_ERROR_BG_COLOR --clear --title "ERROR: $CONFIG_BOOT_DEV missing!" \
|
||||||
|
--yesno "The /boot device $CONFIG_BOOT_DEV could not be found!\n\nYou will need to configure the correct device for /boot.\n\nWould you like to configure the /boot device now?" 30 90) then
|
||||||
|
config-gui.sh
|
||||||
|
else
|
||||||
|
# exit to main menu
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# update CONFIG_BOOT_DEV
|
||||||
|
. /tmp/config
|
||||||
|
mount -o ro $CONFIG_BOOT_DEV /boot
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
if (whiptail $CONFIG_ERROR_BG_COLOR --clear --title 'ERROR: Cannot mount /boot' \
|
if (whiptail $CONFIG_ERROR_BG_COLOR --clear --title 'ERROR: Cannot mount /boot' \
|
||||||
--yesno "The /boot partition at $CONFIG_BOOT_DEV could not be mounted!\n\nWould you like to configure the /boot device now?" 30 90) then
|
--yesno "The /boot partition at $CONFIG_BOOT_DEV could not be mounted!\n\nWould you like to configure the /boot device now?" 30 90) then
|
||||||
@ -25,7 +32,7 @@ mount_boot()
|
|||||||
recovery "Unable to mount /boot"
|
recovery "Unable to mount /boot"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
done
|
||||||
}
|
}
|
||||||
verify_global_hashes()
|
verify_global_hashes()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user