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):
mount /dev/sda1 /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 `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.
Links I used: