使用 qemu-img 转换的 RHel 7 启动时出现 dracut 错误,导致失败

使用 qemu-img 转换的 RHel 7 启动时出现 dracut 错误,导致失败

我必须将几台计算机从 Hyper-V 迁移到 VmWare。我想使用 qemu-img,因为它是命令行,我可以创建一个脚本。转换在 Windows 上工作正常,但在 Linux Red hat 7 上不起作用

目标 vmware 是 ESX

注意:虚拟机配置为使用 UEFI

我尝试过几种选择...

1) With 'compat6' option
qemu-img convert -f vhdx RHEL7.6.VHDX -O vmdk -o adapter_type=lsilogic,compat6 rhel7.6.vmdk

2) with only 'lsilogic'
qemu-img convert -f vhdx RHEL7.6.VHDX -O vmdk -o adapter_type=lsilogic rhel7.6.vmdk

3) and without any option
qemu-img convert -f vhdx RHEL7.6.VHDX -O vmdk rhel7.6.vmdk

文件转换后,我使用 vmkfstools 创建一个新文件,例如具有 vmdk 标头。

vmkfstools -i rhel7.6.vmdk -d thin final-rhel7.6.vmdk

然后我将磁盘安装为 SCSCI(当我使用 1 或 2(以上)命令进行转换时),但它失败并出现 dracut 超时消息。

唯一有效的转换是当我使用第 3 条命令时,但磁盘配置为 IDE。

虽然 IDE 可以工作,但我无法以这种方式配置,因为对于我们来说,磁盘必须是 SCSI

关于如何使用 qemu 转换 Hyper-v RHEL7,您有什么想法吗?

问候

答案1

我以为我的问题出在 qemu 转换上,但经过一番搜索后发现问题在于目标映像不包含启动所需的驱动程序。

我写了这篇简短的描述,描述了我使用 qemu 转换到 ESXi 的方法,也许可以帮助到其他人。

首先我用这句话转换成“vmdk”

qemu-img convert -f vhdx RHEL7.6.VHDX -O vmdk -o adapter_type=lsilogic,compat6 temprhel7.6.vmdk

然后我已上传到 ESXi 并以这种方式使用 vmkfstools,并且我删除了临时转换。

vmkfstools -i temprhel7.6.vmdk -d thin final-rhel7.6.vmdk 
rm temprhel7.6.vmdk

注意:vmkfstools 为目标磁盘创建一个新的 vmdk 文件头。

然后在 VmWare 上,我创建了一个空虚拟机,并附加了“final-rhel7.6.vmdk”。虚拟机配置为在 UEFI 中启动,scsi 设置为“LSI Logic Sas”

在目标虚拟机上,我还附加了一个 RHEL7 iso 以使用恢复磁盘进行启动。我按照程序使用“dracut -f”重新创建了 initramfs

注意:“dracut -f”可以不带选项使用,但如果您使用特定版本,则必须指明它例如:

dracut -f /boot/initramfs-2.6.32-220.7.1.el6.x86_64.img 2.6.32-220.7.1.el6.x86_64

此恢复程序已发布于“https://access.redhat.com/solutions/1958“ 以及其他帖子中的情况。

我猜想可以在虚拟机转换之前添加驱动程序,但我对这方面有基本的了解。但我想这应该类似于我为 SUSE enterprise 找到的这个配方 dracut --force --add-drivers "vmw_pvscsi scsi_transport libsas mptbase mptspi" /boot/initramsfs....

希望这对某人有帮助

相关内容