This Mini-Howto was written in order to help people who want to use NFS Root mounting to create their client's directories. Please note that there are many ways to accomplish this, depending on your needs and intent. If the clients are individual, and each client has its own users and administrator, it will be necessary to make significant parts of the client dirs not shared with other clients. On the other hand, if the client is intended for multiple users, and are all administrated by the same person (for instance, a computerclass), make as many files as possible shareable in order to make administration more manageable. This Howto will focus on the second issue.
When building a client's root directory, and trying to limit ourselves to the minimum client size, we mainly focus on which files we can share, or mount from the server. In this Howto I will recommend the configuration of a client based on my experience. But beforewe begin please note:
This Mini-Howto does not explain how to do the actual NFS Root mounting. Refer to the NFS-Root Mini-Howto if you need more information about that issue.
I based most of my client's configuration on mounts and symbolic links. A lot of those symbolic links can be replaced by hardlinks. One should choose according to his personal preference. Putting a hardlink over a mount and a symbolic link has its advantages, but might cause confusion. A file will not be erased until all its hardlinks are removed. Thus, In order to prevent a case in which you upgrade a certain file, and the hardlinks still refer to the older version, you will have to be very careful and keep track of every link you put.
While mounting the information from the server, two concepts can be used. The first (most common) concept, is to mount the whole server root directory under a local directory, and then just change the path or link the relevant directories there. I personally dislike mounting root partitions of a server on clients. Thus, this Howto suggests a way to mount the relevant directories of the server to the relevant places on the system.
This Howto is based on my experience building client directories on a Slackware 3.1 based distribution. Things may be different (especially on the rc.* files), for other users, however the concepts should still remain the same.