This document does not resemble a common HOWTO, meaning referencing to general principles, but it is rather an on-hand approach to a by nature complex matter. It borrows the structure of the current Root over NFS , but differs from it in the following points:
This HOWTO expects that you have a general knowledge of what you are up to, so first read the Diskless Nodes HOW-TO.
It is a common case a University computer lab to have a lot PC's running Windows 98 or/and NT and a powerful UNIX server to satisfy the need of an alternative operating environment. This UNIX server is most of times idle or meerly accessed by telnet and running stupid tasks. On the other hand, students, especially those attending a computer science department, feel like taking full advantage of it, just for fun or for "educational purposes" (breaking in, hacking it...). The restrictive environment of telnet does not allow us to enjoy the use of a power server.There are 2 alternatives to that:
The network at the computer lab consists of the following.
The task I had to accomplish was the following: Provide a complete working solution without new expenses and without modifying anything but the necessary on the server.
Being the responsible for the project, I had to choose between a variety of solutions about it. I choose the following, for the reasons illustrated:
To be able to boot a Linux system, you have to provide it with the following:
/sbin
directory. There exists the init
programm, which is responsible for starting other programms and start up scripts during the boot process. Also, the /sbin
directory contains the startup scripts in the case of SuSE, some useful programms like the portmap
programm and many other programms that are needed before you mount the /usr
directory./lib
directory. It contains the libc libraries that are absolutely necessary if your init
is dynamically linked./bin
directory. It contains file commands and shells for running startup scripts./etc
directory. It contains configuration files for most programms and the rc.d
directories that is the default for startup scripts./var
directory. It is a spool area for programms that want to write somewhere. It is divided into many subdirectories with alternate usability./dev
directory. It contains character and block special devices that allow programms to communicate with the computers devices via the kernel./usr
and /opt
directories. So, it is possible to create a directory for every diskless client containing the above listed directories and mount points for directories like /usr
that will be exported by the server. The boot process, as assumed by this document, is the following:
init
programm is started. Before switching to a run level, it calls a script described in the /etc/inittab
file. This script is responsible for building the library cache, initialise and mount a swap file, load some system specific kernel modules and set the hostname./etc/rc.d/rcX
directory where 'X' is the name of the runlevel. These scripts are responsible for starting the portmapper and mounting the NFS exported /usr, /home
and /opt
directories.