| bootutils-0.1 |
| |
| * ALPHA RELEASE: Use at your own risk! * |
| |
| * You MUST have 0.99pl10 or later kernel to make use of all of the |
| facilities of this package. If you can live without the unmount-root |
| feature, then 0.99pl9 will work. * |
| |
| This is the first release of a set of utilities designed to automate |
| the management and checking of filesystems at boot time and shutdown. |
| It supports automatic and safe 'fsck' of all filesystems (including |
| root) at boot time by booting with root readonly; if the fsck succeeds |
| then root is remounted read-write and booting can continue. |
| |
| Why bother? |
| |
| Well, many people like to have a safe and reliable check of all their |
| filesystems during boot. This is especially true for ext2fs, because |
| all ext2fs filesystems have a special 'clean' flag which gets set when |
| the filesystem is cleaned (by e2fsck) or is unmounted cleanly, and |
| which gets unset when the filesystem is active. e2fsck can sense this |
| flag, and will skip over filesystems which are clean. |
| |
| This means that e2fsck won't bother you with a laborious filesystem |
| check at each startup, as long as you always shut down cleanly; but it |
| will check your filesystems automatically if you ever have a crash, |
| because afterwards the filesystem 'clean' flags will not be set. You |
| *can* still mount an unclean filesystem, but ext2fs will give you a |
| warning and will not mark it clean when it gets unmounted. |
| |
| One of the problems with automatic fsck'ing is that it is unsafe to |
| check mounted, active filesystems. The solution is to initially mount |
| only the root filesystem, and to mount it in readonly mode. In this |
| situation, fsck can run safely on all filesystems, without the danger |
| that the kernel might start conflicting with the repairs being done to |
| the filesystem. |
| |
| If any repairs were done, it is unsafe to proceed any further because |
| the kernel might have cached old information about the filesystems |
| which has been updated by fsck. However, if the fsck succeeded, then |
| we can remount the root filesystem in read-write mode and proceed to |
| mount all of the other filesystems. |
| |
| Finally, in order to ensure that filesystems are correctly tidied up |
| on shutdown, we need to unmount the root at shutdown. This is usually |
| done automatically; the standard Linux shutdown programs do a 'umount |
| - -a' command to unmount all mounted filesystems. You MUST have a |
| 0.99pl10 or later kernel for this to work. Many versions of umount |
| explicitly do not try to unmount the root, since pre-99pl10 kernels |
| forbade this. The umount included here will unmount even the root |
| filesystem. (A special kernel trick in pl10 allows this to work by |
| keeping the filesystem alive in readonly mode after it has been tidied |
| up.) |
| |
| The bootup operation of this package is invoked by the /etc/rc shell |
| script, an example of which is in mount/etc/rc. It contains the |
| following important lines: |
| |
| # Check the integrity of all filesystems |
| /bin/fsck -A -a |
| # If there was a failure, drop into single-user mode. |
| if [ $? -gt 1 ] ; then |
| echo fsck failed. Please reboot. |
| sh |
| fi |
| |
| # Remount the root filesystem in read-write mode |
| /etc/mount -n -o remount /dev/hda3 / |
| |
| # remove /etc/mtab* so that mount will create it with a root entry |
| /bin/rm -f /etc/mtab* /etc/nologin /etc/utmp |
| |
| # mount file systems in fstab (and create an entry for /) |
| # but not NFS because TCP/IP is not yet configured |
| /etc/mount -avt nonfs |
| |
| |
| This is the first attempt at a complete package for automated clean |
| fsck support, so you may well find that you would like a slightly |
| different behaviour. Please feel free to send me comments, bug |
| reports and improvements! |
| |
| |
| This package includes three separate items, shamelessly adapted from |
| other, more or less standard Linux programs. |
| |
| * rdev.c: a modified rdev which is extended to allow the |
| readonly/readwrite status of the kernel image to be altered. Use |
| rdev -R <kernel> 1 |
| to make the kernel mount in readonly mode. This can be overridden |
| by the use of the 'read-only' or 'read-write' keywords of the most |
| recent version of LILO. |
| |
| * Mount/umount package: This was recently posted to the net, and |
| implements the '-o remount' mount option which allows filesystems to |
| be remounted. Unlike the previous post, the version included here |
| also attempts to unmount the root filesystem on 'umount -a'. I have |
| also tried to clean up the man-pages. |
| |
| * fsck package: David Engel's fsck front-end. Read the README for it. |
| This package implements the 'fsck -A' command which will check all |
| filesystems in /etc/fstab automatically. |
| |
| Stephen Tweedie <sct@dcs.ed.ac.uk> |