- ldlinux, loads from the msdos disk,
- the kernel /vmlinuz and the core image /initrd.gz is loaded into memory
- the linux kernel boots up
- the filesystem is unpacked
-
linuxrc(in /initrd.gz) runs the script /hal91.ini
on the device defined in /syslinux.cfg (defualts to /dev/fd0, the floppy)
The core system, located in the file /initrd.gz on the disk contains only
the most vital files to get an linux system up running. Most probably you don't
want to change anything in here. The contents are as follows:
- /linuxrc
this shellscript is started by the kernel when the system
boots.
- /dev/ system device filesconsole, systty, tty1..8 - for the virtual consoles
- cua0, cua1 - for mouse/modem
- fd0, hda(1..4), hdb(1..4), hdc..,hdd,sda(1..4) - storage media
- ram(1..4) ramdisk
- zero, null bytebuckets
- /lib/
libraries needed by binaries
- ld-linux.so.1 - needed to load programs
- libc.so.5, libm.so.5 - standard dynamic c libraries,.. to reduce binary
sizes
- libtermcap.so.2(.0.8) - needed by bash for terminal handling
- /proc/
neccity
- /etc/
configuration directory + ld.so.cache - to make dynamic libraries
work + mtab@ - a link to /proc/mounts to keep track of mounted filesystems
- /mnt/tmp/
mountpoint for temporary use
- /bin/
binaries
- bash, @sh - my favourite shell, can't live without it
- @bunzip2, bzip2, @gunzip, gzip, tar - to handle compressed files
- cat + chmod - smaller than cp.. for initialization
- mount, umount - to be able to mount/unmount other filesystems
The /linuxrc file performs the following tasks at boot-time:
- mounts /proc/
- mounts the device defined as root by syslinux, loadlin or lilo under /mnt/tmp/
- If it finds a file /mnt/tmp/hal91.ini it duplicates it to /hal91.ini and
transfers control to it. If it is unable to mount the device, or /mnt/tmp/hal91.ini
can't be found you are dumped to an minimal bash shell.