[Pkg-sysvinit-devel] Bug#595431: Aborting fsck aborts all scripts in rcS.d

Serafeim Zanikolas sez at debian.org
Sun Oct 10 20:43:14 UTC 2010


Hi,

First of all, as a workaround to be able to ^C fsck while not in repair mode,
one can add the following in /etc/e2fsck.conf:

    [options]
    allow_cancellation = true

This forces fsck to return with zero and postpone the check for the next boot.
But of course that doesn't solve the problem of fsck (or something else during
boot) actually failing.


Looking at the output of a boot sequence, where a fsck check is interrupted,
it appears that startpar runs a target regardless of the exit status of any of
the target's dependencies. For instance, if mtab.sh depends on checkroot.sh,
mtab.sh will run regardless of the success of checkroot.sh. That makes sense
for -M stop, but not for -M boot/start.

If I understand correctly the code, startpar does save the return status of
all scripts, but doesn't seem to do much with it other than print a list of
failed/skipped/etc scripts.


An orthogonal issue in checkroot.sh, is that when fsck fails, checkroot.sh
should invoke sulogin, but doesn't always do so. It does in my squeeze/sid
box, but not in a lenny/sid virtualbox. In the latter case, the console
freezes (^C is printed as a raw character), and the only way to unblock is
with ctrl-alt-del

Cheers,
Serafeim





More information about the Pkg-sysvinit-devel mailing list