Windows Bluescreen: 0x0000007B INACCESSIBLE_BOOT_DEVICE

After my yesterdays blog entry Edit Windows Registry from Linux I could see the error windows showed me in a bluescreen: 0x0000007B INACCESSIBLE_BOOT_DEVICE.

This was after I changed the motherboard and the CPU. My first thought was ‘Oh no, I’ll have to reinstall it’ - but it went all good.

Anmerkung

If you do the things described here you are at your own risk - it could damage your system permanently. If you decide to do it anyway, please use copy & paste to not miss anything.

On notice at first: your motherboard needs to support a normal IDE mode - we just reset the normal IDE drivers so Windows can boot and you can later reinstall some S-ATA drivers.

So lets start, first you need to boot some Linux which is able to write NTFS partitions and has the tools chntpw and cabextract (I had a multiboot with Ubuntu, so it was no problem).

First, lets mount the NTFS partition (we assume its the first partition on the first harddisk):

mkdir /mnt/windows
mount /dev/sda1 /mnt/windows
cd /mnt/windows

Next we need to go to the Driver Cache and extract standard IDE drivers from some cabinet files:

cd `ls | grep -w -i windows`
cd "`ls | grep -w -i "driver cache"`"
cd `ls | grep -w -i i386`

These ls ... | grep ... things are necessary, because the case of the directory name can differ - so we workaround this.

The knowledge base article from Microsoft is a bit outdated, because the get all needed files from driver.cab, but in my case Service Pack 2 was installed and the files were in a slightly different location: sp2.cab.

So to be sure to extract all files (even with Service Pack 3), do the following extractions:

DEST="../../`ls ../../ | grep -w -i system32`"
cabextract -d $DEST -F atapi.sys driver.cab sp2.cab sp3.cab
cabextract -d $DEST -F Intelide.sys driver.cab sp2.cab sp3.cab
cabextract -d $DEST -F Pciide.sys driver.cab sp2.cab sp3.cab
cabextract -d $DEST -F Pciidex.sys driver.cab sp2.cab sp3.cab

Last step is updating the registry. Unfortunately its not possible with chntpw to import reg-Files - but to not enter all registry keys by hand, I wrote a chntpw-script to set the necessary values. You can download it here: chntpw-mergeide script.

To apply it, save the script on your desktop and do the following steps:

cd $DEST
cd `ls | grep -w -i config`
chntpw -u Administrator system < ~/Desktop/mergeide.chntpw

Thats all, you can now unmount the windows partition and reboot. Make sure your BIOS is set to standard IDE emulation.

cd ~
umount /mnt/windows

Links I used: