Qemu and 64bit windows…

It’s been a while since I’ve tried to run some 64bit versions of windows so I downloaded some from MSDN, and tried to run some under the latest 0.14.0 build

First up is Windows XP x64 sp2 (en_win_xp_pro_x64_with_sp2_vl_x13-41611.iso)

I launched it like this:

qemu-system-x86_64.exe -m 1024 -hda six64.disk -L pc-bios -cdrom en_win_xp_pro_x64_with_sp2_vl_x13-41611.iso

And the bootloader loads up, but it hangs transitioning to the kernel. Nothing is logged to the serial port.

qemu 0.14.0 windows xp sp6 x64

Next up is Windows 2003 server, with no service pack.

I’m loading up Qemu like this:

qemu-system-x86_64.exe -m 1024 -hda six64.disk -L pc-bios -cdrom \install\en_ws_2003_std_x64_vl.iso

And again being met with a hung state booting the kernel.

qemu 0.14.0 windows 2003 x64

I guess this isn’t surprising as booth 2003 & XP x86_64 both use the same kernel.

Next up, I thought I’d try a longhorn beta…

qemu-system-x86_64.exe -m 1024 -hda six64.disk -L pc-bios -cdrom longhorn-some-random-beta-x86_64.iso

qemu 0.14.0 longhorn 3016

And I get a nice black screen, again transitioning to the kernel…

So let’s try Windows 2008r2 (It’s the same thing as Windows 7).

qemu 0.14.0 windows 2008 r2 x86_64 crash

So this is different, so googling around for the Stop: 0x0000005D (0x0000000078BFBF9,0x0000000000000000,0x0000000000000000,0x0000000000000000 code, led me to some config file for the x86_64 for additional CPU types. It appears that in the arch_init.c file I modified the following line:

const char arch_config_name[] = CONFIG_QEMU_CONFDIR “/target-” TARGET_ARCH “.conf”;

Into:

const char arch_config_name[] = “./target-” TARGET_ARCH “.conf”;

So that way I could pick up the ” -cpu Nehalem ” flag. Sadly it produced…

qemu 0.14.0 windows 2008 r2 x86_64 crash nehelam

Bummer.

Meanwhile, much like Novell Netware, it really only works on Qemu 0.9.0

qemu 0.9.0 widnows xp x64 sp2 boot

qemu 0.9.0 windows 2008 r2 x86_64

But not so hot for Windows 2008 r2 (AKA Windows 7).