You are not logged in.
Hello,
after recent update I couldn't boot my system. It turned out the mkinitcpio script does not include all the necessary modules to assemble my RAID0 volume. Looking up the sources I found:
/usr/lib/initcpio/install/autodetect
...
45: # scan for md raid devices
46: md_devs=(/sys/class/block/md*/md/level)
47: if [[ -e $md_devs ]]; then
48: quiet "found %d mdadm arrays to scan" "${#md_devs[*]}"
49: mapfile -t mods < <(awk '{ gsub(/raid[456]/, "raid456"); print; }' "${md_devs[@]}")
50: for m in "${mods[@]}"; do
51: _autodetect_cache["$m"]=1
52: done
53: fi
...This successfuly detects the required raid0 module, but misses its dependency, dm-mod
/usr/lib/initcpio/install/mdadm_udev
...
4: add_checked_modules -f 'dm-' 'drivers/md/*'
...Because the autodetection finds only the raid0 module, this adds nothing, as no 'dm-' - prefixed modules were previously detected.
OK, great - I know where the problem lies, but I have difficulties with the decision where actually should the fix be applied:
The autodetection should also check for modules' dependencies and include them
If autodetection finds any RAID volume, it should include dm-mod by default.
The udev_adm hook should include dm-mod by default
Any pros and cons of the above options are highly anticipated.
Offline
FWIW, I include those modules in my initrd explicitly so as not to rely on autodetection (among other critical modules):
MODULES="ext4 dm_mod dm_crypt aes_x86_64 raid1"Offline
FWIW, I include those modules in my initrd explicitly so as not to rely on autodetection (among other critical modules):
MODULES="ext4 dm_mod dm_crypt aes_x86_64 raid1"
Yeah, I have a similiar configuration now, but it's an ugly workaround; In your case ext4 and raid1 are 99 % autodetected, so they shouldn't be there. I think that's against the idea behind autodetection.
Also, I can see that aes_x86_64, which is not autodetected, is a dependency of aesni_intel, so you have another incarnation of the problem described here... So all this would mean that including dependent modules is the right way to go. Will contact the mkinitcpio maintainers to get their opinion.
Offline