[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: fsck fails (then succeeds)



Geoff wrote:
... The fsck ran and at about 95% complete I got a big red "errors have been found which cannot be fixed" warning and the system halted "pending manual intervention" (fat chance). I rebooted and the system came up just fine. I hit the reset button. This time I did see the "errors were found and fixed ... " message. I shut down again
"-r -F". This time the fsck completed without problems.

Depending on which LFS version you're using (which version is this, anyway?), these messages ("errors have been found that cannot be fixed", and then "waiting for manual intervention") were probably both printed by the init script that runs fsck. The LFS init scripts, as of LFS about 4.0 or 4.1 or so, no longer start /sbin/sulogin on failure of things like this (the reason is that sulogin will apparently accept any password if it can't read /etc/passwd or /etc/shadow), they just print (in red) that "errors have been found" message, and stop. I've modified my LFS init scripts to start sulogin anyway, because I want to be able to fix the problems if that ever happens to me, but whatever. Your choice.

The rest of the messages quoted are also printed by the init script,
depending on the return value of the fsck binary.  If it returns 1, then
the script prints the "errors were found and fixed" warning message.  If
it returns anything between 4 and 15, inclusive, then the script prints
the big red "I failed, halting system" message.  This corresponds to the
description of the return value of e2fsck in its manpage (and probably
other fsck's).

Ted is right, though -- fsck should have displayed its own errors before
it returned 1.  When the script runs fsck after a shutdown -r -F, it
runs it with the -f -a -A -C -T options, so it's not like it's
suppressing the errors.

If you know a bit of bash, take a look at /etc/rc.d/init.d/checkfs (and
the scripts sourced by that file) to see what's going on.  And you
probably don't remember what got printed anymore, but if it happens
again, look before the big red error message to find out what actually
happened.

In the future, too, you can pass "init=/bin/bash" to the kernel at boot
time using your bootloader (lilo is still the LFS loader, right?), and
that way you can run fsck -f yourself, interactively, to see (and fix)
what all it thinks is wrong with the filesystem.

Bryan




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]