or how to workaround that in a few minutes with a linux live cd
After trying to boot up a Windows XP virtual machine coming from VMWare (.vmdk) in VirtualBox I ended up with a dead loop BSOD looking like :
Actually you can run into that with physical machine as well.
The thing is VMWare and VirtualBox emulated motherboards do differ a little and Windows keep track of the mobo component<->driver link in the registry. If it doesn't find the hardware macthing entry it just crash.
Microsoft has one helpful article talking about that problem here [1].
What I simply did is boot up the virtualbox machine with BackTrack3 live cd that include ntchpw, an utility for offline registry editing. And create one missing entry. Probably other were missing but that one was critical due to the BSOD...
After BT3 being up we can just check the old motherboard conf by dumping the proper keys :
I stop here on 8086 devices, as it is Intel Vendor Id (as seen in /usr/share/pci.ids) and I know that is the mobo emulated parts on the old arch (VMWare).
Now looking at the actual arch :
Interesting line is 8086:7010. That is the Intel 82371SB PIIX3 IDE Interface, when that was a 82371AB PIIX4 for VMware.
Coming back to the registry we want to create an appropriate pci#ven8086#dev_7010 entry.
The pci#ven8086#dev_71111 key has just 2 string values : "Service" and "ClassGUID", and looking at the MS paper we see that all
Intel IDE peripherals have the same ClassGUI, and same Service name so let's just create that with chntpw :
<(...)\Control\CriticalDeviceDatabase> nk pci#ven8086#dev_7010
<(...)\Control\CriticalDeviceDatabase> cd pci#ven8086#dev_7010
<(...)\pci#ven8086#dev_7010> nv REG_SZ Service
<(...)\pci#ven8086#dev_7010> nv REG_SZ ClassGUID
<(...)\pci#ven8086#dev_7010> ev Service
intelide
<(...)\pci#ven8086#dev_7010> ev ClassGUID
4D36E96A-E325-11CE-BFC1-08002BE10318
> q
y
Now you can reboot the machine on the system disk and see what happens. If you're lucky that will goes smoothly, else you still have some troubleshooting to do, see [3] (basically what I do is shortenning part 2 of that link)
Static wiring pci_id / drivers sucks.
okay, seems that VirtualBox can handle PIIX3/4 emulation by choosing wich one in its GUI.
Easier, but one would lack the pleasure of windows registry tweaking :-P
admin - 25/03/2008 à 11:31:33
okay, seems that VirtualBox can handle PIIX3/4 emulation by choosing wich one in its GUI.
Easier, but one would lack the pleasure of windows registry tweaking :-P