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

将 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

它继续启动紧急外壳。

我认为问题出在磁盘的设备名称上。在原始系统上,磁盘位于 /dev/sda。在新系统上,它是 /dev/xvda。使用安装磁盘,我可以启动到救援模式,它会挂载 /mnt/sysimage。但我不知道如何修复该问题。我能找到的唯一与设备名称相关的文件是 /mnt/sysimage/boot/grub2/device.map。我尝试将其更改为

(hd0)    /dev/xvda

但这并没有什么不同。我推测逻辑磁盘管理器配置需要在某些地方进行更改。

我该如何修复这个问题?我需要一些简单的说明,因为我不是 Linux 专家,尤其是与启动过程相关的方面。

答案1

Reddit 上也有同样的问题

主要思想——您需要重新生成 initrd。

  1. 启动到Linux 救援
  2. dracut -f根据调用本文

答案2

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

确实节省了我很多时间。试试吧。

答案3

我知道这个答案来得晚了,但我想分享一下我是如何解决这个问题的。我还在寻找将 CentOS7 VM 从 XenServer 6.5 迁移到 Hyper-V 2016 的答案。我尝试了从 Starwind 到导出为 XVA 设备并使用 XenConvert 2.3.1 进行转换的所有方法,但都无济于事。

解决方案实际上非常简单,并且第一次就成功了:下载此 ISO -https://sourceforge.net/projects/boot-repair-cd/

我采取的高级步骤:
1.) 将 XEN VM 导出到 OVA(或使用任何工具(如 Starwind)转换 .xva XEN 设备)
2.) 在 Hyper-V 中创建新 VM 并附加先前导出的 VHD3
.) 在新的 Hyper-V VM 的 DVD/CDROM 驱动器中安装来自上述链接的 ISO,然后从中启动。4
.) 按照提示操作(注意!!!确保 VM 已连接 NIC,该 NIC 连接到提供 DHCP 和互联网访问权限的外部网络)
5.) 选择自动修复(注意!!在重新安装 GRUB 的步骤中,您可能需要修改 yum 命令,在我的情况下,我必须使用 - “yum eras grub*”而不是“yum eras grub*-common”
6.) 重新启动并享受在 Hyper-V 上运行的 Linux VM :)

答案4

我丢失了启动分区,因此无法帮助执行dracut -f命令。

但是,我可以启动到救援内核,并运行yum update,它安装了一个新的内核并修复了导致此问题的任何原因。

有些事情是不应该运行最前沿的系统!

相关内容