Windows and other Microsoft technologies

From Elvanör's Technical Wiki
Jump to navigation Jump to search

This article discusses the optimal way to install Windows on a hard drive where Linux will be the main OS (of course).

Order of Installation

It is better to install on this order:

  • First partition the drive on Linux (this is cleaner). Boot on a LiveCD, then use fdisk to partition the drive. Choose the first primary partition as the Windows partition. Update: choosing first partition is not needed at all. However, first drive is important (or see below).
  • Remove all drives except the drive where you intend to install Windows. Boot the Windows install CD and install Windows. It will write (without asking permission, of course) the Windows bootloader into the Master Boot Sector of the drive. This is not a problem as we will overwrite it with GRUB which is much better.
  • If you need to install another Windows OS (on a different partition), do so now. It will update your boot.ini setting in the first Windows partition.
  • Install Linux on the remaining partitions. Then install GRUB on the MBR and use it to dual boot.

Important Notes

  • When you install Windows, be sure to install it on a system with a SINGLE hard drive, or at least with no other hard drives containing Windows. If you install it while another drive containing Windows is present, it won't write the bootloader into the partition of the newly installed Windows. Rather it will modify (without telling you anything) the configuration file (boot.ini) of where the previous bootloader is installed. You'll later encounter problems with GRUB's chain-loading (dual-booting) mechanism.
  • If you anyway made a mistake and installed Windows while another drive containing Windows was present, you can still fix the problem. Copy the files boot.ini, ntldr and ntdetect.com from the older Windows installation into the new one. These files are present on the root of the partition (although they are hidden, so you must edit settings to see them). Once they are copied, modify the file boot.ini on the new system so that it is correct.
  • On any hard drive, there can be only 4 primary partitions. Primary partitions can be used for booting; an extended partition can then contain any other number of partitions (it's in fact a placeholder). In fdisk for example, if there is an extended partition fdisk will display it overlapping with the actual partitions it contains (an extended partition is not an "actual" partition). Booting from an extended partition (in fact, a partition within an extended partition may be more correct) may be possible, but I am not sure. It may not be possible to boot directly from within GRUB into such a partition.
  • Create the primary partition under Linux, choosing NTFS as the partition type, then boot the Windows install CD-ROM and install onto that partition. As always, the less Windows does for you the better, since you do not control the process (Windows can actually create an extended partition without your knowledge!).

Tips

  • You can go to the recovery console by booting the install CD and then typing "R".
  • You can extract the file from a Windows installer by running it like that in the Windows console:
setup.exe -a -pc c:\path\to\extraction

Windows on a non-first hard drive

  • Windows does not support booting from the non first hard drive in the system. So if you install Windows on such a drive, the following manipulation will be necessary in GRUB:
title Windows XP SP2 (English)
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader  +1

This fakes the second drive as the first one. You do not need to edit boot.ini settings after you did this.

Windows Vista

  • With Windows Vista, if you somehow change your hard drive partitions, Vista will generally end up being unbootable. This can be repaired with a Vista boot CD easily though. It should not even wipe out GRUB of the MBR.