Making a GRUB boot floppy
GRUB (GRand Unified Bootloader) is the boot manager installed by default in recent versions of Ubuntu Linux. It is an effort by the GNU project to provide a boot-loader that supports the greatest number of operating systems. This document explains how to make a boot floppy that can either boot an installed operating system or present you with a Grub command shell so that you can enter commands directly. It assumes that you are making the diskette on an Ubuntu Linux box.
1. Obtain root privileges.
2. Format the floppy with the ext2 file-system:
3. Mount the floppy and copy the files that Grub Legacy needs to make it bootable:
mount /dev/fd0 /media/floppy mkdir /media/floppy/boot mkdir /media/floppy/boot/grub cd /boot/grub cp stage1 stage2 /media/floppy/boot/grub
If you want to boot the operating system already installed on the machine you are making the floppy from, also copy /boot/grub/menu.lst and /boot/grub/device.map to the corresponding directories on the floppy.
4. Unmount the floppy umount /dev/fd0, then start Grub in interactive mode by typing grub. You will see the Grub command prompt grub >. Enter these commands:
device (fd0) /dev/fd0 root (fd0) setup (fd0) quit
5. At this point, you have a bootable floppy. If you added the extra files mentioned above, you should get a standard Grub screen when you boot from it, just as if you had booted from the hard drive.
6. If you want to be extra cautious, you can save a copy of the current machine's master boot record to a file on the floppy. The following example assumes you booted from the floppy, mounted the floppy and the master boot record is on device sda; the file containing the boot record is named boot.mbr.
dd if=/dev/sda of=/media/floppy/boot.mbr bs=512 count=1
To restore it, you would just reverse the parameters of the dd command:
dd if=/media/floppy/boot.mbr of=/dev/hda bs=512 count=1
Boot a floppy image without a floppy drive
Some computers don't have a floppy drive and can't boot from a Cd. One way of getting the Cd to boot is from a boot-loader floppy image. You'll need the memdisk file from the syslinux package. To get it run
sudo apt-get install syslinux
Copy the memdisk file to the grub folder
sudo cp /usr/lib/syslinux/memdisk /boot/grub/
There is a floppy image on the *ubuntu CD that can be used if you don't feel like making one. Mount the Cd and copy it to the grub folder as well.
sudo cp /<cd_mountpoint>/install/sbm.bin /boot/grub/
Next you have to make some changes to /boot/grub/menu.lst. Open it as root and add
title Floppy Image kernel /boot/grub/memdisk initrd /boot/grub/sbm.bin
above "title Ubuntu x.xx, memtest86+". Save the changes. Now you should be able to boot the floppy image without a floppy drive and boot from the Cd.