Going in addition to my previous blog post of installing and running Android 4.0 (Ice cream sandwich) on your x86 based system. I encountered an interesting infinite boot loader loop problem evident only if you install your Linux distribution (and GRUB) on top of a Windows 8 system using the new Windows 8 radical boot loader. This problem could be a nagging issue for users due to the annoyances caused by the Windows8 UEFI-ready new double-boot boot menu, and could be more prevalent when Windows 8 become mainstream, especially if you are setup to tri-boot Windows 8, Windows 7 and Linux on the same machine.
The cool but rather annoying thing about Windows 8 the Microsoft new boot menu which appears to act like a new boot loader interface, but is actually in-fact a mini operating system itself sitting in the MBR (root) partition which functions like a gatekeeper to boot into Windows 8, it even has it’s own optimized video and touch-friendly mouse drivers pre-loaded. I previously had Windows 8 and 7 installed on my machine. If multiple instances of Windows are detected on your partitions, it will invoke the boot menu and list all the available compatible Windows OS and reboots the PC again after your selection.
This has major issues with pre-existent boot loaders, especially if you are looking to boot into an Linux environment or similar ext3 partition using GRUB for instance. The problem here is that you will get infinite restart loops. GRUB will catch the reboot again, terminating the Windows boot cycle, bringing you back to square one into the irritating Windows 8 boot menu. It simply just makes you wonder what Microsoft is intending to get out of this, by implementing this together with their notorious Unified Extensible Firmware Interface (UEFI).
Though boot loader signing and certification for UEFI is not evident here, we could see this being a major problem given the controversy Microsoft new UEFI BIOS will have against Linux platforms (or other platforms not signed by the manufacturers to work with the UEFI BIOS), especially in securing the BIOS and making the boot procedure largely closed-source.
Anyway back, fixing the boot loader loop is relatively simple, my weapon of choice means getting rid of the Windows 8 boot loader completely and reinstalling the Windows 7 bootloader. I choose the Windows 7 bootloader over GRUB on this laptop as I primarily run Windows on this machine anyway. This can be done by invoking the power of the new Window 8 “mini boot loader OS” which surprisingly has not only a in-built recovery tool system but a full working command prompt which you can repair your boot records with.
Start off by first selecting Windows 7 as your primary operating system. Then go into Windows 8 command prompt (under advanced) and type the following code to fix your MBR using boot recovery.
Or to make it simple, simply just completely rebuild the BCD using /rebuildBCD as shown in the code field below. If you feel that you’ve corrupted any of the MBR, just pop in your Windows 8 or 7 installation DVD or bootable flash drive, boot into the “repair my computer” option and access the command prompt from there.
This will be good enough to get you out of the infinite boot loop and into your production Windows environment again. Thereafter you can use a MBR modifier such as EasyBCD (freeware) or bcdedit (if you are a purist) on the command prompt, to clean up your boot records and add the additional Linux/Android ext3 partition as a additional Linux boot record.
Here you can choose to invoke your own instance of GRUB or use EasyBCD with it’s own in-built GRUB to boot into Linux/Android. Upon restart, you will be greeted with the clean default Windows 7 boot loader with the 3 simple selections in place. Pretty, simple and no ugly Windows 8 double-restarting boot loader.
Of course you can argue that GRUB does the exact same thing as well by adding Windows 7 and 8 to menu list, but it’s just a matter of choosing your sides I guess. Remember the old intel vs AMD flamewars? Yea you should get it. 🙂