2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-06-01 07:51:33 +00:00
Files
Markus Hilger 7d7f001826 Handle hostname-prefixed md device names and clear stale superblocks
Newer mdadm versions may load arrays under names like
`/dev/md/<hostname>:raid` after reboot instead of `/dev/md/raid`. Detect both
naming schemes when waiting for the array device and use the resolved
path consistently when determining the underlying md device name.

Also clear existing md superblocks before wiping signatures to avoid
stale RAID metadata interfering with array creation or assembly.
2026-05-22 02:00:41 +02:00

31 lines
918 B
Plaintext

DEVICES="/dev/sda /dev/sdb"
RAIDLEVEL=1
mdadm --detail /dev/md*|grep 'Version : 1.0' >& /dev/null || (
lvm vgchange -a n
mdadm -S -s
NUMDEVS=$(for dev in $DEVICES; do
echo wipefs -a -f $dev
done|wc -l)
for dev in $DEVICES; do
mdadm --zero-superblock $dev
wipefs -a -f $dev
done
# must use older metadata format to leave disks looking normal for uefi
mdadm -C /dev/md/raid $DEVICES -n $NUMDEVS -e 1.0 -l $RAIDLEVEL -b internal
# shut and restart array to prime things for anaconda
mdadm -S -s
mdadm --assemble --scan
)
while :; do
# newer mdraid verions might have <hostname>:<raidname>
TARGET_RAID=$(ls /dev/md/raid /dev/md/*:raid 2>/dev/null | head -n 1)
[ -n "$TARGET_RAID" ] && break
echo 'Waiting on array to be linked...'
sleep 0.5
done
# Extract the underlying block device name (e.g., md127) using the captured path
readlink "$TARGET_RAID" | sed -e 's/.*\///' > /tmp/installdisk