105 lines
4.5 KiB
Groff
105 lines
4.5 KiB
Groff
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>
|