VMware Raw Disk BSOD
Posted: November 10th, 2008 | Author: Administrator | Filed under: HTPC, Linux, Networking, Virtualization, Windows, Wireless | Tags: 0x0000007B, bluescreen, bsod, vmplayer, vmware, Windows | No Comments »Recently, I switched over to Linux as my desktop OS at work. The OS (Fedora) was installed on a dedicated drive and I kept my XP install intact on its own drive, knowing that at some point I may need to boot into Windows to run some application or test a web application in Internet Explorer.
As the weeks went by, I found that I rarely needed to boot into Windows, and, if I did, I only needed to be in the OS for just a few minutes. Rather than having to reboot each time to switch into an OS, I decided to jump into the world of virtualization.
I knew I could simply install Windows into a new disk image, but why do that when I already had a dedicated drive with Windows XP installed? Besides, if reinstalled, all my settings and drivers and programs would need to be reinstalled – no fun! So I began researching into using VMPlayer (free) with an entire disk of a pre-installed OS – and it is indeed possible.
I followed the directions step-by-step to Run Your Windows With VMware (the site requires a free registration in order to read the article – but getting your hands on Linux Mag articles is a good idea anyway) but ran into a few caveats:
VMplayer insisted it could not find the windows.vmx file.
This was resolved be ensuring that the files had the proper owner/group and permissions to read and write. Because I was logged in as root (via su) to do most of the legwork in creating the needed files, VMplayer did not have the sufficient read/write permissions. It may also be necessary to add the user to the “disk” group – for direct access to /dev/hdX or /dev/sdX. If you do add the user to the group, make sure to log out and then log back on again for the changes to take effect,
Once this was fixed, VMplayer began booting Windows XP, and the familiar logo and progress bar soon appeared. My hopes were dashed when the system suddenly “blue-screened”, which brings us to the next caveat:
0x00000007B Stop Error
After much research and wildly varying opinions on various blogs I think I may have rooted out the problem. 0x7B errors are a controller/drive error – in other words, a driver issue. You see, when you boot within a virtual environment, everything is virtualized, including hardware. So although I had the correct drivers installed for my hardware in native mode, Windows XP was running in a virtual environment with a different set of hardware. Here’s what you need to do:
1) Reboot the machine and boot into your Windows OS natively. After logging-in, you need to create a new hardware profile. Open up the control panel, select System, click the Hardware tab, and click the Hardware Profiles button. Now copy a hardware profile by selecting an existing profile and clicking the Copy button. Give your new hardware profile a name like “Virtual” or something similar.
2) Now that we have a dedicated hardware profile for our virtual environment, we need to prep the system by rebooting the machine once again, and once again boot into your Windows OS natively. However, when you boot into Windows, it should now stop and ask which hardware profile you would like to use. Select Virtual or whatever you called your new hardware profile.
3) Once the system has booted up and you have logged-in, we need to change some drivers, namely those of the IDE controllers by forcing them to be Standard Dual Channel PCI IDE Controller. Go to the control panel, select System, click the Hardware tab, and click the Device Manager button. Now, click the plus sign next to the IDE/ATAP Controllers label. A list of your controllers should now be seen. Begin by double-clicking the secondary controller and then clicking the Driver tab. Now click the Update Driver… button. Select No when asked if Windows Update can be used to find a driver for you. Select Install from a list or specific location (Advanced) and click Next. Now select Don’t search… and click Next. The following page will display drivers that are compatible for your system. You must select the Standard Dual Channel PCI IDE Controller driver and click Next. Repeat these steps for the Primary Controller as well. Usually Windows will tell you that you must reboot for the changes to take affect after you update the Primary Controller driver, be sure to agree to this but as the system reboots, select your Linux OS.
Now that a compatible set of drivers are installed, you should be able to start up VMplayer and successfully boot into your Windows OS. But remember, you must choose the Virtual hardware profile when the system boots within VMplayer and the standard hardware profile when you want to boot natively.
In the next entry, I’ll discuss how to install VMtools – a set of drivers specifically for the VMplayer/VMworkstation environment that greatly improves performance and adds some pretty cool functionality.
Leave a Reply