Skip to content

Commit

Permalink
qubes-dom0-update could check whether /boot is mounted
Browse files Browse the repository at this point in the history
  • Loading branch information
alimirjamali committed Jun 24, 2024
1 parent 78e2b8d commit 87d4dd0
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions dom0-updates/qubes-dom0-update
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,43 @@ if [ -n "$CLEAN" ]; then
fi
rm -f /var/lib/qubes/updates/errors

# Synopsis: check_mounted MOUNTPOINT
check_mounted() {
local CHOICE
# No reason to check further if mount point is already mounted
awk -v PART="${1}" '{if ($2 == PART ) { exit 0 }} ENDFILE{exit -1}' < /proc/mounts
[[ ${?} -ne 0 ]] || return
# No reason to check further if mount point is not in fstab
awk -v PART="${1}" '!/^[ \t]*#/{ if ( $2 == PART ) { exit 0}} ENDFILE {exit -1}' < /etc/fstab
[[ ${?} -ne 0 ]] && return
# Ask user to manually mount partition if user is using GUI Updater
if [ ! -t 1 ]; then
echo "Could not decide about unmounted ${1} partition in non-interactive/GUI mode!"
echo "Please mount ${1} manually before proceeding with updates or update via CLI."
exit 1
fi
read -p "${1} partition is not mounted! mount it now? (y)es, (n)o, (a)bort operation " CHOICE
case ${CHOICE} in
y|Y)
mount "${1}"
if [[ ${?} -ne 0 ]]; then
echo "Mounting of ${1} was unsuccessful! aborting."
exit 1
fi
;;
n|N) echo "Warning! Proceeding forward without mounting ${1}";;
a|A) echo Operation aborted!; exit 1;;
*) echo Invalid choice. Aborting!; exit 1;;
esac
}

if [ "$CHECK_ONLY" != "1" ]; then
# Check if /boot is mounted on split root systems
check_mounted "/boot"
# Check if efi partition is mounted on UEFI systems
[ -d /sys/firmware/efi ] && check_mounted "/boot/efi"
fi

echo "Using $UPDATEVM as UpdateVM to download updates for Dom0; this may take some time..." >&2

# qvm-run by default auto-starts the VM if not running
Expand Down

0 comments on commit 87d4dd0

Please sign in to comment.