Tuesday July 22
20:39
Bootcamp Just Works?
My Mac has been pissing me off lately. In Mac OS when I put the display to sleep, it has an irritating habit of waking again 10 seconds later. When I boot into Windows, the display never sleeps - it just goes to screensaver and stays there. It has been infuriating the hell out of me because unlike a laptop, if an iMac screen decides it is “on”, there is nothing you can do - no lid that you can close to say “no, you’re off buddy”.
Last night I was in Windows via Bootcamp and I couldn’t get the display to sleep. I ended up having to sleep the whole computer - something which I never do (because usually I have things running in the background). Something didn’t go right though, because this morning the computer was wide awake - and then when I rebooted to Mac OS and then later back to Windows, I received this error:
Windows could not start because the following file is missing or corrupt:
<Windows root>\system32\hal.dll.
F*ck.
Couldn’t get into Windows via Bootcamp or VMWare Fusion. Reading around, missing hal.dll seemed a problem for Parallels, but I couldnt find anything related to sleep or bootcamp or VMWare Fusion.
Many results in Google basically said “I tried for hours to fix this and couldn’t - eventually had to reinstall XP”, so I wasn’t expecting to be able to solve this easily.. but thankfully it wasn’t that tricky. Hopefully these steps will be useful to other who have the hal.dll problem in bootcamp.
The problem basically came down to BOOT.INI being missing. When that happens, Windows defaults to WINNT for the Windows installation. My Windows installation (XP Pro SP2) is under the WINDOWS directory, so it couldn’t find hal.dll.
I fixed it by doing this to recreate the BOOT.INI file:
1. Put Windows XP install DVD in the Mac
2. Reboot and hold down the Option key, and then select the Windows DVD
3. Go into the recovery option
4. When the command prompt eventually appears, enter: bootcfg /Rebuild
One Windows installation was found and a new boot.ini file created. After reboot, Windows started normally.
The new boot.ini file contains this:
[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS=”XP Bootcamp”
I suspect simply creating a text file with that in it and placing it in the C drive would have had the same effect - but before following steps 1-4 above, I didn’t know what should be in the BOOT.INI file, so that wasn’t an option! I’m definitely keeping a copy of BOOT.INI handy in case this happens again, then hopefully recovery will be as simple as copying the file in place.
I have to wonder though - why did BOOT.INI disappear in the first place? Is it because I put Windows to sleep under bootcamp?