Multi-boot: Ubuntu, Slackware, Windows, openBSD

This has been pain for around two weeks (per my ignorance about openBSD).

The story began when I was entrusted a box in the lab, there are two must-install OSs: Windows XP, openBSD 4.7. As a senior of mine is working on his thesis about rendering videos over clustered boxes, he had me to install an instance of Ubuntu. And my personal boot is Slackware. :D

First, installing them. It's pretty easy, just note that openBSD and WindowsXP must boot from primary partition. This is how the partitions look (the Slakcware is on another disk)
Name Part Type FS Type Size (MB)
sdb1 Primary W95 FAT32 (LBA) 19584.40 << WindowsXP
sdb3 Primary OpenBSD 1875.37
sdb5 Logical NTFS 189535.10*
sdb6 Logical Linux ext3 27431.31 << reserved
sdb7 Logical Linux ext3 10791.57 << Ubuntu
sdb8 Logical Linux swap 838.98

sda1 Primary Linux ext3 10799.80 << Slackware
sda2 Primary Linux swap 822.53
sda3 Primary NTFS 68401.43

this is from cfdisk on Slackware

As the harddisk containing Slackware is my personal belonging, I can't install the bootloader (LILO on Slackware) on it, so it comes to Ubuntu's GRUB(2). Straight to the point, here's the menus of grub.cfg

menuentry 'Ubuntu, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set root='(hd1,7)'
search --no-floppy --fs-uuid --set 06adfcab-1496-44e9-9370-7977e166d7c8
linux /boot/vmlinuz-2.6.32-21-generic root=UUID=06adfcab-1496-44e9-9370-7977e166d7c8 ro quiet splash
initrd /boot/initrd.img-2.6.32-21-generic
}

menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,7)'
search --no-floppy --fs-uuid --set 06adfcab-1496-44e9-9370-7977e166d7c8
linux /boot/vmlinuz-2.6.32-21-generic root=UUID=06adfcab-1496-44e9-9370-7977e166d7c8 ro single
initrd /boot/initrd.img-2.6.32-21-generic
}

menuentry "Memory test (memtest86+)" {
set root='(hd1,7)'
search --no-floppy --fs-uuid --set 06adfcab-1496-44e9-9370-7977e166d7c8
linux16 /boot/memtest86+.bin
}

menuentry "Memory test (memtest86+, serial console 115200)" {
set root='(hd1,7)'
search --no-floppy --fs-uuid --set 06adfcab-1496-44e9-9370-7977e166d7c8
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}

menuentry "Slack own-compiled (on /dev/sda1)" {
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 2636da66-6dc5-4b4c-ad18-fc08cd30b761
linux /boot/bzImage root=/dev/sda1 ro vt.default_utf8=0 vga = normal
}

menuentry "Slack pre-compiled (on /dev/sda1)" {
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 2636da66-6dc5-4b4c-ad18-fc08cd30b761
linux /boot/vmlinuz root=/dev/sda1 ro vt.default_utf8=0 vga = normal
}

menuentry "OpenBSD 4.7" {
set root=(hd1,3,a)
boot OpenBSD.bin
chainloader +1
}

menuentry "Windows NT/2000/XP (loader) (on /dev/sdb1)" {
insmod fat
set root='(hd1,1)'
search --no-floppy --fs-uuid --set 944c-bc1f
drivemap -s (hd0) ${root}
chainloader +1
}


openBSD 4.7 uses its own PBR to boot from (you could fetch yourself). And note that GRUB uses its own naming convention (depending on you HDD arrangement per install time). Installing the the Linux-es :) is easy, just put the kernel in the directory visible by GRUB (mostly on /boot on it's bearer) and set the correct root partition for it, initrds are optional (see, my Slackware doesn't use on on it)

The next project is to install Rocks on the reserved space. :D

2 rants:

Unknown said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.