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:
@@ -88,8 +88,20 @@ chmod 440 /etc/sudoers.d/${adminUser}`;
|
|||||||
const diskLine = disk
|
const diskLine = disk
|
||||||
? `DISK="${disk}"`
|
? `DISK="${disk}"`
|
||||||
: `DISK=""
|
: `DISK=""
|
||||||
for d in /dev/nvme0n1 /dev/sda /dev/vda; do
|
# Wait up to 10s for NVMe/SCSI disks to appear (they init async in initrd)
|
||||||
[ -b "$d" ] && { DISK="$(basename $d)"; break; }
|
for _wait in $(seq 1 10); do
|
||||||
|
for d in /dev/nvme0n1 /dev/sda /dev/vda; do
|
||||||
|
[ -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; }`;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user