Using Linux to Teach Unix System Administration

A teacher at the College of DuPage in Illinois, has found that teaching system administration to beginners is both easy and cost-effective using Yggdrasil Linux.
Why Yggdrasil Linux?

My requirements for a Linux distribution for my class are that it be easy to run, require no configuration by the students and run right out of the box. I experimented with a number of versions of Linux. Except for Yggdrasil, all the versions either used the CD-ROM for installation only or had a live file system that required both a knowledge of Linux and the setup of a hard disk partition. We could fulfill neither of these requirements in our academic environment. Yggdrasil includes the boot diskette and does not require the student to configure either a boot or a root diskette.

The essential hardware ingredients are:

  1. The kernel and other files are loaded into RAM from the boot diskette. This is mounted as the file system /ramdisk.

  2. Boot Diskette contains the basic Linux kernel and basic Linux system files. Once the software is loaded into RAM, the boot diskette is no longer needed. This frees the diskette drive for loading customized files or backup.

  3. CD-ROM loads more advanced files into /ramdisk and contains the remainder of the live file system, which is mounted as /.

You may think the missing ingredient is the hard disk, but it's not. I haven't listed the HD because you don't need it.

Linux is started by putting the boot diskette and Linux CD-ROM into the computer, then powering on or rebooting the PC. The PC loads the basic Linux kernel and checks for various hardware devices by probing base addresses and evaluating the response. This probing process can cause the PC to hang, making it necessary to modify the boot parameters.

I have found that on many PCs it has been necessary or advisable to use additional boot parameters. The opportunity to modify boot parameters is given when the system displays the boot: prompt. If you wish to continue with no changes, you press enter.

You usually do not need additional boot parameters when running Linux on a SCSI-based system. However, I have taught in colleges which use IDE/ATAPI CD-ROMS on their PCS, not SCSI devices. Using an IDE or EIDE hard disk and CD-ROM presents some configuration challenges. Most current EIDE controller cards allow for primary and secondary IDE controllers. In addition, two devices, known as master and slave drives, can be attached to each channel. IDE CD-ROMs follow the same conventions as hard drives.

It is important that students understand this in order to set up their own PCs and use the college's equipment. Over half my students had problems that were eliminated once they understood the IDE configuration issues. My experience has been that it is better to have a motherboard with integrated, rather than separate, IDE controllers. Separate IDE controllers tend to have timing problems with some motherboards.

Linux Boot Parameters

I needed several common boot parameters in order to get Linux working on both the school's system and the students' home systems.

Figure 1. IDE Disk Layout in Linux

As shown in Figure 1, you can specify an IDE/ATAPI CD-ROM device by entering the “hd” device as follows:

linux hdc=cdrom

hdc refers to the /dev device and can actually be one of the following values:

  • hda--the master drive on the primary IDE controller

  • hdb--the slave drive on the primary IDE controller

  • hdc--the master drive on the secondary IDE controller

  • hdd--the slave drive on the secondary IDE controller

Some motherboards look at a single IDE controller as the primary controller, regardless of whether the board contains primary and secondary controllers.

Since most of the file system is stored in RAM, you need to increase the size of the RAM disk. On a system with 16MB of RAM, a RAM disk of 8MB is sufficient for classwork, leaving 8MB for the operating system. You can adjust the size upward as memory size increases. Even if you specify all the RAM as RAM disk, Linux is intelligent enough to reduce the RAM disk size to make space for the operating system. You set the RAM disc size with the following command:

linux ramdisk=8000

where 8000 refers to 8000 blocks of 1024 bytes each.

Another useful option is hda=serialize, a parameter that forces Linux to handle one controller at a time. A complete command line at the boot prompt could look like:

linux ramdisk=8000 hda=serialize hdc=cdrom

Other options can speed things up, such as disabling the check for a Sound Blaster Pro CD-ROM controller.