What | Removed | Added |
---|---|---|
CC | trenn@suse.com |
The contents of modules-load.d is not particularly relevant here. More relevant is the content of /lib/modules/4.3.rc4-2*-default/kernel/drivers/md/ This should have md-mod.ko and raid0.ko. If it doesn't (which I suspect to be the case), then that is the problem. You can easily test by running e.g. lsinitrd =boot/initrd-4.3.rc4-2*-default | grep raid0 .... Ah, I think I might know what is going wrong. You are booted with your all-yes-config kernel when you install the openSUSE kernel, aren't you? dracut (which builds the initrd) has some slightly complicated logic to decide whether to actually include a module in the initrd or not. The 'mdraid' dracut module asks the 'instmods' function (in /usr/lib/dracut somewhere) to install all modules in drivers/md/. instmods tries to be clever. For example if each module is currently loaded in the running kernel, it will be added to the initrd. If it could be loaded, but currently isn't, then it is not added to the initrd. Then there is some fairly complicated logic that only applies to modules with aliases (and raid0.ko does have aliases). I'm not 100% sure, but I think this logic is making unfounded assumptions (it is the checks in host_modalias[] in modules_is_host_only() in dracut_functions.sh) In any case, we can bypass all this logic by passing the "-A" flag to mkinitrd. This suppresses the 'hostonly' checks.... or at least that it what the documentation says. It seems that it lies. But we can call dracut directly So: as one final test, can you please run dracut -N --force /boot/initrd-$VERSION $VERSION where $VERSION is your kernel version, presumably 4.3.0-rc4-2.gefc53bd-default and then try to boot the openSUSE kernel. If you don't want to that is fine. I've managed to duplicate the bug now so I'm sure I can get it fixed. But having confirmation from you that this fixes your problem would be nice.