You can add an udev rule to impose a particular device path for a particular device. For example:
KERNEL=="sd*", ATTRS{DRIVER}=="ide*", NAME="hda%n"
This line goes into a file called /etc/udev/rules.d/59-wukerplank-storage.rules
. It takes effect when the device is added; you can tell udev to reapply rules but this is not a good idea if the device is in use.
Note that you should not rely on names like hda
or sda
, they are not expected to be constant. If you need a persistent name for a device, it is best to use udev to create an alias for it:
KERNEL=="sd*", ATTRS{model}=="ZXQ-500", ATTRS{serial}=="123456", SYMLINK+="disks/by-alias/zxq"
The command udevadm info -a -n sda
shows what properties you can use to match /dev/sda
.
RAID configurations normally use a unique identifier (UUID) to tell which disk is which. This is necessary, for example, if you plug the disks in a different machine or in a different order. So it is strange that your RAID would have trouble with device names. If you have custom scripts that depend on device names, make them call mdadm
to query the components of the array instead.
dmesg
etc. The home server being a long-running machine that due to the outage was rebooted for the first time with an updated kernel would be an explanation, I suppose...)