So I'm back after hardware upgrade and system reinstallation. What I want to write about today is my recent adventures with installing Windows. I've decided to install Windows 7 64-bit (as I believe it's already good and very promising platform which will soon become a standard) and Windows XP 32-bit (in case something I need wouldn't work in Win7, like the connection with my Mio palmtop).
I've installed Windows 7 first. While inside the installer, I've created an NTFS partition for that system, called "Win_7". Win7 created one additional 100 MB NTFS partition at the very beginning of my disk, named it "System Reserved" and didn't mount it as any drive letter. Oh well, maybe it's just needed for something...
Then I wanted to install old good Windows XP. Unfortunately WinXP SP2 setup doesn't recognize my SATA disk. I didn't want to switch it from native SATA (AHCI) to IDE emulation mode in BIOS as it degrades performance AFAIK. My motherboard manual and many other sources give a solution as a driver which has to be recorded on a... floppy disk and given to WinXP setup. And I don't even have a floppy disk drive!
Fortunately I've googled another solution. This article shows how to prepare your own "distribution" of Windows XP install CD with selected drivers and updates already integrated inside. All I had to do was to copy original install CD to my hard disk, download and unpack SATA/RAID drivers for my motherboard, install freeware nLite program and use it to burn new CD. It works perfectly! Now I have WinXP install CD which recognizes my SATA disk.
While installing XP, I've created another (third) NTFS partition. I named that partition "Win_XP" and set up WinXP on it. Everything went fine and the only strange thing was different naming of partitions in both systems (you can't change drive letter of the system partition).
But then I was unable to start my Win7 as WinXP installation overwritten MBR with its own, old bootloader without detecting Win7 and adding it to the boot menu. It's interesting that WinXP, although installed on the "Win_XP" partition (E:), placed its Boot.ini file on the "System Reserved" partition.
I tried to modify boot.ini to add Win7 to the menu, but nothing seemed to work. The WinXP boot manager simply isn't able to start Windows 7 and that's exactly what I've found when searching Google. Win7 has its own, new boot menu which has to be used to be able to boot this system.
To restore MBR of Windows 7:
Now, how to add WinXP entry to the Win7 boot menu? The new boot manager of Windows 7 is not such simple text file as boot.ini was, but it's a database stored in this invisible "System Reserved" partition. User can edit the menu using bcdedit command line tool (you must run Command Prompt as Administrator to use it), but there is another solution: a freeware application called EasyBCD. Not only it simplifies this task by providing GUI, but it's also able to switch MBR between XP and Vista/7 version and it also works in Windows XP! It seemed like I was almost there...
But unfortunately the Win7 boot menu sees partitions just like Win7 does, so the first partition - the one where WinXP placed its boot.ini file - was invisible to it. My solution (© Reg ;) was to run WinXP (by switching MBR to XP version), to copy files needed for booting - boot.ini, ntdetect.com, ntldr - from "System Reserved" to "Win_XP" partition and point WinXP entry in the 7 boot menu to the "Win_XP" partition (E:). Finally I could switch back to Win7 MBR with my boot menu working for both systems.