The Reg guide to Linux, part 2: Preparing to dual-boot
Lining it all up
Getting a copy
Decide what you're going to run. Vanilla Ubuntu 10.04 is easiest. If you can't stand the thought of window buttons on the left or you would like your media codecs pre-installed, try Mint 9 instead – it's the same underlying OS.
If you have a 64-bit PC and 4GB or more of RAM, by all means try the 64-bit edition. It's a little faster, but some drivers and plugins, notably Flash, can be problematic. If you're not sure whether your CPU is 64-bit capable – for instance if it's a late-model Pentium 4 – an easy way to find out is to try to boot 64-bit Linux. It won't work but it will print a nice little message telling you why.
If you just want the least hassle, or if you have 3GB or less RAM and don't plan to upgrade, go with the 32-bit edition. In any case, the 32-bit version can access more than three-and-a-bit gig of RAM with a workaround called PAE and you'll probably never notice the slight slowdown.
If you're feeling adventurous, you can multi-boot several distros on the same PC, including 64-bit and 32-bit side-by-side. It's safe to share the same home and swap partitions between them, but to avoid getting settings muddled, use differently-named user accounts on each one.
The easiest way is to download an ISO file from the server nearest to you and burn it to a blank CDR. (Don't burn a CD image on a DVDR – this can confuse some BIOSes. If you only have DVDRs to hand, there's a special DVD image under "Alternative downloads". It's the same OS - they just put a few more packages on the disk.) You can either download a file in the usual way – the DownThemAll extension makes it a bit quicker for Firefox users – or grab a torrent and help other users by leaving it running for a while.
If you're on XP and you don't have additional CD-burning software, don't try to use XP's built-in burning functionality to write the CD: you'll just end up with a disc with one honking great file on it, which is no use. ImgBurn is free, easy and does the job.
If you haven't got a burner or have restricted bandwidth and can't readily download 700MB of data, Canonical will even post you media free of charge. To install on a PC with no optical drive, UNetbootin will let you create a bootable USB key.
Soon enough PCs will shift to EFI firmware, like the Intel Macs, and the BIOS will shuffle into history, but for now, we have to live with the limitations of the PC BIOS from the heady days of 1981. This means no more than four primary partitions per drive and the PC looks for the boot sector on the first physical drive. The recommended config is a single primary partition on the first drive, with all other partitions as logical drives in a single extended partition. If you have multiple drives, use only logical drives on all the others. You don't have to do this but it makes life easier. Also note that you might have a hidden recovery partition that counts for another of your four primaries.
For Linux, the minimal recommended config is three partitions: one for the root filesystem (FS) ("/" in Unix shorthand), which holds the OS and apps; one for the home filesystem ("/home"), which stores your home directory; and a third, right at the end of the disk, for swap – Linux' virtual memory system. You don't need a huge amount of space – 8GB will do for the root partition, 16GB is plenty and 32 or more is almost overkill. The advantage of keeping the home directories in a separate partition is that it makes it much easier to re-install or even change to a different distro.
For the swap partition, the traditional sizing recommendation is twice physical memory. Today, there's not much point going above 2GB of swap. If you have more than 2GB of RAM, 2GB of swap will probably be plenty, but if you have disk space to burn and 12GB of RAM, feel free to assign 24GB of swap that you will never use. Once you've worked out how much space to take from Windows and how much to give to the root FS and swap, give the rest to your home FS.
Sponsored: Benefits from the lessons learned in HPC