VMWare ESX 2.5 on Qemu 0.14.0

Ok this is going to sound crazy but here we go!

Today I’m migrating this old SQL 7/Windows 2000 database server from VMWare ESX 3.5 to Proxmox VE. However this server started out on a VMWare ESX 2.5 server. And in the subsequent years had been decommissioned , and never updated but rather just copied onto the 3.5 cluster as we decommissioned the 2.5 cluster. At least I figured disk space was cheap enough we should keep the old VMs that “we will never need again” because.. Eventually someone will panic, and realize they need it again.

In the first step of doing so I needed to remove the old version of VMWare tools. But the catch is, this old version requires you to have the msi package handy to remove it. Well isn’t that a fun little catch. And you’ll find all kinds of ideas on what to do now that you don’t have your original “VMWare Tools.msi”. And more importantly you’ll now realize that you should have not only saved your old ISOs of ESX, but you should have also pulled out the tools ISOs and saved them as well.

Luckily I did save the software keys thought! Although I suspect that is also somewhere on their website, but they make it a chore to find the old stuff.. At any rate with 30 minutes of searching I finally came across the last version of 2.5, ESX Server 2.5.5 Build 57619.

Now it would seem that the VMWare tools are kept in an RPM file. Which is going to be a major pita for me to extract on Windows so I decided to take the more insane route, and install ESX on Qemu!

First I create a 5GB IDE disk to boot VMWare ESX server off, and a 10GB SCSI disk for the vmfs.

qemu-img.exe create -f raw esx25.disk 5G
Formatting ‘esx25.disk’, fmt=raw size=5368709120

qemu-img.exe create -f qcow2 esx-scsi.disk 10G
Formatting ‘esx-scsi.disk’, fmt=qcow2 size=10737418240 encryption=off cluster_size=0

With the disks created, I then fire up Qemu like this:

qemu-system-x86_64 -cpu Opteron_G2 -L pc-bios -m 512 -hda esx25.disk -drive file=esx-scsi.disk,if=scsi,bus=0,unit=0 -option-rom 8xx_64.rom -net nic,model=e1000 -net user -net nic,model=e1000 -redir tcp:8088::80 -redir tcp:8022::22 -redir tcp:8433::443 -cdrom \install\esx-2.5.5-57619.iso -boot d

This pulls in a few things, the SCSI configuration along with the AMD CPU type configuration that I’ve touched on previously.

qemu 0.14.0 ESX 2.5 boot

And away we go!

ESX 2.5 install

And Qemu should easily boot the graphical installer.

ESX 2.5 system

So using my configuration, I dedicate one Ethernet card to ESX, another to the guests, and share the SCSI adapter between the console and the guests…

ESX 2.5 partitions

And when it comes to the partitioning, I simply extended the root partition to the rest of the drive, and setup vmfs2 on the SCSI disk. I’m not even thinking about clustering, I’m primarily after the extensions.

installing

Installation takes about 20 minutes. It is just the way it is. The pegasus cimom for linux takes forever, along with the provider-esx package. I have no idea why, it’s probably thousands of little files or something crazy like that. But be patient, it’ll install.

ESX 2.5 installed

And there we go, a successful installation!

Now VMWare will want to reboot, I just kill Qemu, and then launch it booting off the IDE harddisk (-boot c).

ESX 2.5 boot options

Now we get an ESX and Linux boot menu. I’m feeling brave, so let’s try to boot ESX!

vmkernel loading..

It’s loading…

Purple screen of death

And it panics. Bug 1406:2154 BugNr=34866
“measured cpu and bus speeds conflict”

Oh well. But we can boot into Linux, and scp out the extensions! Which do hide in /usr/lib/vmware/isoimages/windows.iso . So it’s not a total loss. I did notice on VMWare Fusion there was a setting for ESX, perhaps I can run ESX 2.5.5 on my Mac? Perhaps, but I’ll try that for later.

Now with the ISO finally in hand, I put it in my VM, and tell it to uninstall the extensions, I provide it with the VMWare Tools.msi and I get…

The file VMWare Tools.msi is not a valid installation package for the product VMware Tools.
Try to find the installation package ‘VMware Tools.msi’ in a folder from which you can install VMware Tools.

However the ISO did offer a chance to ‘upgrade’ my apparently older 2.5 extensions. So I did that, rebooted, then with a matching level ISO I was able to remove them. Wow was that convoluted! If anything I guess we’ve found out you want to hold onto these extension CD’s not matter what.. You never know if someone comes in with an old VM, or if you had a decommissioned VM that suddenly has to be brought back to life, it’s best to have these handy to get them back into shape. Just because your setup is all ‘complete’ it doesn’t stop people from throwing you curve balls.

Windows 2008 & Proxmox VE

Just a quick tip to people running Windows 2008 under Proxmox/VE (I know this applies to the amd64 x86_64 version probably i386 as well) sometimes when you reboot it’ll come up and crash saying that there is no available hard disks. Then it’ll go into recovery mode and … somehow claim you have no hard disks.

Turn the VM OFF.

Wait a few seconds.

Turn the VM ON.

I had this issue after installing antivirus software in the VM, but I guess there is other things that may set it off. Anyways after a shutdown, power cycle of the VM it’ll boot back up.

That’s it!

Installing Xenix on Qemu 0.14.0 part two.

Ok, we left off from part one, having prepared the hard disk. Now we are going to boot off the hard disk like this:

qemu.exe -L pc-bios -m 16 -hda xenix.disk -fda b1

 

xenix2 1 (1)Now if we go ahead and try to install normally it’ll fail like this:

xenix2 2 (1)

 

Which isn’t good at all.

xenix2 3 (2)

Instead, what we are going to do is hit the delete key breaking us to an install shell.

xenix2 4

So at the shell, we are going to fix the install/rinstall devices to force them to the 3 1/2″ high density diskette like this:

cd /dev
ln -f fd0135ds18 install
ln -f rfd0135ds18 rinstall
cd /
. /.profile

xenix2 5

Now we can proceed with the install, and since diskette B1 is already in the drive, we just hit enter. Once the B diskette is copied, the install script will prompt for a root password.

xenix2 6

Now it’s time to pick a timezone, and yes, I’m in North America.

xenix2 7

In EST.

xenix2 8

And sadly, yes we do DST. (*NOTE being this old, you can bet the offsets are all wrong for DST, I’m sure there is some deal to update the files, but I’m not sure of it off hand. But it’d be nice to update the timezone stuff for 4.2BSD as well).

xenix2 9

Let’s continue with the install.

xenix2 10

And let’s finish the operating system install.

xenix2 11

Now we’ll need the X1 diskette…

So far we’ve not needed to swap diskettes live under Qemu, but I thought I’d remind people that it’s a simple matter of hitting ctrl+alt+2 to bring up the Qemu console, then typing in:

change floppy0 x1

To verify you’ve even done this correctly, you can issue a “info block” command, and you should now see the floppy0 device referencing the x1 file.

Once you are done, you can switch back by hitting ctrl+alt+1

We are going to install one or more…

All of them as a matter of fact.

I’m going to fast forward a little here, and process all the X diskettes… there isn’t much to see here, it’ll prompt for a diskette, mount it in the qemu console, and switch back and proceed.

Yes this is a root only install, KISS (Keep it simple stupid) as they say.

Now it’ll prompt for the backup user password, then start to compress man pages. Needless to say on a fast computer this takes mere seconds… Not so back in the day on a 386!

Now it’ll prompt for the sysadm password, generate the termcap, then it’s time to swap series to the N series diskettes..

Now onward to N2.

Time to license & activate the system. Again.

Ok we are done.

And there we go, Xenix is installed!

A quick reboot, and we are ready to go!

So looking back, we’ve just done the impossible, we’ve installed Xenix on Qemu.

Installing Xenix on Qemu 0.14.0

That’s right, the impossible (or so it would have seemed years ago) is done. Qemu 0.14.0‘s floppy controller is good enough to install Xenix, although it needs a little help…

You see, booting up by default you get this:

The 'Z' boot error.

The ‘Z’ boot error.

But after going to this page, I had an idea. You see the fd(64) ties into /dev/fd0, however the specific 3 1/2″ high density diskette device id is 60.

So let’s change the default boot strings from:

fd(64)xenix root=fd(64) swap=ram(0) pipe=ram(1) swplo=0 nswap=1000 ronly

into:

fd(60)xenix root=fd(60) swap=ram(0) pipe=ram(1) swplo=0 nswap=1000 ronly

I’ve created a 200MB IDE disk, remembering that Xenix didn’t like big disks, which is why so many people failed installs on actual PC’s.

qemu-img.exe create -f qcow2 xenix.disk 200M
Formatting ‘xenix.disk’, fmt=qcow2 size=209715200 encryption=off cluster_size=0

So let’s boot up Qemu like this:

qemu.exe -L pc-bios -m 16 -hda xenix.disk -fda n1 -no-fd-bootchk

After putting in the manual flags..

After putting in the manual flags..

Looks, good, let’s boot!

Hello!

Hello!

Whats this? Are we actually going to install?! This is amazing!

So let’s go through with the install!

xenix 3

I’m going to select the American keyboard. Maybe you want something different?

xenix 4

Next we select the standard IDE controller.

xenix 5

It’s a VM so go ahead and overwrite my empty disk…

xenix 6And this shows that it sees my 200MB IDE disk correctly. I guess you could play with larger disk images and verify that these results look sane. I recall that if you pick something too big, this part will give some exotic error like this:

dparam: could not open /dev/hd00: No such device or address ??? dparam: could not open special device: No such device or address ???

dparam: could not open /dev/hd00: No such device or address ???
dparam: could not open special device: No such device or address ???

Ouch!

Cannot open /dev/rdsk/0s0!! Error: fdisk failed. !! Installtion exiting ??

Cannot open /dev/rdsk/0s0!!
Error: fdisk failed. !!
Installtion exiting ??

And blammo. This is why we use a small disk!

xenix 7

I’m not even entertaining dual booting in a VM, so we go all the way here.

xenix 8

Looks good!

xenix 9

And we quit as this is just fine.

xenix 10

Our little virtual disk won’t have any bad sectors so we quit.

xenix 11

Ok, ok, Xenix wants *SOME* tracks, so I let it have the ‘suggested’ 15. Maybe it’ll feel better about it.

xenix 12

And again I’m going with some default swap space.

xenix 13

And I’m going to use a big filesystem, no separate /u filesystem.

xenix 14

Everything is fine, no changes.

xenix 15

Then it’ll make the filesystem which will take a minute or so, then prompt for the serial number.

xenix 16

And then the activation key.

xenix 17

Now we are done with preparing the hard disk, so you can stop Qemu.

xenix 18

I’m going to continue this in part two.

Qemu 0.14 PowerPC & Debian.

So I got this request about running Mono on the PowerPC. As it stands right now I don’t have a PowerPC box in my home to test, so I thought I’d turn to Qemu & Debian.

Qemu 0.14.0 PowerPC Debian boot

Qemu 0.14.0 PowerPC Debian boot

And yes, it surprisingly boots!

I opted for the network install, as I didn’t even know if it would work. But not only did the 32bit version of Linux for the PPC boot up, but the 64bit did as well! The flags were a little involved to get going, but it went something like this for the 32bit version:

qemu-system-ppc.exe -m 512 -boot d -hda debian-ppc.qcow2 -L pc-bios -M mac99 -net nic,model=pcnet -net user -cdrom debian-6.0.1a-powerpc-netinst.iso -boot d

And for the 64bit version:

qemu-system-ppc64.exe -L pc-bios -m 512 -hda ppc64.qcow2 -net nic,model=pcnet -net user -cdrom debian-6.0.1a-powerpc-netinst.iso -boot d

And then it’s a matter of waiting… Maybe I should have just torrented the install DVDs or something.. 😐

Qemu 0.14.0 PowerPC Debian install 33%

Qemu 0.14.0 PowerPC Debian install 33%

But booting from the hard disk produces a:

openbios panic: Unexpected exception 704

So close. Perhaps the macintosh machine type I select means the boot type isn’t PReP like for OpenBIOS to find?

I’ve also been told you can find various pre-built images here.

Programming with paintbrush.

(click to see it in action!)

Well you see, everything you type is stored in binary, right? And what we see depends on how programs interpret the binary stream. So sure it’s got a BMP header, the data payload can easily contain… text! It’s a real simple version of Steganography, mixed in with some c++.

Ok, it’s not emulation but it’s very cool!

386BSD 0.1 running on a 386sx

Looking around, I found this blog, which kind of reads under google translate where someone went ahead and booted up 386BSD 0.1 on his 386sx laptop. Sadly he doesn’t have a 80387sx so things like PS explode as it has a %f in the code…

Oh well it’s kind of fun to see things go round and round.

—-update…

I should mention I was thinking of 0.0 that didn’t include the floating point support.. Also “the fuck it crashes” is as good as any other google xlate disaster… 🙂

Win32s version tour…

Well I’ve managed to track down quite a few versions of Win32s from my various compiler CD’s So I figured it’d be somewhat interesting to run down a ‘tour’ of some of the significant versions starting with the first.

Now Microsoft Knowledge base article, KB121091 tells you which version of the win32s subsystem is installed by checking the win32s.ini or the version stamp of the WIN32S16.DLL file. Which for the most part is pretty simple. However the first version of Win32s that I could find doesn’t include either.

Win32s from October 1992.

I got this from the Windows NT October 1992 Win32 SDK. Keeping in mind that Windows 3.1 shipped in April of 1992 it’s kind of note worthy that already in October there is already a working win32s upgrade for Windows. I’d describe this release a a ‘core’ only version as all the win32s programs I have failed to run on this version. Mostly because this version lacks WINMM.DLL (the Multimedia library from NT), although the October 1992 Windows NT beta does include this dll, along with soundblaster/AdLib support!

Windows 3.1 - win32s 1992 running nt october 1992 appletts

Windows 3.1 – win32s 1992 running NT October 1992 applets

I was able to get a few of theapplets from Windows NT October 1992 running on this version of Win32s by simply expanding and copying them over.. The font selection for the digital clock was messed up, but the analog version worked fine. As you can see I got clock, freecell, notepad, solitaire and winver running. Needless to say the build 34326 is totally incorrect.

For anyone that wants to play with it, the 1992 version of Win32s is available here.

The next, and final beta from March of 1993. This one does identify itself as being build 61, which is not on the list.

Windows-3.1-win32s-March-1993-running-nt-october-1992-appletts

Windows 3.1 win32s from March 1993 running NT October 1992 applets

It’s compatibility is about par with the 1992 version, but the winver reports Windows NT version 63.10 … I’ve made it available here.

I was unable to find any 1.0 versions of Win32s. Googling around, it would appear that MathCad 4.0 shipped with the 1.0 runtime. If anyone has Mathcad 4.0 I’d love a copy of it’s Win32s 1.0!

From the same InfoWorld article, 1.1 shipped the same time as Windows NT 3.1, and 1.0 was another ‘pre-release’. But I do have to say that 1.1 includes quite a number of great utilities, and tools, unlike the other development versions.

Win32s 1.1

Win32s 1.1

Win32s 1.1 dev features

Win32s 1.1 dev features.

That’s right, this developer version includes the CLI Visual C++ compiler (Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 8.00), along with a profiler, and codeview debugger! Also included is a demo version of the Pharlap TNT Dos Extender, which is restricted to no user DLL’s and 2MB of RAM. Although if anyone really wants a kick ass Dos Extender, use the excellent, and FREE HX Dos Extender

Once WinG is installed, Lemmings will run on 1.1, while WinDoom fails because the procedure CreateDIBSection does not exist in this version of Win32s. Which really isn’t that surprising as version 1.1 is at parity with Windows NT 3.1, and that call didn’t get implemented until Windows NT 3.5 . Another fun thing is that because of the segmentation in Windows 3.1 it seems that a lot of stack ‘issues’ and other memory collisions are found much easier under Win32s then under Windows NT (and it’s siblings). At any rate, you can find this version of Win32s here.

Next is version 1.20 which includes support for OLE 2.0 . This brings Win32s up to the level of Windows NT 3.5 . And it allows more NT applications to run on Windows 3.1, including Word 6.0 for Windows NT. The development copy of Win32s 1.20 can be found here, along with the retail version here.

The developers version of 1.25 is on the Visual C++ 2.2 disc, but it lacks dev tools and debuggers from 1.10!  The retail copy of 1.25 with OLE2 support. There apparently was some major bugs with 1.25, and there is also the all important 1.25a update, which I’ve been able to track down both the retail and the retail + OLE2 versions. I don’t have any development versions of 1.25/1.25a so no debug symbols.

And finally I was able to track down Win32s 1.30a both retail OLE 2 & the development version, along with the final version of Win32s 1.30c, development and retail OLE 2.0.

Win32s 1.30 included a Windows 95 compatible help engine. I would imagine it included some level of compatibility for Windows 95 applications too.

Of all the versions, I’ve found that 1.25a is the most well behaved, but at the same time, I’m lacking the debug build of it… I should also point out gabby.de has a great info page on various applications that’ll run on Win32s.

** As a note from the future it turns out that 1.30c build 172 can play nicely under Qemu, it turns out to need a fix, from Roy as mentioned down below.  “I can patch all 1.30.xxx versions by replacing “66 83 EF 04 E3 3B” with “66 83 EF 04 EB 3B” in win32s16.dll“.  Super thanks for that!  I mirrored the fix here.

Office 4.2 for Windows NT

At some time during the whole Windows NT vs OS/2 thing in the workplace, one of the funny things is that we all had to use Win16 versions of office, which I think we all agreed kind of sucked. Even at the time I thought it was rather sad that here is Microsoft pushing this new and exciting operating system, and the only applications that are available is a program to talk to mainframes (SNA Server), and a database (SQL Server). Oh sure there was MSMail, but there was no Word & Excel that the world was rapidly moving to, away from WordPerfect & 123.

So was I ever surprised to find out that there was a version of Microsoft Office for NT, and it at least ran on both i386 & Dec Alpha. The box claims that the PowerPC and MIPS versions will be along, but I don’t know if they ever shipped. But at the same time, it’d be hard to be touting these ‘advanced’ RISC CPU’s and all their glory, but when it comes to day to day work, they are running Word/Excel in emulation. I have the box with the coupon to redeem but I suspect MS would just laugh if I called them up asking for Word/Excel for the MIPS so I can run it on Qemu…. But I digress.

Naturally because of the day & age, the requirements are kind of laughable, but it was targeted towards Windows NT 3.5, with:

  • Microsoft Windows NT(tm) operating system 3.5 or later
  • 486 or higher
  • 16MB of memory
  • 59MB of disk space (minimum) 84MB maximum

So playing around with Win32s, I figured if i were to install say word into a VM, then xcopy it out, and try to run it, would it work? Win32s 1.10 wouldn’t run as this version didn’t include the new OLE 2.0 stuff… Which is why I suspect it won’t run on NT 3.1. Win32s 1.30c crashed and burnt in the worst way possible. Even Lemmings died on this version. damn.

But Win32s 1.25 actually ran it, along with Lemmings & Doom!

Word for NT on Windows 3.1

I can’t say it’s terribly useful, but considering how flakey Word 6.0 was on Windows 3.1, hell back in the day it’d been really nice to have a Win32 version.

Now I guess I ought to dig thru my stuff and see how many versions of both retail & debug Win32s I can find.

Lemmings demo for Win32s

Lemmings on Windows Vista

Lemmings on Windows Vista

While digging around I came across this demo of Lemmings for WinG/Win32s. And what’s great is that it runs on Windows 7 x86_64! Pretty snazzy!

The game play is still there, but the ‘speed up’ stuff is instant in the world of Ghz CPUs.

Oh well, it’s worth having some fun with. Here is the download.

I just remember this game when it was an Amiga thing…