How to install and boot Windows on a Logical Parition

| | 3 min read
If you do a google search on this topic you will come across different posts that says how windows does not allow booting of a logical partition and why windows should be installed on a primary partition. The fact of the matter is that windows allows itself to be installed on logical partitions but it will want a primary windows partition to boot up. Recently we faced a situation where we had to make a windows installed on a logical partition boot up on its own. The customer had a windows XP installation on C drive (primary partition) and a windows 2000 installation (logical partition). He brought it in to clean up the Windows XP partition and have Ubuntu installed. We did that and installed Ubuntu on the primary partition. But then there was a problem, the Windows 2000 partition ceased to boot up. It was interesting that grub did not identify the Windows 2000 partition as a bootable partition and had not added it to the menu.lst. We had to add that entry manually.

The initial error we were getting was "NTLDR is missing, press any key to restart". First we copied the ntldr, NTDETECT.COM and boot.ini from a Windows XP system to the root of the Windows 2000 partition. Then we booted using a Windows XP cd, went into the repair mode and then ran bootcfg on the drive to fix the boot.ini and then we ran fixboot on the drive. Once this was done the chainloading worked fine and grub successfully passed the control to NTLDR which showed the Windows boot menu and F8 was working and we could see the different boot options.

This should have been fine but the windows registry was written while the drive was D drive and windows failed to boot. There were no error messages and the system just kept restarting once we selected any of the Windows Boot options. We could have fixed this error by loading the registry files on a running windows system and changing all occurrences of D: with C:. But we took the easy way out by resizing the linux partition and created a teeny weeny FAT32 primary partition. We could have stopped there but instead we set up this small partition as the windows boot partition by coping the three windows boot files - boot.ini, ntldr, NTDETECT.com and running bootcfg, fixboot on the new mini C drive we created. Once this was done the system successfully booted of the C drive, chainloaded the Windows 2000 installation on D drive.

Looking at all this pain, I wonder how easy it is to set up GNU/Linux on any partition and the ease of configuration of the boot files and their parameters. When everything works fine both Windows and GNU/Linux are comparable but when things go wrong, they both require almost similar levels of expertise to fix. I don't know who spread the myth that Windows is easier to configure. Probably those people who never had to configure anything beyond few radio buttons/check boxes or few text fields. Hard core users would find both equally good, equally involved in configuring and probably equally challenging. However being fully open GNU/Linux offers far more flexibility and control in configuration than Windows.

The following are some reference articles we used to solve our problem http://www.tinyempire.com/notes/ntldrismissing.htm http://support.microsoft.com/default.aspx?scid=kb;en-us;314058 http://mirror.href.com/thestarman/asm/mbr/bootini.htm http://www.dewassoc.com/kbase/multiboot/boot_ini.htm http://lists.supergrubdisk.org/pipermail/en/2008-April/000046.html http://www.sousuke.org/wiki/Installing_Windows_on_a_logical_partition http://www.mail-archive.com/[email protected]/msg10695.html