Booting from Grub floppy disk

HOWTO Clone Disk Images on Linux Booted from a Network
Prev |  | Next

# 5. Booting from Grub floppy disk

The next step is to make a boot floppy disk using Grub. GNU Grub is the GRand Unified Bootloader. It can handle BOOTP and TFTP, so it can boot from network.

## 5.1. Grub menu file

In the working directory create a file named `grub.conf` with the following content:

    default=0
    timeout=1
    title Clone
    	bootp
    	root (nd)
    	kernel /vmlinuz rw root=/dev/ram ramdisk_size=4096 init=/bin/clone
    	initrd /initrd.gz

In the last four lines are the Grub commands to boot from network:

- bootp, to get an IP address from the DHCP server.

- root (nd), to set the root in the network (TFTP server). An alternative TFTP server could be set before this command using the command tftpserver `<tftp server>`.

- kernel, to specify the kernel file and its parameters:

  - `rw`, to specify writable mounting of the root file system.

  - `root`, to specify where to mount the root file system (in ram memory).

  - `ramdisk_size`, to specify the ram disk size. 4096 (kbytes) is the default size but if you needed a greater image, change this parameter accordingly.

  - `init`, to specify (our script) as the first program to run in user mode (in the absence of init and sh).

- initrd to specify the file holding the image of the root file system.

## 5.2. Compiling Grub with network support

To compile Grub, first download the source tarball from the Grub web site and unpack it. Run configure specifying the menu file you just created and the network interface card model. Run make as usual.

    # tar xzf grub-0.92.tar.gz
    # cd grub-0.92
    # ./configure --enable-preset-menu=../grub.conf --enable-3c90x
    # make

Again, where you see 3c90x put the model of your network interface card. First check if it is supported by Grub.

## 5.3. Making the boot floppy disk

Once Grub is compiled, the image of the boot floppy disk is the concatenation of the files `stage1/stage1` and `stage2/stage2`. To make the floppy disk run:

    # cat stage1/stage1 stage2/stage2 | dd of=/dev/fd0

You should now have a boot floppy disk.

Prev | Home | Next
Preparing boot files |  | Running the clone script