From faa77d40643ec51f583c9edf5b1cd402f2443a3e Mon Sep 17 00:00:00 2001 From: Thierry Laurion Date: Sun, 8 Sep 2024 13:37:33 -0400 Subject: [PATCH] /etc/functions:mount_possible_boot_device; punch exclusion of mount attempt 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 --- initrd/etc/functions | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/initrd/etc/functions b/initrd/etc/functions index 94f77d3e..3c4b092c 100755 --- a/initrd/etc/functions +++ b/initrd/etc/functions @@ -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