我正在尝试将Linux PC迁移到在XenServer中运行的虚拟机。 通常我只是用dd创build启动磁盘(/ dev / sda)的映像,并使用它来覆盖空的虚拟磁盘映像。 不幸的是,启动磁盘相当大,因此我只创build了一个只有大约250 GB的启动分区(/ dev / sda1)映像。 然后,我创build了一个500 GB的新虚拟磁盘,将它连接到现有的Linux虚拟机(/ dev / xvdc),将其分区以创build主分区(/ dev / xvdc1),并将分区映像分配给该分区。
我可以挂载该分区。 这些文件是我期望的,但当然grub启动代码丢失了。
因此,我使用了如何使用Live CD chroot Ubuntu来修复GRUB救援提示以在/ dev / xvdc上安装grub中描述的方法。
$ sudo su $ mount /dev/sdax /mnt/newroot $ mount ‐‐bind /dev /mnt/newroot/dev $ mount ‐‐bind /proc /mnt/newroot/proc $ mount ‐‐bind /sys //mnt/newroot/sys $ chroot /mnt/newroot $ grub-install /dev/xvdc
它似乎工作正常,没有错误消息显示。
现在,我将新的虚拟磁盘作为唯一的驱动器附加到新的虚拟机上,并尝试启动它。 没有这样的运气。 我没有得到任何错误消息,没有GRUB提示,它只是启动,然后停止。
编辑:有一个错误消息,我只是忽略了它:
"The Bootloader for this VM returned an error -- did the VM installation succeed? INVALID_SOURCE cdrom repo /dev/sm/backend/[some long number, probably a GUID]
我在这里错过了什么?
编辑:将虚拟驱动器连接到现有的Linux虚拟机解决了这个问题。 我把它从那个驱动器启动,做了一个虚拟机的完整副本,并最终恢复到原来的启动驱动器。
这仍然留下了一个问题:为什么XenServer坚持尝试从一个不存在的DVD启动?