In the previous chapter we added many new commands by installing coreutils and as a result the root disk has a lot more functionality. But there are still a few things lacking. One thing that really stands out is that there was no way to mount disks. In order to get a read-write root filesystem we had to resort to passing the rw kernel parameter at the grub> prompt. This is fine for an emergency situation, but a normal system boot process should do things differently.
Most GNU/Linux distributions take several steps to mount filesystems. Watching the boot process or digging into the startup scripts on one of the popular Linux distributions reveals the following sequence of events:
The kernel automatically mounts the root filesystem as read-only.
All local filesystems are checked for errors.
If filesystems are clean, root is remounted as read-write.
The rest of the local filesystems are mounted.
Network filesystems are mounted.
So far our Pocket Linux system can do step one and that is it. If we want to have a professional looking boot / root diskset we will have to do better than one out of five. In this phase of the project we will work on steps two and three. Steps four and five can wait. Since this is a diskette-based system, there really are no other filesystems to mount besides root.
Taking into account all of the above information, the goals for this phase are defined as follows:
A way to check filesystem integrity.
The ability to mount filesystems.
A script to automate checking and mounting of local filesystems.