Skip to content

Commit

Permalink
/etc/functions:mount_possible_boot_device; punch exclusion of mount a…
Browse files Browse the repository at this point in the history
…ttempt on partitions <2Mb (4096 sectors)

Removes spurious errors thrown for exfat in dmesg in that function. Something better to propose?

Signed-off-by: Thierry Laurion <[email protected]>
  • Loading branch information
tlaurion committed Sep 9, 2024
1 parent 3574e12 commit faa77d4
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions initrd/etc/functions
Original file line number Diff line number Diff line change
Expand Up @@ -697,13 +697,24 @@ mount_possible_boot_device() {
return 1
fi

TRACE "Try mounting $BOOT_DEV as /boot"
if mount -o ro "$BOOT_DEV" /boot >/dev/null 2>&1; then
if ls -d /boot/grub* >/dev/null 2>&1; then
# This device is a reasonable boot device
return 0
fi
# Get the size of BOOT_DEV in 512-byte sectors
sectors=$(blockdev --getsz "$BOOT_DEV")

# Check if the partition is small (less than 2MB, which is 4096 sectors)
if [ "$sectors" -lt 4096 ]; then
TRACE_FUNC
DEBUG "Partition $BOOT_DEV is very small, likely BIOS boot. Skipping mount."
return 1
else
TRACE_FUNC
DEBUG "Try mounting $BOOT_DEV as /boot"
if mount -o ro "$BOOT_DEV" /boot >/dev/null 2>&1; then
if ls -d /boot/grub* >/dev/null 2>&1; then
# This device is a reasonable boot device
return 0
fi
umount /boot || true
fi
fi

return 1
Expand Down

0 comments on commit faa77d4

Please sign in to comment.