
以前に上のような記事を書いたのですが、その後bugzillaに回避策が報告されたのでここにメモとして残しておこうと思います。
60758 – module scsi_wait_scan not found kernel panic on boot
1067669 – Dracut must include kernel modules referencing symbol "blk_mq_init_queue" just like those referencing symbol "blk_init_queue"
回避策は以下のとおりです。
1) check if virtio_blk is in intrd:
#for i in /boot/initramfs-* ; do echo $i: ; lsinitrd $i | grep virt ; done
2) if virtio_blk is missing in the relevant initrd, then
#
echo 'add_drivers+="virtio_blk"' >/etc/dracut.conf.d/force-vitio_blk-to-ensure-boot.conf
(NOTE that the .conf extension is mandatory !)3) then rebuild the initrd
まずはinitramfsに対してgrepを実行し、virtio_blk.ko
が含まれているか否かを確認します。
含まれていなかった場合は、以下のコマンドを実行し、dracut
コマンドにパラメータを追加します。
echo 'add_drivers+="virtio_blk"' >/etc/dracut.conf.d/force-vitio_blk-to-ensure-boot.conf
その後は通常通り、カーネルコンパイルを実行します。すると以下の様な感じで最初から組み込まれた形でコンパイルできていると思います。
# lsinitrd /boot/initramfs-3.13.4-kometch-build-20140221.img | grep virt
-rw-r--r-- 1 root root 22744 Feb 21 21:45 lib/modules/3.13.4-kometch-build-20140221/kernel/drivers/block/virtio_blk.ko
drwxr-xr-x 2 root root 0 Feb 21 21:45 lib/modules/3.13.4-kometch-build-20140221/kernel/drivers/virtio
-rw-r--r-- 1 root root 17072 Feb 21 21:45 lib/modules/3.13.4-kometch-build-20140221/kernel/drivers/virtio/virtio_balloon.ko
-rw-r--r-- 1 root root 13216 Feb 21 21:45 lib/modules/3.13.4-kometch-build-20140221/kernel/drivers/virtio/virtio.ko
-rw-r--r-- 1 root root 19944 Feb 21 21:45 lib/modules/3.13.4-kometch-build-20140221/kernel/drivers/virtio/virtio_pci.ko
-rw-r--r-- 1 root root 19448 Feb 21 21:45 lib/modules/3.13.4-kometch-build-20140221/kernel/drivers/virtio/virtio_ring.ko
また、こちらは試していないのですが、RedHatのBugzillaには以下の様な回避策が掲載されています。
POINT
-
/usr/share/dracut/modules.d/90kernel-modules/installkernel
を開きます。 - “
blk_init_queue
“の後に追加する形で”blk_mq_init_queue
“を追加します。
これを行うことで、virtio_blk.ko
が組み込まれるようです。
間違いなど有りましたらご指摘ください。