出于业余爱好,我正在运行一个非常老旧的 Windows NT 4 Server +SP6 安装,并将 MS SNA Server 作为 Vmware ESXi 客户机。我对 Linux 相当熟练,但对 Windows 则不太熟练。
目标是从 Vmware 迁移出来,并在 Debian 12“Bookworm”上的 Qemu+KVM 中运行所有现有 VM,Qemu 版本为 7.2。我不想使用任何其他中间件,例如 libvirt 或完整的虚拟环境,例如 Proxmox 等。我已成功迁移原始 vmdk 容器中的 VM,运行以下客户操作系统:
- Debian 3.0 “伍迪”
- Debian 3.1 “中士”
- 具有 UEFI 启动的 Debian 12 “Bookworm”
- Windows Server 2008 R2
- 在 FreeDOS 上运行的 Netware 3.12
我唯一无法迁移的虚拟机是 NT 4。
所述 NT 4 安装位于连接到虚拟 BusLogic 控制器的 2GiB 虚拟 SCSI 驱动器上。整个安装在虚拟磁盘上占用约 300MiB。安装了 Vmware-Tools,但由于 ESXi Web-UI 不允许选择其他类型的 SCSI 控制器,我怀疑没有硬碟NT4 的驱动程序。
笔记:我知道 NT4 和 Qemu 的一些故障会导致蓝屏。在我的故障隔离过程中,我发现
-cpu host,level=3
可以解决这个问题。这个问题是不是关于那种错误。
当我在 Qemu 中启动虚拟机时,我只收到 SeaBIOS 消息Booting from Hard Disk...
,这是启动过程非常早期的失败。当 vmdk 连接到虚拟 IDE 和 pvscsi 控制器以及将 vmdk 转换为 QCOW2 格式时,此行为很明显。
我也从 NT 4 安装映像启动,进行了“修复运行”,但结果仍然与上面描述的相同。
我可以使用在 2GiB IDE 上安装的 QCOW2 磁盘上的全新 Windows NT 4 复制此行为。在作为 IDE 连接的 500MiB 硬盘映像中安装 Windows NT 4 可以正常工作。这对我来说似乎很令人惊讶,但不知何故解释了早期启动失败。显然早期的 IDE502MiB 屏障是罪魁祸首。
VMDK 元数据文件中提到了磁盘的几何形状:
ddb.geometry.cylinders = "261"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
因此,在 Qemu 命令行中手动设置几何形状会导致 Qemu 发出错误消息,指出 255 个磁头是无效配置,与在这篇文章中。我不知道从这个发现可以推断出什么。
至此我已经没有什么主意了。
关于从 Vmware 迁移到 Qemu+KVM 的广泛研究通常会产生有关如何将 vmdks 转换为 QCOW2 的结果,但这没有帮助。针对 NT 4 的搜索会产生有关上述蓝屏的结果,但这无关紧要。FreeDOS 启动没有问题,但是,FreeDOS 之前安装在虚拟 IDE 上,磁盘大小小于 500MiB,因此磁盘几何形状无论如何都在限制范围内。
我对 Windows 的底层操作不是很有经验,但我对如何摆脱这种困境的总体想法是将现有的 2GiB NT 4 磁盘和一个新的空的 500MiB 磁盘连接到已经迁移的 W2k VM,fdisk
+用 NTFS 格式化,复制 NT 4 安装基于文件(不是基于块的!),写入引导块并进行设置。使用独立的 Windows 安装执行此操作应确保可以复制所有文件,并且不会锁定任何源文件,从而防止复制。
一位朋友提到 Clonezilla 可能是一个解决方案。我的尝试没有成功,因为“目标太小”。Clonezilla 显然是基于块而不是基于文件的。
从 VMware ESXi 到 Qemu 的有效迁移路径是什么样的?