Home > linux, windows > Windows Bluescreen: 0x0000007B INACCESSIBLE_BOOT_DEVICE

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 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:

Kategorienlinux, windows Tags: ,
  1. Joelbonhomme
    27. Oktober 2009, 23:06 | #1

    This is great, I have been looking all over the internet for something like that.

  2. PeterPanic
    14. April 2010, 13:49 | #2

    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.

  3. 14. April 2010, 15:36 | #3

    @PeterPanic
    Thank you for this information.

  4. lethalwp
    13. Mai 2010, 19:24 | #4

    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

  5. restorer
    22. Mai 2010, 16:34 | #5

    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?

  6. 25. Mai 2010, 05:34 | #6

    @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.

  7. codeape
    3. November 2011, 22:14 | #7

    From the bottom of my heart: Thank you!

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

  1. 30. Juni 2010, 15:54 | #1