| rootfs/dev | Description: | The /dev directory that holds all device special files required by your floppy |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/sbin | Description: | Directory for various binaries |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/sbin/init | Description: | init is the main program in any unix/linux system. It runs all other programs, keeps track of runlevels (which are irrelevant for a floppy), maintains the process tree, adopts orphan processes, etc. It shows up as process zero (0) when doing a ps. |
| Called by: | The kernel | |
| Calls: |
Generally, init runs /etc/rc.d/rc.sysinit, then the rc
scripts (normally passing a runlevel parameter...but
since runlevels are irrelevant for a floppy we skip
that part), and finally some getty processes (or for
RedHat, some mingetty processes). /etc/inittab is the configuration file for init. |
|
| Supports: | All other processes. | |
| rootfs/sbin/syslogd | Description: | The syslog daemon. It is used for logging all user messages. If you are doing remote logging, the remote syslog will listen on udp port 514. |
| Called by: | /etc/rc.d/init.d/syslog | |
| Calls: | /etc/syslog.conf is the config file for syslogd. Also depends on /etc/services if you plan to do remote logging. | |
| Supports: | ||
| rootfs/sbin/pump | Description: | This is the DHCP client that ships by default with RedHat. As of version 0.8.3-2 pump has some bugs that allow it to work correctly only on eth0. dhcpcd would be an option, but is in the range of 300k, so would consume a *lot* of space on our floppy. |
| Called by: | /etc/sysconfig/network-scripts/ifup-eth0 | |
| Calls: |
/etc/pump.conf is the config file for pump. Additionally, if the "script" directive is used in the config file, pump will call the script and pass it three parameters. These are the action (up, down, or renewal), the interface name (i.e. eth0), and the IP address (it doesn't pass the IP address if the action="down"). |
|
| Supports: | Ethernet interface(s). | |
| rootfs/sbin/route | Description: |
A program to inspect / manipulate the routing table. I'm not sure if route is really
needed once you have your floppy up and running, since ifconfig seems to set
up the basic routing information for each interface. It sure is handy, though, when
troubleshooting network problems. Note: verify whether route is needed or not...could save approx 32k of disk space. |
| Called by: | ||
| Calls: | ||
| Supports: | ifconfig? | |
| rootfs/sbin/ifconfig | Description: | A program to configure network interfaces. |
| Called by: |
Any of your network initialization scripts that don't use DHCP.
In my case these are: /etc/sysconfig/network-scripts/ifup-eth1 /etc/sysconfig/network-scripts/ifup-eth2 /etc/sysconfig/network-scripts/ifup-eth3 |
|
| Calls: | ||
| Supports: | Network interfaces. | |
| rootfs/sbin/klogd | Description: | The kernel logging daemon. klogd intercepts all kernel messages and logs them through syslogd. |
| Called by: | /etc/rc.d/init.d/syslog | |
| Calls: | ||
| Supports: | ||
| rootfs/sbin/iptables | Description: | iptables is the user-space tool for setting up ip packet filter rules. |
| Called by: | /etc/rc.d/rc.firewall | |
| Calls: | ||
| Supports: | ||
| rootfs/sbin/insmod | Description: | insmod is a utility for inserting kernel modules into the running kernel. Most linux systems use modprobe to do this, but since modprobe is huge we do it using insmod. The problem is that modprobe figures out the module dependencies for us. Since we no longer have that luxury on a floppy, you have to make sure that the modules are loaded in the correct order yourself. One way to do this is to check out the /lib/modules/$(uname -r)/modules.dep file on a system running a full copy of RedHat. This file will list each module followed by the module(s) it is dependent on. |
| Called by: | /etc/rc.d/rc.modules, /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia | |
| Calls: | Note that neither /etc/conf.modules nor /etc/modules.conf is called by insmod. Those config files are used by depmod and modprobe which are both rather large and don't fit well on a floppy. | |
| Supports: | Any programs that require kernel modules to be loaded for proper operation. In my case, this includes all of the networking programs (route, ifconfig, pump, portsentry, netstat, syslogd, and ipchains) and the pcmcia package (cardctl, cardmgr). | |
| rootfs/sbin/cardmgr | Description: | cardmgr is a program to manage the pcmcia sockets. It monitors these sockets for insertions / removals of pcmcia cards. Once a card is inserted and recognized, it loads the appropriate kernel modules for that card. It then runs the appropriate script configuration program. cardmgr expects the modules to be located in /lib/modules/$(uname -r), but has a command line option (-m) to set the module path to something else. Since I have simply dumped all necessary modules in /lib/modules, I wanted to use this option to direct cardmgr to look there for the pcmcia modules. Unfortunately, I was unable to get this to work. This is why if you look in /lib/modules, you will find a link from 2.2.16-3 to ./ and another link from pcmcia to ./ Thus, when cardmgr tries to look in /lib/modules/2.2.16-3/pcmcia, it will actually be looking in /lib/modules. Very sneaky if I do say so myself. :-) |
| Called by: | ||
| Calls: | The config file for cardmgr is /etc/pcmcia/config. When it is called, it calls /etc/pcmcia/config.opts which holds the module options for all the possible pcmcia cards. | |
| Supports: | All pcmcia devices. | |
| rootfs/bin | Description: | This directory contains many of the basic programs required by the system. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/ash | Description: | This is the shell we're using for our floppy. I was using the bash shell, but when I ported this bootdisk from the 2.2 series kernel to the 2.4 series kernel, I just didn't have enough space to keep bash. |
| Called by: | /etc/rc.d/rc.sysinit, /etc/rc.d/rc.firewall, /etc/rc.d/rc.local, /etc/rc.d/rc.modules, /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia, /etc/rc.d/init.d/syslog, /etc/pcmcia/config, /etc/pcmcia/config.opts, /etc/pcmcia/network, /etc/sysconfig/network-scripts/ifup-lo, /etc/sysconfig/network-scripts/ifup-eth0, /etc/sysconfig/network-scripts/ifup-eth1, /etc/sysconfig/network-scripts/ifup-eth2, /etc/sysconfig/network-scripts/ifup-eth3, /etc/sysconfig/network-scripts/ifcfg-lo, /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/sysconfig/network-scripts/ifcfg-eth1, /etc/sysconfig/network-scripts/ifcfg-eth2, /etc/sysconfig/network-scripts/ifcfg-eth3, /etc/sysconfig/network, /etc/sysconfig/init, /etc/sysconfig/pcmcia, and any other scripts that need run. | |
| Calls: | ||
| Supports: | ||
| rootfs/bin/sh | Description: | A link to /bin/ash. See the the entry for ash for more information. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/ls | Description: | A program to list the contents of a filesystem |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/netstat | Description: | This program shows the status of network connections. It is not needed for the function of my bootdisk, but is mighty handy for debugging. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/ping | Description: | This program is commonly used to test network connectivity. Note that you can ping by either hostname or ip address. If you cannot ping a computer by its hostname, but can ping it by the ip address, this indicates a name resolution problem. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/hostname | Description: | This program sets the hostname for the system. It's not really necessary, but it doesn't take up much space so I left it in. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/cat | Description: | This program is used to display the contents of a file on the console. It is not required for the operation of our bootdisk, but is quite handy for examining the contents of various files for troubleshooting purposes. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/bin/grep | Description: | This program is a pattern matching program. It is used by the /etc/rc.d/rc.firewall script to parse the nameserver ip address from the /etc/resolv.conf file and set up DNS forwarding rules. |
| Called by: | /etc/rc.d/rc.firewall | |
| Calls: | ||
| Supports: | ||
| rootfs/bin/sed | Description: | This program is a stream editor. It is used by the /etc/rc.d/rc.firewall script to parse the nameserver ip address from the /etc/resolv.conf file and set up DNS forwarding rules. |
| Called by: | /etc/rc.d/rc.firewall | |
| Calls: | ||
| Supports: | ||
| rootfs/bin/echo | Description: | This program will display any argument you pass it on the console. It is used with the redirection operator (>) to set a couple networking options. |
| Called by: | /etc/rc.d/rc.sysinit, /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia | |
| Calls: | ||
| Supports: | ||
| rootfs/bin/mount | Description: | This program is used to mount any filesystems. In this case, the only filesystem that needs mounted is the RAM filesystem. |
| Called by: | /etc/rc.d/rc.sysinit | |
| Calls: | /etc/fstab, /etc/mtab | |
| Supports: | ||
| rootfs/etc | Description: | This directory holds the configuration files and startup scripts. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/rc.d | Description: | This directory contains system startup scripts. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/rc.d/init.d | Description: | This directory contains scripts that are normally run when init issues a runlevel change. Since runlevels are irrelevant for this bootdisk, these files could just as well belong in /etc/rc.d, but they've been left here to comply with the RedHat system layout. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/rc.d/init.d/syslog | Description: | This script starts the kernel and system logging daemons. |
| Called by: | /etc/rc.d/rc | |
| Calls: | /etc/syslog.conf, /etc/services | |
| Supports: | ||
| rootfs/etc/rc.d/init.d/network | Description: | This script starts up networking with the exception of wireless networking which is handled by the pcmcia script. First it enables packet forwarding by poking a "1" into the /proc/sys/net/ipv4/ip_forward file. After that it loads the af_packet.o module which is needed in order for /sbin/pump to work. Then, it loads the kernel module for the type of network card I have. Finally, it runs the network start scripts. |
| Called by: | /etc/rc.d/rc | |
| Calls: | ||
| Supports: | ||
| rootfs/etc/rc.d/init.d/pcmcia | Description: | This script starts our pcmcia devices. In our case, it simply applies to the Raylink (Webgear) wireless ethernet 802.11 card. |
| Called by: | /etc/rc.d/rc | |
| Calls: | /sbin/insmod (several times), /sbin/cardmgr | |
| Supports: | ||
| rootfs/etc/rc.d/rc.sysinit | Description: | This is the first of the system scripts to be run. In our bootdisk, it doesn't do much other than mount the filesystems (/ and /proc) and set the hostname. |
| Called by: | /sbin/init | |
| Calls: | /bin/mount, /etc/sysconfig/network, /bin/echo, /bin/hostname||
| Supports: | ||
| rootfs/etc/rc.d/rc.local | Description: | This script is the last of the startup scripts to run. Currently it doesn't do anything. |
| Called by: | /etc/rc.d/rc | |
| Calls: | ||
| Supports: | ||
| rootfs/etc/rc.d/rc.firewall | Description: | This script sets up the packet filtering and nat/masquerading rules for our system. |
| Called by: | /sbin/pump | |
| Calls: | /sbin/iptables, /bin/cat, /bin/grep, /bin/sed | |
| Supports: | ||
| rootfs/etc/rc.d/rc | Description: | This script is called by /sbin/init after /etc/rc.d/rc.sysinit completes. It calls all the initialization scripts in /etc/rc.d/init.d and then /etc/rc.d/rc.modules, and lastly calls /etc/rc.d/rc.local. Generally init passes this script a parameter that corresponds to the runlevel that we want to go to, but since runlevels are irrelevant for this bootdisk, we disregard the runlevel argument. |
| Called by: | /sbin/init | |
| Calls: | /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia, /etc/rc.d/init.d/portsentry, /etc/rc.d/init.d/syslog, /etc/rc.d/rc.modules, /etc/rc.d/rc.local | |
| Supports: | ||
| rootfs/etc/rc.d/rc.modules | Description: | This script loads any additional modules that haven't already been loaded. Currently this file does nothing. |
| Called by: | /etc/rc.d/rc | |
| Calls: | ||
| Supports: | ||
| rootfs/etc/sysconfig | Description: | This directory contains various system configuration files. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/sysconfig/network-scripts | Description: | This directory contains the scripts for starting up the network interfaces. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/sysconfig/network-scripts/ifcfg-lo | Description: | This file contains configuration information for the loopback device. |
| Called by: | /etc/sysconfig/network-scripts/ifup-lo | |
| Calls: | ||
| Supports: | /etc/sysconfig/network-scripts/ifup-lo | |
| rootfs/etc/sysconfig/network-scripts/ifcfg-eth0 | Description: | This file contains configuration information for the eth0 device. |
| Called by: | /etc/sysconfig/network-scripts/ifup-eth0 | |
| Calls: | ||
| Supports: | /etc/sysconfig/network-scripts/ifup-eth0 | |
| rootfs/etc/sysconfig/network-scripts/ifcfg-eth1 | Description: | This file contains configuration information for the eth1 device. |
| Called by: | /etc/sysconfig/network-scripts/ifup-eth1 | |
| Calls: | ||
| Supports: | /etc/sysconfig/network-scripts/ifup-eth1 | |
| rootfs/etc/sysconfig/network-scripts/ifcfg-eth2 | Description: | This file contains configuration information for the eth2 device. |
| Called by: | /etc/sysconfig/network-scripts/ifup-eth2 | |
| Calls: | ||
| Supports: | /etc/sysconfig/network-scripts/ifup-eth2 | |
| rootfs/etc/sysconfig/network-scripts/ifcfg-eth3 | Description: | This file contains configuration information for the eth3 device. |
| Called by: | /etc/sysconfig/network-scripts/ifup-eth3 | |
| Calls: | ||
| Supports: | /etc/sysconfig/network-scripts/ifup-eth3 | |
| rootfs/etc/sysconfig/network-scripts/ifup-lo | Description: | This script starts and configures the loopback network interface. |
| Called by: | /etc/rc.d/init.d/network | |
| Calls: | /etc/sysconfig/network-scripts/ifcfg-lo, /sbin/ifconfig, /sbin/route | |
| Supports: | ||
| rootfs/etc/sysconfig/network-scripts/ifup-eth0 | Description: | This script starts and configures the eth0 interface. |
| Called by: | /etc/rc.d/init.d/network | |
| Calls: | /etc/sysconfig/network-scripts/ifcfg-eth0, /sbin/ifconfig | |
| Supports: | ||
| rootfs/etc/sysconfig/network-scripts/ifup-eth1 | Description: | This script starts and configures the eth1 network interface. |
| Called by: | /etc/rc.d/init.d/network | |
| Calls: | /etc/sysconfig/network-scripts/ifcfg-eth1, /sbin/ifconfig | |
| Supports: | ||
| rootfs/etc/sysconfig/network-scripts/ifup-eth2 | Description: | This script starts and configures the eth2 network interface. |
| Called by: | /etc/rc.d/init.d/network | |
| Calls: | /etc/sysconfig/network-scripts/ifcfg-eth2, /sbin/ifconfig | |
| Supports: | ||
| rootfs/etc/sysconfig/network-scripts/ifup-eth3 | Description: | This script starts and configures the eth3 network interface. |
| Called by: | /etc/rc.d/init.d/network | |
| Calls: | /etc/sysconfig/network-scripts/ifcfg-eth3, /sbin/ifconfig | |
| Supports: | ||
| rootfs/etc/sysconfig/network | Description: | This file contains some basic networking information. The only pertinent piece of info is the hostname. The rest of it is not used for this bootdisk. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/sysconfig/pcmcia | Description: | This script is used by stock RedHat installations to set some pcmcia options. This script is not used on our boot floppy. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/pcmcia | Description: | This directory holds all the configuration files and scripts for pcmcia devices. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/pcmcia/config | Description: |
This is the config file for the cardmgr program. It identifies
various pcmcia cards using a "card" entry. When a pcmcia card
that matches the manfid (manufacturer id) is inserted, it uses the
"device" entry that is identified by the "bind" directive of the
"card"
entry. The "device" entries have a "class" specification and a
"module" specification. The module is loaded first, then the script
that is specified by the "class" directive is run. In my case, when cardmgr identifies my wireless card in the pcmcia socket, it matches the manufacturer identification info that it probed from the card to the "manfid" information in one of the "card" specifications. It then recognizes this as a "RayLink PC Card WLAN Adapter" and binds the "ray_cs" device. This binding is a two step process. First it loads the "ray_cs" module (which is actually /lib/modules/2.2.16-3/pcmcia/ray_cs.o). If this is successful, cardmgr makes the computer issue a high-pitched beep. As the second step in the binding process ,it runs the script that is specified by the "class" directive. Since my "class" directive is called "network", it runs the /etc/pcmcia/network script. If this configuration script runs successfully, cardmgr makes the computer issue a second high-pitched beep. |
| Called by: | /sbin/cardmgr | |
| Calls: | /etc/pcmcia/config.opts | |
| Supports: | ||
| rootfs/etc/pcmcia/config.opts | Description: | This file lists options for the various pcmcia modules. |
| Called by: | /etc/pcmcia/config | |
| Calls: | ||
| Supports: | ||
| rootfs/etc/pcmcia/network | Description: | This script is called by the cardmgr program after a pcmcia network card has been identified and its module has been loaded. Really, the only thing this script does is run the /etc/sysconfig/network-scripts/ifup-eth3 script. |
| Called by: | /sbin/cardmgr | |
| Calls: | ||
| Supports: | ||
| rootfs/etc/inittab | Description: | This is the configuration file for the init program. A few of the important settings to mention in this file are: id (the default runlever), si (the script to run for system initialization), l0-6 (what script to run when entering a new runlevel), 1-6 (what six things to run in standard runlevels). Note that the runlevel script (/etc/rc.d/rc) is passed a parameter when entering a runlevel. This is ignored for the case of our boot floppy. |
| Called by: | ||
| Calls: | ||
| Supports: | /sbin/init | |
| rootfs/etc/fstab | Description: | This is the filesystems table and lists the filesystems that are available to be mounted. |
| Called by: | /bin/mount | |
| Calls: | ||
| Supports: | ||
| rootfs/etc/nsswitch.conf | Description: | This file describes the methods that various services use for name resolution. |
| Called by: | ||
| Calls: | ||
| Supports: | Many programs as shown in the file. | |
| rootfs/etc/ld.so.cache | Description: | This file holds the library dependency information that is generated by /sbin/ldconfig. |
| Called by: | ||
| Calls: | ||
| Supports: | ???????? | |
| rootfs/etc/resolv.conf | Description: | This file specifies the default domain search order as well as the ip addresses of the domain name server(s). Note that pump replaces this file by default. If you don't want this file overwritten by pump, you should use the -d (--no-dns) option or specify "nodns" in the /etc/pump.conf file. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/etc/mtab | Description: | This file holder is where the mount table will be placed. /sbin/mount updates this file whenever a filesystem is mounted |
| Called by: | ||
| Calls: | ||
| Supports: | /sbin/mount | |
| rootfs/etc/pump.conf | Description: | This is the pump configuration file. Currently all it does is run /etc/rc.d/rc.firewall whenever something happens (up, down, or renew). |
| Called by: | ||
| Calls: | ||
| Supports: | /sbin/pump | |
| rootfs/etc/syslog.conf | Description: | This file is the syslog configuration file. It is used by /sbin/syslogd to indicate what facilities and priorities are logged, and where they are logged. Note that if you want to log all messages to a syslog server elsewhere on your network that you need to start syslogd on that machine with the -r option. You also need to have a line similar to "syslog 514/udp" in the /etc/services file of your boot floppy. |
| Called by: | ||
| Calls: | ||
| Supports: | /sbin/syslogd | |
| rootfs/etc/services | Description: | This file lists the various services used by your system and the tcp or udp ports they run on. For our case, the only port we are interested in is udp/514 which is the port that syslogd sends log messages to on a remote logging server. |
| Called by: | ||
| Calls: | ||
| Supports: | /sbin/syslogd | |
| rootfs/etc/hosts | Description: | This file provides local name resolution. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/var | Description: | This directory holds various log and information files about the current and past state of the system. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/var/run | Description: | This directory contains various files that indicate the status of running programs on your system. This directory is required for syslogd, klogd, and pump to work correctly. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/usr | Description: | This directory contains user programs (supposedly). |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/usr/lib | Description: | This directory contains libs for user programs (supposedly). |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/usr/lib/iptables | Description: | This directory contains userspace programs for packet filtering and nat/masquerading. |
| Called by: | /sbin/iptables | |
| Calls: | ||
| Supports: | ||
| rootfs/lib | Description: | This directory holds the libraries that are needed by various programs on your system. The mkbootdisk script should populate this directory appropriately. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/lib/modules | Description: | This directory contains the kernel modules that will be loaded for your system. Some of the modules that are here are network modules (8139too.o), pcmcia modules (pcmcia_core.o, ds.o, i82365.o, ray_cs.o), and the packet driver interface module (af_packet.o) which is needed for pump to work correctly. Note that the cardmgr program in the pcmcia package does not look in the right place, so there are two links (2.4.0 which should be the same as the output from "uname -r", and pcmcia) back to the current directory. This way, when cardmgr looks for pcmcia modules in /lib/modules/$(uname -r)/pcmcia, it will actually be looking in /lib/modules. |
| Called by: | ||
| Calls: | ||
| Supports: | ||
| rootfs/proc | Description: | This directory provides a mount point for the kernel proc filesystem. |
| Called by: | /etc/rc.d/rc.sysinit | |
| Calls: | ||
| Supports: | ||
| rootfs/tmp | Description: | A temporary directory. This is needed for the /sbin/cardmgr program from the pcmcia package to work correctly. |
| Called by: | ||
| Calls: | ||
| Supports: |