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
|
||||
? `DISK="${disk}"`
|
||||
: `DISK=""
|
||||
for d in /dev/nvme0n1 /dev/sda /dev/vda; do
|
||||
[ -b "$d" ] && { DISK="$(basename $d)"; break; }
|
||||
# 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
|
||||
[ -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
|
||||
[ -z "$DISK" ] && { echo "ERROR: no disk found"; exit 1; }`;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user