虚拟机迁移出现 a start job is running for dev-disk 的错误。

 

这个问题很明显,启动挂载系统出现了问题。一直找不到此系统盘。

定位过程如下:

1 查看迁移的img的启动项和fstab的文件,盘的UUID是否一直,这个是一致的

  可以通过命令 guestmount  -a /root/root.img  -m /dev/sda1 --rw /mnt挂载root.img

2 通过最简单的命令行的形式启动此盘,如下:

/usr/libexec/qemu-kvm --enable-kvm -smp 32 -m 60000  -cpu host -hda /root/root.img --nographic   --vnc :2

发现image是可以启动的。之所以这样运行,是想通过最简单的启动来找问题,如果能起来说明不是qemu-kvm本身的问题.启动信息也挂载了系统盘

3 查看libvirt对此虚拟机的配置

<disk type='block' device='disk'>

      <driver name='qemu' type='raw' cache='none' io='native'/>

      <source dev='/root/root.img'/>

      <target dev='sda' bus='virtio'/>

      <boot order='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>

    </disk>

 

 这个可能是virtio 导致的。因为命令行“-hda”是普通的ide的形式。

那么如何将virtio的配置改成ide呢,如下:

<disk type='file' device='disk'>

      <driver name='qemu' type='raw'/>

      <source file='/root/root.img'/>

      <target dev='hda' bus='ide'/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    </disk>

这个时候在测试,发现系统可以正常启动。这就img里没有virtio的驱动。通过解压客户的initrd发现没有virtio相关的驱动。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐