Dracut ERROR

  1. CentOS 7 的 Instance 啟動時出現如下訊息,無法開機。
    [...] Warning: dracut-initqueue timeout - starting timeout scripts
    
  2. 原因是Instance 使用的原始 Image 是 Xen (libvirt) Host,要使用 KVM 開機時,initramfs 檔中沒有 virt 相關的驅動程式,所以無法開機。解決方式:回到原始來源 Image 的系統,將 virt 相關的驅動程式加入 initramfs。
  3. 找到目前版本核心中的 virt 相關的模組
    [root@esm ~]# find /lib/modules/3.10.0-514.el7.x86_64/\
    kernel/drivers/ -name *virt*.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/block/virtio_blk.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/char/hw_random/virtio-rng.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/char/virtio_console.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/dma/virt-dma.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/gpu/drm/virtio/virtio-gpu.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/net/virtio_net.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/scsi/virtio_scsi.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_balloon.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_input.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_pci.ko
    /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_ring.ko
    
  4. 加入找到 virt 相關模組重新產生並覆蓋原來的 initramfs。
    [root@esm ~]# dracut --add-drivers \
    "`find /lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/ \
    -name *virt*.ko | sed 's|.*/||g'`" --force
    
  5. 檢查新產生的 initramfs 已包含 virt 相關模組。
    [root@esm ~]# zcat /boot/initramfs-3.10.0-514.el7.x86_64.img | cpio -t | grep virt
    usr/bin/systemd-detect-virt
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_ring.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_balloon.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_input.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/virtio/virtio_pci.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/block/virtio_blk.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/char/hw_random/virtio-rng.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/char/virtio_console.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/dma/virt-dma.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/gpu/drm/virtio
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/gpu/drm/virtio/virtio-gpu.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/net/virtio_net.ko
    usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/scsi/virtio_scsi.ko
    88917 blocks