Multi-booting

Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting may require a custom boot loader.
Usage.
Multi-booting allows more than one operating system to reside on one computer; for example, if you have a primary operating system and an alternate system that you use less frequently. Another reason for multi-booting can be to investigate or test a new operating system without switching completely. Multi-booting allows a new operating system to configure all applications needed and migrate data before removing the old operating system, if desired. A possible alternative to multi-booting is virtualization, where a hypervisor is used to host one or more virtual machines running guest operating systems. Multi-booting is also useful in situations where different software require different operating systems. A multi-boot configuration allows a user to use all of this software on one computer. This is often accomplished by using a boot loader such as NTLDR, LILO, or GRUB which can boot more than one operating system. Multi-booting is also used by software developers when multiple operating systems are required for development or testing purposes. Having these systems on one machine is a way to reduce hardware costs.
Technical issues.
Number of operating systems per volume (logical drive).
In an OS/2 dual boot configuration, the C drive can contain both DOS and OS/2. The user issues the BOOT command from the DOS or OS/2 command line to do the necessary copy, move and rename operations and then reboot to the specified system on C:. Other systems provide similar mechanisms for alternate systems on the same logical drive.
Number of operating systems per storage device.
In a multi-boot computer each of the multiple operating systems can reside on its own storage device, or some storage devices might contain more than one operating system in different partitions. The boot loader in or loaded by the MBR displays a menu of logical drives and loads the selected boot loader from the PBR of that drive.
An example of a computer with one operating system per storage device is a dual-booting computer that stores Windows on one disk drive and Linux on another disk drive. In this case a multi-booting boot loader is not strictly necessary because the user can choose to enter BIOS configuration immediately after power-up and make the desired drive first in the boot-order list. However, it is more convenient to have a multi-booting boot loader on one of the drives, set BIOS once to always start booting from (i.e. load the boot loader from) that drive, and then allow the user to choose an operating system from that boot loader's menu. No special disk partitioning is necessary when each operating system has its own dedicated disk drive.
An example of a computer with multiple operating systems per storage device is a dual-booting computer that stores both Windows and Linux on the same disk drive but where the bios in the system does not let the user boot individual drives and partitions. In this case a multi-booting boot loader "is" necessary. Also, the disk must be partitioned to give each operating system its own partition on the disk drive. This is necessary because each system has its own set of files and operating instructions. Also, when a completely separate operating system is used partitions may need to be formatted to a different format. For example, if you intend to install Windows and Linux, the Windows partition will be most likely formatted in the NTFS format and Linux Partition will most likely be formatted in the ext4 file format as Windows can't run off of ext4 and Linux can't run on NTFS. However, for example if a user intends to dual boot two versions of Windows (i.e. Windows 7 and Windows Vista) or two versions of Linux (i.e. Linux Mint and Ubuntu Linux), the same file system (e.g. NTFS or ext4) can be used across both drives and partitions.
Partitioning.
The basic concept involves partitioning a disk to accommodate each planned installation, usually including separate partitions for boot, root, data storage and backups.
Windows XP and 2000.
Windows Vista's partitioners may not be compatible with XP and 2000 (see Logical disk manager#Compatibility problems). If you use Windows 2000 and XP, probably the safest approach (for disks under 2 TiB) is to use a CHS partition table alignment that is chosen by Windows XP/2000 (not Vista or Windows 7). If starting with a disk with nothing important on it, delete all partitions, unplug the disk or reboot, create at least one partition with Windows XP/2000 Disk Management or the XP/2000 installer, and format all FAT partitions. The alignment can be checked with Ranish Partition Manager: All partitions (including Extended Boot Record [EBR] extended partitions—type 05) should start at the beginning of a head, and end at the end of a cylinder. If nothing is shown in red (with error messages when you highlight them) you probably have a disk with a standard CHS partition table alignment. If you wish to edit the partition table with Linux, first run sfdisk with "--show-geometry" and "--show-pt-geometry". If these return the same geometry, it should be safe to use GParted, so long as it is set to round to cylinders, and you only add partitions to the end of the partition table. If you add a partition to the middle of the extended partition table, GParted will not put them in the order they are on the disk (so that hda7 will follow hda9 instead of hda6). The order can be fixed with a Linux fdisk advanced function. Most Linux partitioners that don't use parted, may not end EBR extended partitions (type 05) on the same sector as their logical drives. When GParted or parted edit these "nonstandard" partition tables, they will "fix" all these EBRs, so that the extended partitions end on the same sector as their logical drives. The partitioner then may show these partitions as having no "errors". This can also be checked using (for example) sfdisk -l -x -us /dev/hda.
MBR loader.
An MBR loader, such as Air-Boot, replaces the standard boot code in track 0 with code that displays a selection menu and loads the selected system. Some, e.g., Air-Boot, can be configured either automatically or by the user at boot time, rather than requiring an external configuration menu.
Linux boot loaders.
Linux loaders such as GRUB and LILO, can reside in the MBR or in a PBR. They use configuration files in /boot to control their selection menus, 
OS/2 Boot Manager.
The OS/2 Boot Manager must be installed in a primary partition. Tho OS/2 partitioning utilities can configure up to four systems in the menu, each of which can be either in a primary partition or in a logical volume within the extended logical partition. Newer loaders such as Air-Boot, GRUB and LILO offer more flexibility.
Windows and Linux.
One popular multi-boot configuration is to dual-boot Linux and Windows operating systems, each contained within its own partition. Windows does not facilitate or support multi-boot systems, other than allowing for partition-specific installations, and no choice of boot loader is offered. However, most current Linux installers accommodate dual-booting (although some knowledge of partitions is desirable). Commonly installations proceed without incident but upon restart, the boot loader will recognize only one of the two operating systems.
There are some advantages to installing a Linux boot manager/loader (usually GRUB) as the primary bootloader pointed to by the master boot record. Windows operating systems will be found by properly installed Linux bootloaders, but Windows boot managers do not recognize Linux installations (nor does Windows deal natively with Linux file systems). The MBR boot code can be backed up and restored with dd, available on System Rescue CD.
It is often recommended that Windows be installed to the first primary partition. The boot loaders of both Windows and Linux identify partitions with a number derived by counting the partitions. (Note, both Windows and Linux count the partitions according to the ordering of the partitions "in the partition table", which may be different from the order of the partitions on the disk.) Adding or deleting a partition at the end of a hard drive will have no effect on any partitions prior to it. However, if a partition is added or deleted at the beginning or middle of a hard drive, the numbering of subsequent partitions may change. If the number of the system partition changes, it requires boot loader reconfiguration in order for an operating system to boot and function properly.
Windows must be installed into a primary partition (and in older systems this must be the first partition). Linux can be installed into a partition in any position on the hard drive and can also be installed into logical partitions (within the extended partition). If Linux is installed into a logical partition within the extended partition, it is unaffected by changes in the primary partitions.
Neutral MBR.
An alternative to storing GRUB in the MBR is keeping Windows' or other generic PC boot code in the MBR, and installing GRUB or another bootloader into a primary partition other than that of Windows, thus keeping the MBR neutral. Operating system selection at boot time consequently depends on the bootloader configured within the primary partition that has the boot or "active" flag set on its partition table entry, which could be a bootloader of DOS, OS/2, eComStation, ArcaOS or BSD, in addition to Linux or Windows.
With the boot flag set on the Windows primary, the Windows Boot Manager can be used to chainload another installed bootloader by employing usage of a program like EasyBCD. This means the active partition's boot manager will first prompt the user for selection what OS to boot, then load another if necessary, such as GRUB, even a bootloader installed to a logical partition, and then GRUB will load the Linux kernel as it normally would were GRUB installed to the MBR.
The active partition could also be one that exists for no purpose other than choosing an operating system to boot, such as the Boot Manager that shipped with IBM's OS/2 Warp and its derivatives.
Apple Boot Camp.
Boot Camp allows owners of Intel-based Apple Macintosh computers to install Windows XP, Vista, 7, 8, and 10 on their Macs. The software comes bundled with Mac OS X since version 10.5 (Leopard). Previously the application was available in beta version as a download from Apple's website.
Boot Camp allows non-destructive disk partitioning and resizing of HFS+ filesystems, boot menu options, and an option to burn a CD with necessary device drivers. Since Windows XP is incompatible with Extensible Firmware Interface (the successor to legacy BIOS), the firmware on early Intel Macs needs to be updated to support BIOS emulation first. BIOS emulation is achieved with a compatibility support module (CSM). Apple does not support non-Windows partition formats or drivers so therefore configuring other operating systems is not directly possible through Boot Camp itself. However, any operating system which can utilize the BIOS emulation of Intel Macintosh can be made to work, including non-XP versions of Windows. The Ubuntu Linux distribution is particularly popular for this purpose because they provide an option to use proprietary device drivers along with open source drivers.