This is an outline for a talk given on December 9, 1999, at the San Gabriel Valley Linux Users' Group Meeting. Additional notes have been added since then regarding writing bootable CD's and using initial ramdisks.
The normal way to make a boot diskette set is to use the facilities supplied with the RedHat, SuSE, etc. distribution you have installed. Read the manual, insert the diskette(s) and follow directions. For many people, this is adequate.
For the inquiring mind or power user, that procedure is inadequate. It shields the user from really understanding what is on the diskettes and how they work. The aim here is to explain the boot process and to walk you through rolling your own boot diskettes. In the long run, understanding how something works often takes less time and is less error-prone than blindly following a procedure. This description, however, is no substitute for reading and understanding the relevant ample documentation, but should make that task easier.
Craig Van Degrift / craig@yosemitefoothills.com / content last revised February 27, 2000This works because the kernel image is produced with a boot loader as its first 512 bytes followed by 4 kB of setup code.
The "boot" diskette loads the kernel with load_ramdisk=1, prompt_ramdisk=1 and root=/dev/fd0 parameters. The kernel initializes itself and then mounts a ramdisk root filesystem in /dev/ram0 that has been filled with the decompressed contents of the "root" diskette.
Two tricks needed for this are:
In this case, the initial ramdisk fills itself out by copying additional files from the CD-ROM and becomes the final root filesystem.
Here, the initial ramdisk is only temporarily mounted as root. It examines the system and synthesizes the final fixed disk filesystem which ultimately becomes the root filesystem.
Last updated: April 8, 2006
Contact Craig Van Degrift if you have problems or questions with this web site.