Hide Forgot
When converting a VM over to use virtio recently, had to change modprobe.conf to reference virtio_blk and virtio_net, and remake the initrd. When running mkinitrd with verbose output, I noticed that virtio_blk, virtio_pci, virtio_ring, and virtio where referenced as being included in the initrd. A reboot doesn't work, as the kernel can't find its own root disk. I rescued the system, and remade the initrd with exactly the same command as before, the one addition: --with=virtio_pci This works! The problem is shown by "modinfo virtio_blk". Notice that virtio_pci isn't listed as a dependency... even though it is actually required to work properly. Can we get this fixed so that mkinitrd doesn't unknowingly create incomplete initrds ?
Since RHEL 6.2 External Beta has begun, and this bug remains unresolved, it has been rejected as it is not proposed as exception or blocker. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux.
virtio_blk does not depend on virtio_pci by design. The virtio module doesn't require all virtio devices to be PCI devices (see the upstream virtio_mmio module, for example). After you are running on a system using virtio_blk, dracut pulls virtio_pci automatically. But as you are doing a manual conversion, you may need --with virtio_pci to be used on the first time you generate the initrd.