Multi-boot Using Grub/Linux

This is just an HTML wrapper around my text notes for the presentation, until I get a chance to html-ize them.
=========================== Multi-boot Using Grub Linux =========================== ===== Part 1. Using a Dedicated Grub Linux Partition ===== ----- What: ----- A single Linux partition dedicated solely to controlling the GRUB configuration that allows a multi-boot environment. ---- Why: ---- To create a stable multi-boot system/environment that can be easily modified, repaired or restored. ---- How: ---- Goal -- Install a minimal Debian Linux to a dedicated partition (no swap) on an empty hard disk connected as master to the primary IDE interface, and to install GRUB as a master boot loader. This partition will then be used to manage the boot loader. Minimal Debian Linux requires at least a 110Mb partition, and recommends 250Mb for a minimal console-based system. I recommend using a 250Mb partition. If your machine has an ethernet card that is automatically recognized by Debian, you have two options for the network configuration: 1) DHCP. By far the easiest, if you already have a DHCP server running on your LAN. 2) Static IP. Boot from the Debian install CDROM using: linux netcfg/disable_dhcp=true If you have an automatically recognized NIC, but are not connected to a network, you should DEFINITELY disable DHCP, unless you are prepared to wait while the install times out attempting DHCP queries!!! I've as of yet have not discovered a way to disable networking entirely from a Debian install if a NIC is recognized. THE PROCESS: After booting from the install CD, if Debian automatically recognizes your NIC, you'll need to go through the network configuration process. Next, you'll need to partition the hard disk: - Choose the "Manually edit partition table" option. - Choose the correct hard disk to partition (IDE0 master (hda)...) and create a new empty partition table on the device. - Choose the FREE SPACE on the new partition table and create a new partition. - Make the partition as close to 250Mb as possible, (but larger if necessary), as a Primary partition at the beginning of available space. - The partition should be configured as: Use as: Ext3 journaling file system Mount point: / Mount options: defaults Label: GrubLinux Reserved blocks: 0% Typical usage: standard Bootable flag: off Size: 250.0 MB (260 MB for demo) - Choose "Done setting up the partition" - Choose "Finish partitioning and write changes to disk" - Confirm formatting of the filesystem The installer will then go on to install the Debian base system. (9 Minutes) When you get to the screen asking if you want to "Install the GRUB boot loader to the master boot record?", the answer is YES!. Upon rebooting the newly installed Debian base system, you are asked to configure the base system: - Set the system timezone (For Demo use Hardware Clock GMT, US/Eastern) - Set the root password (For Demo use nonesuch) - When asked to create a user account, CANCEL - At the "base system configuration menu" - Skip down to "Configure apt" - For demo, choose cdrom (scan disks 1 - 3), no other apt source, do NOT use security updates from - Skip select and install packages - Configure MTA: no split configuration, local delivery only, real-root - Finish configuring the base system - OK! Now we make a rescue boot floppy, and a backup copy of our hard disk's MBR (Master Boot Record): # fdformat /dev/fd0h1440 # mke2fs /dev/fd0 # mount /media/floppy # mkdir -p /media/floppy/boot/grub # cp /boot/grub/stage[12] /media/floppy/boot/grub # cp /boot/grub/menu.lst /media/floppy/boot/grub # grub --batch --device-map=/dev/null grub> device (fd0) /dev/fd0 grub> root (fd0) grub> setup (fd0) grub> quit (For demo edit /media/floppy/boot/grub/menu.lst to show booting from floppy works!!!) # dd if=/dev/hda of=/media/floppy/MBR-`date "+%Y%m%d-%H%M%S"`.bin bs=512 count=1 # sync; sync; umount /media/floppy NOTE: MBR backup copies should be done prior to (and after) modifying the partition table or installing another OS. Next, we install our preferred editor(s) and tools, ie.: # aptitude install less (disk 1) # aptitude install mc (disk 3) # aptitude install joe (disk 1) And finally, we test our boot floppy. ---------------------- Recommended Practices: ---------------------- 1) Remove extraneous comments from GrubLinux:/boot/grub/menu.lst. (Or at least move them to the bottom of the file). 2) Add comments near the top of GrubLinux:/boot/grub/menu.lst that list the system's hard drive(s) partition layout(s), ie: hda1 (hd0,0): GrubLinux hda2 (hd0,1): Shared Linux Swap hda3 (hd0,2): Debian Linux (Main System) hda4 (hd0,3): Extended Partition hda5 (hd0,4): Shared Linux ext3 (ie. /home/shared/...) hda6 (hd0,5): SuSE Linux (Test System) hda7 (hd0,6): FreeBSD hda8 (hd0,7): BeOS hdb1 (hd1,0): Microsoft DOS hdb2 (hd1,1): Microsoft Win2k hdb3 (hd1,2): OpenBSD 3) Disable splashscreen images (They make life pretty, but add to potential risk of problems configuring and trouble-shooting GRUB. ------------------ Other Useful Info: ------------------ GRUB Website (Download & Documentation):

GRUB Examples:

===== Part 2. Project: GrubLinux ===== ------------ Project Goal ------------ To create a minimalist Linux distribution (based on Debian) that can reside on a rescue/install cdrom or a single small (<100Mb) hard disk partition. The purpose of the distribution is to install and manage and rescue a multi-boot system using GRUB as the boot loader. ------------- Needed People ------------- Developers and Beta-Testers who have/need a multi-boot environment, and who are willing to help develop and or test the distro, as well as those who wish to discuss needs and make suggestions for such a distro. Interested parties should contact me using the info at this URL: --------------- Needed Software --------------- Basic OS (Linux/Busybox), bootable from cdrom, runs from ramdisk, in a minimal memory environment (32Mb of memory or better) Grub + Utilities Assorted Editors (nvi, jove, joe, nano, +others?) Disk Partition Utilities Filesystem Utilities ([ext2/3, vfat]: mkfs, format, mformat, etc) Menu Software (Shell Scripts? Perl Scripts?, dialog?) Custom Installation/Configuration Software Network Communication/Copy Software (telnet, ssh/scp/sftp, ftp, tftp, wget, lynx)