Booting many operating systems on one box
My main workstation PC has two physical IDE hard disks. Since one of them is about 60G (and I don’t have that many mp3s), I figured I may as well install a few different operating systems on it.
At present, that consists of Debian r3.0 (woody), Debian unstable (sid), FreeBSD 4.6, OpenBSD 3.2 and finally Debian GNU/Hurd. Phew.
Partitions
Below is the layout of partitions on the disks.
mira:~# fdisk -l /dev/hda /dev/hdb
Disk /dev/hda: 255 heads, 63 sectors, 1028 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 1 8001 83 Linux
/dev/hda2 393 1028 5108670 5 Extended
/dev/hda3 2 262 2096482+ a5 FreeBSD
/dev/hda4 263 392 1044225 a6 OpenBSD
/dev/hda5 393 963 4586526 83 Linux
/dev/hda6 964 1028 522081 82 Linux swap
Partition table entries are not in disk order
Disk /dev/hdb: 255 heads, 63 sectors, 7476 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 4 32098+ 83 Linux
/dev/hdb2 5 7476 60018840 5 Extended
/dev/hdb5 5 490 3903763+ 83 Linux
/dev/hdb6 491 612 979933+ 83 Linux
/dev/hdb7 613 734 979933+ 83 Linux
/dev/hdb8 2006 7476 43945776 83 Linux
grub
This is the grub config I use to boot them all:
title Debian Woody GNU/Linux
root (hd1,4)
kernel /boot/vmlinuz-2.4.18 root=/dev/hdb5 ro
savedefault
title Debian Sid GNU/Linux
root (hd0,4)
kernel /boot/vmlinuz-2.4.17 root=/dev/hda5 ro
savedefault
title FreeBSD 4.6
root (hd0,a)
kernel /boot/loader
savedefault
title OpenBSD 3.2
root (hd0,3)
makeactive
chainloader +1
savedefault
title Debian GNU/Hurd
root (hd1,5)
kernel /boot/gnumach.gz root=hd1s6
module /boot/serverboot.gz
savedefault
Although I wouldn’t dream of doing it unless forced at knife-point (or threatened with suspension of my beer allowance), you can also convince grub to boot windows–against its better judgement.
Installation
If I really had any clue, I would have made careful notes as this sytem came together, so I could reproduce exactly what I did. Sigh. Anyhow, it started off with just the smaller hard disk (/dev/hda) containing a single install of Debian. When I got the groovy new 60Ger and decided to go nuts, I installed Debian Woody on that, and allocated a decent chunk to my /home filesystem. I then proceeded to carve up the original disk for various BSDs and Hurds.
A reasonable amount of research in the web before I started convinced me that it would all end in disaster, and my four year old debian sid install that started life as potato would be toast… but what the eh, it’s all in the name of science. As it turned out, it was far less traumatic than I thought–my biggest heart ache was discovering the particular mysterious incantations that grub needed for each OS.
It’s probably important that the *BSDs live in primary partitions–this will somewhat limit your flexibility in having six thousand OSes on a single disk. Linux is not so particular, and hurd would probably happily live in that little mat of fluff that gathers in the cooling vents of your PC.