I'm running a very old Windows NT 4 Server +SP6 installation with MS SNA Server as Vmware ESXi guest for hobbyist purposes. I'm rather skilled with Linux but not so much with Windows.
Goal is to migrate away from Vmware, and run all existing VMs in Qemu+KVM on Debian 12 "Bookworm", Qemu version 7.2. I don't want to utilize any additional middleware such as libvirt or a complete virtual environment like Proxmox, etc. I have successfully migrated VMs within the original vmdk containers, running these guest operating systems:
- Debian 3.0 "Woody"
- Debian 3.1 "Sarge"
- Debian 12 "Bookworm" with UEFI boot
- Windows Server 2008 R2
- Netware 3.12 running on FreeDOS
The only VM I fail to migrate is NT 4.
Said NT 4 installation is located on a 2GiB virtual SCSI drive connected to a virtual BusLogic controller. The whole install occupies around 300MiB on the virtual disk. Vmware-Tools are installed, but since the ESXi Web-UI doesn't allow to select another type of SCSI controller, I suspect there are no pvscsi drivers for NT4.
Note: I'm aware about some glitches with NT4 and Qemu resulting in bluescreens. During my fault isolation procedures, I found that
-cpu host,level=3works around that one. This question is not about that kind of error.
When I launch the virtual machine in Qemu, I'm just getting the SeaBIOS message Booting from Hard Disk..., a failure very early in the boot process. This behavior is apparent with the vmdk attached to both virtual IDE and pvscsi controllers as well as with the vmdk converted to QCOW2 format.
I also have booted from the NT 4 installation image, did a "repair run" but the result stays the same as described above.
I can duplicate this behavior with a completely new Windows NT 4 install on a 2GiB IDE attached QCOW2 disk to Qemu. Installing Windows NT 4 in a 500MiB hard disk image attached as IDE works. This appears surprising to me, but somehow explains the early boot failure. Apparently the early IDE 502MiB barrier is the culprit.
The disk's geometry is mentioned in the VMDK metadata file:
ddb.geometry.cylinders = "261"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
Setting the geometry manually in the Qemu command line accordingly yields an error message from Qemu that 255 heads are an invalid configuration, same as in this post. I have no idea what to infer from this finding.
At this point I've run out of ideas.
Extensive research about migration from Vmware to Qemu+KVM most often yields results about how to convert vmdks to QCOW2, which doesn't help. Searches specific to NT 4 yields results about the above mentioned bluescreen, which is irrelevant. FreeDOS had no issue booting, but then, that FreeDOS install was on virtual IDE before, and the disk size is less than 500MiB, so the disk geometry is within limits anyway.
I'm not very experienced with Windows on a low level but my general idea how to get out of this trap is to attach the existing 2GiB NT 4 disk and a new, empty 500MiB disk to the already migrated W2k VM, fdisk + format with NTFS, copy the NT 4 installation over file based (not block based!), write the boot block and be set. Doing this with an independent Windows installation should make sure that all files can be copied and there is no lock being held on any source file, preventing a copy.
A friend mentioned Clonezilla being a possible solution. My tries weren't successful because "destination to small". Clonezilla apparently works block based, and not file based.
What would a working migration path from VMware ESXi to Qemu be?