将CentOS7从vmware迁移到Xen后,/ dev / centos / root不存在

我将一个CentOS 7系统从VMware Server 2迁移到XenServer 6.5。 CentOS系统是使用最小安装安装的。 我使用ovftool将.vmdk文件转换为.img使用这里的说明

https://www.mylesgray.com/virtualisation/using-vmwares-ovftool-convert-vmx-ova/

并使用XenCenter将其导入XenServer。 在启动时,我得到以下错误:

dracut-initqueue[286]: Warning: dracut-initqueue timeout - starting timeout scripts dracut-initqueue[286]: Warning: /dev/centos/root does not exist dracut-initqueue[286]: Warning: /dev/centos/swap does not exist dracut-initqueue[286]: Warning: /dev/mapper/centos-root does not exist 

它继续启动紧急shell。

我认为问题归结于磁盘的设备名称。 在原始系统上,磁盘位于/ dev / sda上。 在新系统上是/ dev / xvda。 使用安装盘,我可以启动进入救援模式,并挂载/ mnt / sysimage。 我不知道如何解决这个问题。 我能find的与设备名称相关的唯一文件位于/mnt/sysimage/boot/grub2/device.map。 我试图改变这一点

 (hd0) /dev/xvda 

但没有什么区别。 我认为逻辑磁盘pipe理器configuration需要改变的地方。

我怎样才能解决这个问题? 我需要简单的(ish)指令,因为我不是Linux专家,特别是在启动过程中。

Reddit上有同样的问题 。

主要思想 – 你需要重新生成initrd。

  1. 启动进入“linux rescue”
  2. 根据这篇文章调用'dracut -f'。

前段时间,我一直在使用Starwinds V2V转换器https://www.starwindsoftware.com/converter进行类似的任务。 它支持多种虚拟机磁盘格式,并在转换过程中进行内部硬件修补。 在转换过程中也可以select启用救援模式,并且支持多个虚拟机的批处理。 它是免费的。

为我节省了大量的时间。 试一试。

我知道这个答案来得晚,但我想我会分享我如何解决这个问题。 我还在寻找从XenServer 6.5迁移到Hyper-V 2016的CentOS7虚拟机的答案。我尝试了一切,从Starwind到XVA设备的导出以及使用XenConvert 2.3.1转换,都没有用处。

这个解决scheme其实很简单,并且第一次工作:下载这个ISO – https://sourceforge.net/projects/boot-repair-cd/

我采取的高级步骤:
1.)将XEN VM导出到OVA(或使用Starwind等任何工具转换.xva XEN设备)
2.)在Hyper-V中创build新的虚拟机,并附加先前导出的VHD
3.)将ISO从上面的链接挂载到新的Hyper-V虚拟机的DVD / CDROM驱动器中,然后从中启动。
4.)按照提示进行操作(注意!!!确保虚拟机有一个连接到外部networking的NIC,用来发出DHCP和互联网访问)
5.)select自动修复(重新安装GRUB的步骤NB !!),您可能需要修改yum命令,在我的情况下我必须使用 – “yum erase grub *”而不是“yum erase grub * -common “
6.)重新启动并享受在Hyper-V上运行的Linux VM