Adding Windows 7 to Linux Multiboot
Update: I appreciate the comments! Thank you for adding more technical information to this attempt at a simple guide to simplifying the process. A big thanks to LifeHacker.com and Tuxmachines.org for adding this article to their front page!
Word of Caution: Thanks to the anon for mentioning you might lose the ability to use BitLocker. I have not tested any of this yet, but I recommend using TrueCrypt over BitLocker. Also note a Dynamic Disk setup would probably be slaughtered. Again, I have not tested any of this, just a word of caution.
I received a question regarding my last post about Windows 7 being in my multiboot setup.
Read This Before Starting: To begin, you must have a basic understanding of GRUB and naming conventions in the GNU/Linux world. If (hd0,1) speaks your language, this will be a very easy to follow guide. If you do not know GRUB (GRand Unified Bootloader), then you are missing out on the best boot loader around. I should mention that LILO requires a bit more work and maintenance, but both possess the same functionality.
Extremely Important Notes: I recommend a novice editing the mapped devices in GRUB with the distro installation disc. It is the easiest way. If you do not have a distro disc handy, then I recommend trying to use the Super Grub Disc. With the SGD, you can restore GRUB to the MBR, but you will still have to edit mapped devices. The distro CD or DVD allows both jobs done in one step. I do not recommend editing the Windows boot.ini file.
What Happened to the GRUB: Installing Windows 7 will wipe add itself to the master boot record (casualprogrammer is right, it does not "wipe", bad choice of words) over your custom GRUB configuration. Do not panic when Windows begins booting without GRUB appearing first, this is normal. Since Windows Vista, the NTLDR has been replaced with several other components which are bootmgr.exe, Boot Manager, and winload.exe, the Operating System Loader. This might make people think that Vista or 7 are incapable of functioning under GRUB, but there are unnoticeable changes regarding the multiboot functions and performance with GRUB and bootmgr/winload.
What Happened to Windows XP: If you had Windows XP installed as your primary before, then XP will still be present. If you did not upgrade from Windows XP or format your hard drive, XP will still be present. Also if you did not install over the same partition that held XP. Windows 7 will take care of booting XP. When Windows boots, you are given a prompt and 30 seconds, by default, to choose to boot to Windows 7 or an Earlier Operating System. Choose Earlier Operating System to boot back into Windows XP.
Installing Windows 7: You can install Windows 7 on any other NTFS partition on your hard drive without worry. Seven will always be displayed and function like it is on the C: drive when running, even though it is actually installed on drive R:. This means that headaches will not result from installing it elsewhere. The installation is very straight forward, much easier than Vista, which says something because the Vista installation was a huge improvement from Windows 2000 and XP.
What Happens Next: After the installation, the computer can only boot into Windows because the newly added bootloaders are now priority after POST. No problem, but you will have to change this to get back into the capabilities of GRUB and boot back into your existing Linux installations. Pop in your tool of choice to edit the GRUB. The easiest way to do this involves your distro installation disc. Boot to the distro disc. Proceed through the language and other prompts to the Bootloader Configuration options. You may only have the choice to create a new bootloader. Select that and proceed.
Creating a New GRUB: If you only have one operating system using the Linux kernel and Windows 7 currently installed, this might be easier. Windows XP will not be in the device list and you should not be able to add Windows XP again while Seven is present. You can spot which partition holds what by the boot flags, such as "/boot". Linux should be the one with the output "/dev/hda3" or another consisting only of a forward slash (/). Add this and give it a relevant name. Windows may be installed under /dev/hda1, or (hd0,0). The title "Windows" should do, since it may be for both XP and 7.
Consummation: Apply the changes, wait for the BL update to finish, and you should be all set after the system reboots. You will be given the GRUB screen to choose between which O/S to boot. You're all done. It's been a couple of weeks, but I have experienced no issues and I am always bouncing from each operating system. I've been GRUBing it up with Windows XP Pro and Fedora for a long time without any hassles. Please respect my hard work. Pass this guide along if you've found it helpful, and feel free to leave a comment with any criticism. Enjoy.
Here are links with further information:
Arc Language Blog - Notes on dual-booting Windows 7 and Linux
APC - The definitive dual-booting guide: Windows 7, Linux, Vista and XP step-by-step