Sunday, March 04, 2007

Multiboot nightmare? Thy name is - Windows Vista

I write technical articles, reviews and test IT related products and gadgets on a regular basis. I had a PC that had two mammoth hard drives, and about a dozen partitions. I had installed Windows 98 (because I had an old digital pen-paintboard that only works in this OS!), Windows XP - for all kinds of Unicode support - I extensively write in Unicode Hindi - and Windows 98 does not support Unicode. I also use lot of Linux varients - most for testing Hindi interfaces and translations on them since I am also a volunteer translator of KDE / GNOME / OpenOffice. All these needs many-many partitions in my PC, and a true multi-boot environment, where I can boot in to my choice of Operating system at my will.

I was living happily till the arrival of Windows Vista. My Linux partitions were living happily with Windows partitions and booting happily with either Grub or with Lilo having their boot loader installed at the first sector of their respective partitions. Windows 98 and Windows XP too were manageable with third party boot loaders like XOSL and GAG, and I can also boot them through Linux boot loaders like Lilo or GRUB.

But, Windows Vista's boot loader is a demon that thinks there is no other OS to boot in the universe! Though it gives you option to boot in to older Windows Operating systems like Windows 98 and WindowsXP, but not other operating systems like Linux. And, to add salt to the wound, Windows Vista does not natively support third-party boot loaders like XOSL or GRUB. Also, Windows Vista's boot loader options were not editable easily.

When I installed Windows Vista for the test purpose - just to test its Indic computing capabilities, its boot loader re-writes my boot partition - the portion that contains my third party boot loader - XOSL's boot record, resulting in - I was unable to boot in to my Linux installations. Further, I had chosen drive D (as I recognize them in my old Windows) to install Windows Vista, which it labled as drive C after Windows Vista installation (without my consent)!

I tried to re-install XOSL. But the boot loader of Windows Vista gone overwritten and there is no other option but to re-install Windows Vista. I tried to repair Windows Vista boot problem through its Startup Repair option, but to no avail. Linux boot loader GRUB needs some tweaking in its configuration files manually to be able to recognize and boot Windows Vista.

Had Windows Vista boot loader may have incorporated these minor things; it may have done real great job to its users. Instead, it looks pretty obvious that it is bullying its user to forget other Operating System and just use Windows Vista!

So, if you are trying to install Windows Vista in a true multi-boot environment, be prepared for a great Multi-boot nightmare.

To use XOSL with Vista you need to restore the 4 byte disk signature at bytes 0x1b8-0x1bb of the MBR. Unfortunately the XOSL installer overwrites these - save a copy of the mbr before you install XOSL(after installing Vista) and then restore them afterwards. If you have a Linux installation or a similar live disk you can use the dd command to do both of these tasks.

I personally refuse to use new MS OS's until they have been out for a while..

To resolve you will have to see what is writing what to your MBR. Use the dd command in anyone of your linux environments of if you can't get to them - a linux live cd.

Take a 'snapshot' of your mbr with 'dd', then install vista/xosl, then take another 'snapshot' compare etc.. keep a copy of the one that works to restore later should you decide to reinstall either vista/xosl.

I assume you know how to do this, if others are reading this you can see my guide for cloning and multi-booting xp - it contains lots of examples of using the dd command and how to actually do this.

http://www.defonso.com/clone

I will probably write a guide for vista in some time. Oh I just read anonymous's comments he recommends the same - great I'm that guy..

This sounds really similar to the fix / hack you would use to modify the starting sector of an ntfs partition if you are multi-booting - that is also explained in the guide - just a little hexediting. All explained well.

I personally favor the Linux OS, over Windoze, but on many counts prefer the latter, esp. Vista. I too faced problems with my Linux boot, and ultimately solved it by installing GRUB in the first sector of Linux root and then using EasyBCD to configure the Vista boot loader.