fix: skip removable/USB disks in %pre, wait for NVMe init

JetKVM virtual media appears as /dev/sda before NVMe initializes.
Now: wait up to 10s for disks, skip removable disks and anything
under 20GB. Fixes "ignoredisk: sda does not exist" on SER9MAX.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Michal
2026-03-29 12:38:41 +01:00
parent e3523d642c
commit a7a6ad8098

View File

@@ -88,8 +88,20 @@ chmod 440 /etc/sudoers.d/${adminUser}`;
const diskLine = disk const diskLine = disk
? `DISK="${disk}"` ? `DISK="${disk}"`
: `DISK="" : `DISK=""
# Wait up to 10s for NVMe/SCSI disks to appear (they init async in initrd)
for _wait in $(seq 1 10); do
for d in /dev/nvme0n1 /dev/sda /dev/vda; do for d in /dev/nvme0n1 /dev/sda /dev/vda; do
[ -b "$d" ] && { DISK="$(basename $d)"; break; } [ -b "$d" ] || continue
# Skip removable disks (USB, CD-ROM, JetKVM virtual media)
_bname=$(basename "$d")
[ -f "/sys/block/$_bname/removable" ] && [ "$(cat /sys/block/$_bname/removable)" = "1" ] && continue
# Skip disks smaller than 20GB (likely USB sticks)
_size=$(cat /sys/block/$_bname/size 2>/dev/null || echo 0)
[ "$_size" -lt 41943040 ] && continue
DISK="$_bname"
break 2
done
sleep 1
done done
[ -z "$DISK" ] && { echo "ERROR: no disk found"; exit 1; }`; [ -z "$DISK" ] && { echo "ERROR: no disk found"; exit 1; }`;