Booting from USB in VMware Workstation

(note this is a guest post from Tenox)

Jason’s note on hybrid bootable ISO reminded me of a recent discovery. I have a bootable USB pen drive that I wanted to boot in VMware Workstation. Normally impossible, but there always is a work around! Turns out the problem is with the VMware built-in BIOS and more specifically lack of USB boot support. All you have to do is get a bootable media, floppy or CDROM with a boot loader that can redirect you to the USB device. I’m using Plop. Important thing to remember is to connect the USB pen drive to the virtual machine in a pass through mode. Also it’s very very slow.

Installing OS/2 2.0 on VMware ESXi 4.0

Well the good news is that it works… mostly.

The install is SUPER tedious through the console with mounting and ejecting diskettes. But I was able to do all of that from the comfort of my home on a VPS that does VMWare, enscloud.com.

The great thing about OS/2 is that IBMINT13.I13 driver. I’m pretty sure trying to find a suitably old “LSI Logic SAS” driver may be quite difficult, but as long as the adapter does good old interrupt 13 services, OS/2 can drive it.

So with OS/2 2.0 installed, then updated, and TCP/IP installed I thought things would work as there actually is e1000 drivers floating around for OS/2…. Except all I get is a trap and death.

x

Trap 0006.  Talk about a bummer.

From some minor googling around it seems it’s a known issue, with no current fix.

OS2-on-vmware

So close, and yet so far away

Oh well.

** UPDATE in all likely hood all that is required is the unofficial update XR_B108, for OS/2 2.1 which apparently works with networking on VMware Player.

Migrating Windows 2000 servers to Proxmox/VE

I’m not going to get into the a super amount of detail here… Maybe the next server I do, but not right now. The mergeide registry addition didn’t work for me. Maybe it’s because this was an old server that was converted to VMWare?

It was Windows NT 4.0 when it was physical, then it was converted to VMWare 2.x back when that was new, then upgraded to Windows 2000, then migrated across to VMWare 3.x where it sat dormant. However it now needed to be brought back to life, so the first step was to remove the old VMWare tools. And that proved to be an episode on it’s own (make copies of all your VMWare Tools ISO’s!!).

Once that was squared away, I kind of expected to load mergeide.reg, then shut down SQL Server, fire up SelfImage, and transfer away. But I was instead greeted with a BSOD, the infamous *** STOP: 0x0000007B (0x818B51B0, 0xC00000010, 0x00000000,0x00000000) INACCESSIBLE_BOOT_DEVICE

So I tried manually adding in the IDE drivers, and then using BartPE to quickly copy the c:\winnt\system32\config\system* files. Well that didn’t work either.

Much to my luck, Proxmox/VE includes SCSI emulation, because it’s based on KVM which in turn uses the hardware framework from Qemu. So it can use the sym_895a.sys driver from LSI which can be downloaded from here. So within Windows 2000, on VMWare I was able to load up the LSI/SYM scsi driver (which hides in the miniport directory on the zip file).

With the driver loaded, I shut down the VM yet again, booted back up with BartPE, and re-copied over the system registry files (c:\winnt\system32\config\system*) along with the scsi driver (c:\winnt\system32\drivers\sym_895a.sys). Now with those in place, I could then finally reset the VM on Proxmox/VE and get this….

So in the end it is finally transfered, I used the ‘pcnet’ Ethernet adapter to maintain the same NIC drivers. So far all seems pretty snappy with it.

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.

Revisiting Netware 3.12

I know this is one of the really ‘hot issue’ things out there. Sadly the thing is that Qemu ran Netware 3.12 back in the 0.90 release, but not any release since then has been able to run it.

And after testing Netware 4.1 & 4.11 they too only run acceptably under Qemu 0.90

Otherwise on the newer versions, I get nothing but disk errors, even trying to used some 3rd party updated IDE drivers, it still does not work.

It’s very perplexing, and at the same point I know it’s not a burning priority for the Qemu team….

Proxmox/VE gets much further but ultimately I couldn’t get it all working…

Apparently it’ll run on VMWare, more information here.

One thing is for sure, Netware 3.12 and it’s “patching” system is a major nightmare.

Any Qemu higher then 0.9.0 gives this error….

“Abend: A directory buffer with no dirty bits set was encountered on the dirty list”

qemu 0.14.0 netware abend

qemu 0.14.0 netware abend

While there is the ‘scsi option’ for Qemu 0.12 and higher, you’ll need a BIOS… However for 3.12 it hinges on the DOS driver, which when loaded… crashes out Qemu.

VMWare Fusion updated to 3.1.2

Honestly I didn’t really go through the release notes

I think 386 BSD 0.0 may just need to be installed on an actual disk, as me trying to duplicate the settings of that connor disk doesn’t produce a bootable disk… I thought it was in the step that disklabel doesn’t supply the bootblocks, but even doing that manually got me nothing.

I mashed in Net/2 into NetBSD 0.8 to get something that is one file away from compiling, but it’s short about 50 references from linking….

I should try it again but not using Net/2 it’s probably too old.. but I’m afraid there was way more drift between 386 BSD pl24 and Net 0.8, and certainly in those files between Net 8 & Net 9.

At least we have a nearly complete Net 9 (it’s only i386, but that’s ok.).

NetBSD 0.9

Well by some strange google search I actually found a site in Russia that had NetBSD 0.9 for the i386! Wasting no time, I mirrored the site on my VPS, then spent some time late last night trying to figure out how to boot this thing, but to no avail. Qemu, Virtual BOX and Virtual PC, could not boot the disk images correctly, while BOCHS was running into all kinds of errors related to the 0.9 kernel’s floppy, and hard disk errors with 1.0’s handling of the hard disk.

So for the heck of it, I tried it on VMWare Fusion for OS X, and lo, it booted the NetBSD 0.9 kernel floppy! So I went ahead, and made all the diskettes for the release, and went ahead and installed it on VMWare. Now while VMWare may be able to install NetBSD, it doesn’t emulate peripherals like NE2000’s so networking would involve PPP or SLIP over the COM port, which sounds like a lot of work, looking back to my adventure with SLIP a while back, that I’m not looking to redo anytime soon.

So with my installed VMDK (the disk file VMWare uses), I used the qemu utility qemu-img to convert it to a compressed qcow2 image, then booted up Qemu with the image.

And it worked!

So with that in hand, I rebuilt Qemu to remove the NE2000 on 0x300/IRQ 9, and then rebuilt the NetBSD kernel to remove all the devices I don’t need/care about (SCSI,NFS,MATH EMULATION,etc..) and reconfigured the NE2000 to be on 0x320 IRQ 10, to match Qemu, and then ran the whole thing together, configured the network, and it seemed to be working fine.

From there it was a matter of transferring the disk image back to VMWare, I copied in the source code for lynx and ircII-4.4 then transfered it back to Qemu. And yes they worked as expected!

The only thing remaining in my flight of adventure was to build f2c, and see if it’d run Dungeon.

xx

Yes it runs Dungeon!

So with all of that out of the way, for anyone that wants to run it, I’ve uploaded my work on my sourceforge project page.

Now I just need to find myself a copy of NetBSD 0.8, and spend some more time with 386 BSD 0.0 & the hard disk parameters to see if I can get that to cleanly install.

In the meantime, feel free to load up NetBSD 0.9, fire up irc and say hi.

VMWare Fusion 3.1 & KOTOR

Well let me be the first to say this is a little “modern” compared to all of my prior stuff, but anyways I’ve been enjoying life under OS X the last few days (along with crunch time @ work.. .sigh). As part of my day job I do still have to maintain some MS-DOS & Windows stuff, so while I do run Qemu under OS X, I’ve also purchased a copy of VMWare Fusion 3.1 (available online, and as a 30 day eval!). Ok so it’s $89 with the one year support, pretty snazzy stuff.

Now one thing that I find very interesting, is that unlike all the other more expensive versions of VMWare, Fusion for the MAC allows for SOME 3d apps to run!

I’m still kind of amazed at the stuff that does run and how cleanly it does so.

So I’ve installed good old Windows XP in a VM, then tried Fallout 3. No go. For the hell of it I tried Sims 3, and surprisingly it worked.. Even though it’s silly as there is an OS X version available.

So for today (I think it may be over in a few hours….) Steam is selling Star Wars Knights of the Old Republic for $2.50 USD!

Now KOTOR has been kind of finicky about what machines it’ll run on, in the past, but I have to say, much to my surprise the emulated 3d hardware ran KOTOR out of the box, without any modifications or anything!

So here it is, KOTOR in a ‘window’ on Windows XP in a Window on OS X.

KOTOR under XP VMWare Fusion in a window windowed

KOTOR under XP VMWare Fusion in a window windowed

And it’s playable at 1024×786.. and 1280×960, although at higher resolutions I’ve had issues with the mouse tracking.. .perhaps something about hardware/software mice support?

Anyways, emulation has now come to the point where 3d stuff really does run!

Qemu 0.12.5 and OS X 10.4.1

Well as the maintainer of the SIMH binaries on sourceforge, I end up needing access to a bunch of different platforms to build some prebuilt binaries for non win32 people out there.

As a direct result, I end up emulating many of the platforms, but for OS X, I have an old PowerPC mac mini that I used to build stuff, but I gave it away last year. Anyways after digging around on various networks, I came across this file, “tiger-x86.tar.bz2” So after copying it to my pc, and doing the bzip2/tar decompress shuffle, I had what looked like a VMWare config for OSX on intel.

So I figured this was as good as any test for the latest build of Qemu. After a bunch of experimenting I worked out this was the best way to start it:

qemu.exe -L pc-bios -m 512 -hda tiger-x86-flat.img -net nic,mdel=rtl8139 -net user -no-acpi -no-reboot -k en-us

Then when the bootloader comes up, I just typed in:

platform=x86pc

Qemu 0.12.5 osx 10.4.1 logon screen

OS X’s logon screen

And away it went!

Now sure it works, but it’s SLOW. VERY Slow. You can remove some TPM extension, and it’ll speed up somewhat, and at least idle like a normal process. After all, I only wanted this setup to build some binaries, not run this like a desktop OS.
To make the bootstring permanent, you just have to open up a termianal window, and edit the file:

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>

<plist version=”1.0″>

<dict>

<key>Kernel</key>

<string>mach_kernel</string>

<key>Kernel Flags</key>

<string>platform=x86pc</string>

<key>Boot Graphics</key>

<string>Yes</string>

</dict>

</plist>

 

Save it, and you’ll be good to go!

For me it was nice that the networking works, so I had an easy way to get source code into the VM, and executables out of the VM. One cool thing about this VM image is that it contains the compiler! I just wonder since it’s super old will it’s exe’s I make run on modern machines…? I don’t have any way to tell, so it may all be in vain.

Even the PPC version of IE works!

Even the PPC version of IE works!

As a test for the heck of it, I downloaded Internet Explorer 5.2 for the PPC version of OSX, and it runs.. It’s too slow to actually use it, although I’ve run it on real intel macs at the apple store, and it FLIES… It’s too bad they killed it IMHO I kind of liked it.

I’m not trying to advocate piracy and all that, but rather show how Qemu can help you run some VMWare disk images, and just how flexible it is.