There are a few restrictions in place you may want to know about:
Using the DOS partitioning schema allows only for 4 (primary) partitions. It is possible to create extended partitions but i suggest you avoid that as long as possible as it makes the setup more complex.
Windows usually uses only one partition. If you have Windows already installed there is probably one partition on the disk. Get a disk managing tool able to move and resize partitions (see below why).
For newer versions of Windows you need an "EFI" partition as first partition, which is part of the "UEFI" boot process. Originally it was intended to keep Linux out of PCs because it needs signed files and accepted signatures were only available for Microsoft. Today, though, Linux is able to create, manage and boot from UEFI-BIOSes too, so this poses no problem any more. Notice that you probably find a very small 16-bit DOS FAT (no VFAT!) partition at the beginning of your hard drive. This is the EFI partition.
Probably immediately after that is the Windows partition, nowadays probably of type NTFS. Typically it occupies the whole disk. Make room in front of it (approx. 512MB to 1GB is sufficient), then reduce it to the size you want Windows to occupy. The small room in front of the Windows partition will become the /boot
filesystem and it will be shared by all Linux installations you want to have. The reason is that Linux has a LVM (logical volume manager) but cannot boot from a volume managed by it right now. You need a separate boot volume and this is it. Since only a few small files need to reside there it can be very small. Making it bigger is possible but a waste of space. I always put it at the beginning of the disk because once it was necessary for the boot process to have its physical location before cylinder 1024. I am not sure if this restriction is still in place or not (probably not, but i have never bothered to test), but just to be sure i always put the /boot
partition at the beginning of the disk and be done. If it doesn't help it sure doesn't interfere anyways.
Next you create one LVM partition for each Linux you want to host. Note that they all share the same /boot
partition and (located there) the same GRUB configuration. In case you intend to use another boot loader: don't. GRUB (grand unified boot loader) is at the moment to most reliable, despite all its quirks.
About file systems: you create them in logical volumes inside the LVM partition. Notice that the "modern way" in Linux is to have very few file systems and lots of "virtual" filesystems which will be emulated in RAM - i.e. /tmp
. This is not a good idea at all and i suggest you create the following (real!) filesystems by hand if your installation process doesn't create them itself:
/ root
/usr installed software
/tmp temporary files
/home user files
/var logs, work files, queues, ...
/opt additional software
Having all these separate file systems makes the system more stable because a full /
or /var
actually threatens a system. It is therefore wise to isolate such possible culprits as much as possible. Linux systems usually emulate /tmp
in RAM if there is no such FS. I think this is a waste of RAM and i rather waste some disk space then valuable main memory.
I hope this helps.
bakunin