What | Removed | Added |
---|---|---|
CC | ohering@suse.com | |
Flags | needinfo?(ohering@suse.com) |
> Specifically, it is failing the check_block_and_slaves_all function in dracut-functions.sh I was wrong about this guess. Since a certain upstream commit [1], the function to detect a block device changed from: --> [ -e /sys/dev/block/$1 ] && return 0 --< to --> for _mod in $(get_dev_module /dev/block/$1); do --< and the get_dev_module relies on udevadm, which fails to detect the nvme driver in SLE-15 SP3: virt158:~ # ls -l /dev/block total 0 lrwxrwxrwx 1 root root 10 Oct 5 05:53 259:1 -> ../nvme0n1 lrwxrwxrwx 1 root root 12 Oct 5 05:53 259:2 -> ../nvme0n1p1 lrwxrwxrwx 1 root root 12 Oct 5 05:53 259:3 -> ../nvme0n1p2 lrwxrwxrwx 1 root root 12 Oct 5 05:53 259:4 -> ../nvme0n1p3 lrwxrwxrwx 1 root root 12 Oct 5 05:53 259:5 -> ../nvme0n1p4 lrwxrwxrwx 1 root root 12 Oct 5 05:53 259:6 -> ../nvme0n1p5 virt158:~ # udevadm info -a "/dev/block/259:5" | sed -n 's/\s*DRIVERS=="\(\S\+\)"/\1/p' virt158:~ # udevadm info -a "/dev/block/259:2" | sed -n 's/\s*DRIVERS=="\(\S\+\)"/\1/p' virt158:~ # udevadm info -a "/dev/block/259:3" | sed -n 's/\s*DRIVERS=="\(\S\+\)"/\1/p' virt158:~ # udevadm --version 246 But for me the check works in Tumbleweed and the initrd includes the nvme driver: dev@localhost:~/src/dracut/test> ls -l /dev/block lrwxrwxrwx 1 root root 10 Oct 6 09:21 259:0 -> ../nvme0n1 lrwxrwxrwx 1 root root 12 Oct 6 09:21 259:1 -> ../nvme0n1p1 dev@localhost:~/src/dracut/test> udevadm info -a "/dev/block/259:1" | sed -n 's/\s*DRIVERS=="\(\S\+\)"/\1/p' nvme dev@localhost:~/src/dracut/test> udevadm --version 249 Please, could you check if this still fails with the latest snapshot of Tumbleweed? [1] https://github.com/dracutdevs/dracut/commit/6375d5d504c5eac1cc5e7d7e26a8643b7e7e1b3b