Installing Windows on a logical partition

From Sousuke.org

Jump to: navigation, search

Contents

Installing Windows on a logical partition

Some people - me included - still feel the urge to install Windows on their PC, as some smart-ass people develop Software exclusively for Windows, ignoring the Linux community. (Same applies for drivers!)

Unfortunately there is one restriction. If you've already set up your system with Linux and are just happy with it since years, you'll encounter one problem: Windows needs a primary partition.

Well, I've should have known, that this task would be such a PITA, so I could reserve a little space on the primary space - just for Windows.

Too bad, that I'm not willing to move all my partitions, just to sacrifice one figgin' big primary partition for Windows. Why can't it just live in one of those nice logical partitions?

Well, Windows can live in a logical partition - that's for sure! Here I'll explain how it's done.

If there are any questions, drop a mail to: hl.chau<nospam><at><nospam>gmx.net (Remove <nospam>, replace <at> with "@")


Notes:

  • I will not explain, how to create, delete, resize or move partitions. If you need help on these topics, please refer to the man pages, search for other howtos or ask some experts.
  • Also there will be no instructions about how to use an hex editor.
  • I assume you have enough knowledge about partitioning, numbering scemes, installing LILO/GRUB, etc. and that you are able to change the partition numbers according to your system setup
  • Please make a full backup of your harddisk, or at least backup your most valuable data!
  • I cannot be held responsible for any damages, caused directly or indirectly by this document. Use it at your own risk!

Workaround

Windows does run on a logical partition. But it still needs a primary partition to boot from. Typically these files reside in that partition:

  • boot.ini
  • ntdetect.com
  • ntldr

So the main idea is to split windows up into two partitions: The boot partition and the OS partition.

HowTo

There are two variants:

  • The first one is my "Quick'n'Dirty" version. Windows displays the boot partition as Drive "C:\", which is totally useless unter Windows. As no one would dare to touch these sensitive files. If someone still does, your geniune Microsoft OS would not boot anymore... The Windows itself resides under "D:\". Well pretty ugly if you ask me.
  • The second is the "Real Pwned Clean WOALP (Windows-on-a-Logical-Partition)" version. Windows will still run normally, but it won't expose the boot partition to the user and even think it's running on "C:\"! So there will be no sign, that Windows is actually running on a logical partition.

Preparing the partitions

My partition table looks like this:

Device       Size     Type     Mount    
/dev/hda1    64MB     ext2     /boot
/dev/hda5     1GB     swap     swap
/dev/hda6     7GB     ext3     /
/dev/hda7    30GB     ext3     /mnt/media
/dev/hda8    10GB     ext3     /mnt/data
/dev/hda9     6GB     ext3     /mnt/dev
/dev/hda10   45GB     ext3     /mnt/work
-           ~20GB     -        Available space
  • You'll have to reduce either the boot or swap partition, in order to create a new primary partition for windows to boot (here: /dev/hda2). Remember, 8MB are already enough for Windows. In fact, the files only need about 350KB! It doesn't matter whether you use FAT or NTFS.
  • Set the boot/active flag on this partition.
  • For Windows itself, create another partition in the logical space. (here: /dev/hda11)

The modified partitiontable should look like this:

Device       Size     Type     Mount    
/dev/hda1    56MB     ext2     /boot
/dev/hda2     8MB     vfat     /mnt/winboot
...
/dev/hda11   10GB     vfat     /mnt/winxp

Ok, now everything's prepared for the Windows installation.

Note: But don't forget to create a GRUB floppy or burn a Linux rescue/live CD, as the Windows installer will overwrite your MBR with their geniune MBR!

Preparing your bootloader

Just add a new entry into your boot table pointing to the Windows boot partition. Here for example add these lines into GRUB:

title           Windows XP
rootnoverify    (hd0,1)
chainloader     +1
boot

That does the trick...

Installing Windows XP

Next step would be installing Windows XP onto the logical partition. After the first installation process, the installer reboots your PC.

Reinstall GRUB

Don't let your computer boot the newly-installed bare Windows system. Put in your GRUB floppy or rescue CD, in order to boot your Linux. There reinstall your old MBR or rerun your bootloader installer.

Too bad, your new genuine MBR is lost now :(

Version 1: Quick'n'Dirty

Restart your system, and boot your Windows partition. Let the installer finish it's work and that's it! Everything's done. :)

Version 2: Real Pwned Clean WOALP

First, hide the windows boot partition (here: /dev/hda2). If you like, select any other partiton as boot/active partition. Then mount your Windows OS partition, and edit the Windows registry manually. This step is needed, so that you can change the drive letter assignments of your Windows partition. The genuine installer gave the windows partition the genuine drive letter "D:\". Well speaking about genuinity, here are the genuine instructions about the registry modification:

  • Open file "/windows/system32/config/system" with your favorite hex editor;
  • Replace every occurrence of "D:\" with "C:\". Be careful with this, the replacements should make sense! Like "D:\", "D:\Documents and Settings", etc.;
  • Swap drive letter assignment "D:" to "C:". (Look for e.g. "\DosDevices\C:", swap with "\DosDevices\D:")
  • Optionally remap other drive letters according to your preference, like remap CD/DVD-ROM from "E:\" to "D:\". But please assure, that there are no double assignments!;

Now that you've finished editing these things, unmount the partition, reboot the system, boot from the Windows partition and let it finish it's work.

And now, enjoy your genuine OS. ;)

ToDo

  • Some more explanations and data dumps (especially the registry)
  • Screenshots
Personal tools