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.

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, but in my case Service Pack 2 was installed and the files were in a slightly different location:

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
cabextract -d $DEST -F Intelide.sys
cabextract -d $DEST -F Pciide.sys
cabextract -d $DEST -F Pciidex.sys

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:

8 Kommentare

  1. Thank you this great solution. I had some problemes using ubuntu-9.10-dvd-amd64. There is a bug in chntpw, so registry modification fails. Using ubuntu-9.04-netbook-remix erverything works fine.

  2. Thank you for the very useful info! the mergeide.chntpw & copying the missing sys files saved my win2k virtual image =)

    now running under kvm instead of vmwaretools

  3. DEST=“../../`ls ../../ | grep -w -i system32`“

    But this path is somethings like /mnt/win/WINDOWS/system32 isn’t it?
    I’m working on an SP1 system… And I’ve read the ms knowledge support link which suggest destination dir: %SystemRoot%\System32\Drivers.
    Now, I have a dir /mnt/win/WINDOWS/system32/drivers that countains many „.sys“ files..
    So in my case, isn’t that directory the right DEST in which extract .cab files?

  4. @restorer
    Yes, this path is something like /mnt/win/WINDOWS/system32. This cryptic DEST is necessary because with the 3 lines before you change to „windows/driver cache/i386“. The grep command inside will find out if the system32 directory is called System32 or SYSTEM32 or anything like this, because Linux is case sensitive.

    To the „drivers“ dir – sorry, can’t check this now, but maybe you can tell me if it is necessary, then I’ll add it.

  5. From the bottom of my heart: Thank you!

    Migrating a Windows 2003 computer almost made me cry. Your article solved my problem.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.