Re: kernel too big?

Trevor Johnson (trevor@blues.jpj.net)
Mon, 3 Feb 1997 20:31:55 -0801 (PST)


I tried updating Documentation/initrd.txt:

--- linux/Documentation/initrd.txt.orig Thu Apr 11 23:49:09 1996
+++ linux/Documentation/initrd.txt Mon Feb 3 20:25:55 1997
@@ -1,20 +1,17 @@
-Using the initial RAM disk (initrd)
-===================================
+Using the initial RAM disk, initrd
+==================================

-Written 1996 by Werner Almesberger <almesber@lrc.epfl.ch> and
- Hans Lermen <lermen@elserv.ffm.fgan.de>
+by Werner Almesberger <almesber@lrc.epfl.ch> and
+Hans Lermen <lermen@elserv.ffm.fgan.de>


-initrd adds the capability to load a RAM disk by the boot loader. This
-RAM disk can then be mounted as the root file system and programs can be
-run from it. Afterwards, a new root file system can be mounted from a
-different device. The previous root (from initrd) is then either moved
-to the directory /initrd or it is unmounted.
-
-initrd is mainly designed to allow system startup to occur in two phases,
-where the kernel comes up with a minimum set of compiled-in drivers, and
-where additional modules are loaded from initrd.
-
+The initrd feature allows the boot loader to load a RAM disk. This RAM
+disk can then be mounted as the root file system and programs can be run
+from it. Afterwards, a new root file system can be mounted from a
+different device. The previous root (from initrd) is then usually either
+moved to the directory /initrd or unmounted. With this technique, drivers
+for the "normal" root file system can be stored on the RAM disk as
+modules.

Operation
---------
@@ -118,8 +115,8 @@

- a floppy disk (works everywhere but it's painfully slow)
- a RAM disk (fast, but allocates physical memory)
- - a loopback device (the most elegant solution, but currently requires a
- modified mount)
+ - a loopback device (the most elegant solution, but requires a recent
+ version of mount)

We'll describe the RAM disk method:

@@ -153,9 +150,9 @@
# dd if=/dev/ram bs=1k count=1440 of=/boot/initrd
# freeramdisk /dev/ram

-Finally, you have to boot the kernel and load initrd. Currently,
-preliminary versions of LOADLIN 1.6 and LILO 18 support initrd (see
-below for where to get them). With LOADLIN, you simply execute
+Finally, you have to boot the kernel and load initrd. Current versions of
+LOADLIN and LILO support initrd (see below for where to get them). With
+LOADLIN, you simply execute

LOADLIN <kernel> initrd=<disk_image>
e.g. LOADLIN C:\LINUX\VMLINUZ initrd=C:\LINUX\INITRD
@@ -238,9 +235,9 @@
9) now the system is bootable and additional installation tasks can be
performed

-The key role of initrd here is to re-use the configuration data during
-normal system operation without requiring the use of a bloated "generic"
-kernel or re-compilation or re-linking of the kernel.
+The key role of initrd here is to reuse the configuration data during
+normal system operation without requiring the use of a bloated "generic"
+kernel or recompilation or relinking of the kernel.

A second scenario is for installations where Linux runs on systems with
different hardware configurations in a single administrative domain. In
@@ -251,15 +248,15 @@
read by it would have to be different.

A third scenario are more convenient recovery disks, because information
-like the location of the root FS partition doesn't have to be provided at
+like the location of the root partition doesn't have to be provided at
boot time, but the system loaded from initrd can use a user-friendly
dialog and it can also perform some sanity checks (or even some form of
auto-detection).

-Last not least, CDrom distributors may use it for better installation from CD,
-either using a LILO boot floppy and bootstrapping a bigger ramdisk via
+Last not least, CDROM distributors may use it for better installation from
+CD, either using a LILO boot floppy and bootstrapping a bigger ramdisk via
initrd from CD, or using LOADLIN to directly load the ramdisk from CD
-without need of floppies.
+without need of floppies.

Since initrd is a fairly generic mechanism, it is likely that additional
uses will be found.
@@ -268,18 +265,25 @@
Resources
---------

-The bzImage+initrd patch (bzImage is an extension to load kernels directly
-above 1 MB, which allows kernels sizes of up to approximately 2 MB) can be
-found at
-ftp://lrcftp.epfl.ch/pub/people/almesber/lilo/bzImage+initrd-1.3.71.patch.gz
+Beginning with Linux 1.3.73, bzImage (an extension to load kernels
+directly above 1 MB, which allows kernels up to approximately 2 MB in
+size) and initrd are included in the mainstream kernel sources. For some
+earlier kernels, patches may be found at:
+
+ftp://lrcftp.epfl.ch/pub/people/almesber/lilo/
+
and
-ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/bzImage+initrd-1.3.71.patch.gz

-A preliminary version of LOADLIN 1.6 is available on
-ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/loadlin-1.6-pre8-bin.tgz
+ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/
+
+You will also need at least LOADLIN 1.6 or LILO 18. Current versions are
+available from:
+
+ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/
+
+and

-A preliminary version of LILO 18 is available on
-ftp://lrcftp.epfl.ch/pub/people/almesber/lilo/lilo.18dev3.tar.gz
+ftp://lrcftp.epfl.ch/pub/linux/local/lilo

A very simple example for building an image for initrd, also including
the program 'freeramdisk', can be found on