Comment 8 for bug 28067

Revision history for this message
Debian Bug Importer (debzilla) wrote : Re: initscripts: checkroot.sh ignores fsck result

Message-ID: <email address hidden>
Date: Fri, 06 Jan 2006 12:01:40 +0100
From: Thomas Hood <email address hidden>
To: <email address hidden>
Cc: <email address hidden>
Subject: Re: [Pkg-sysvinit-devel] Bug#346148: checkroot.sh: does not properly handle fsck exit states

tags 346148 fixed-in-experimental patch pending
severity 342160 critical
merge 346148 342160
found 346148 2.86.ds1-4
stop

Wouter Verhelst wrote:
> I just noticed that my laptop, at bootup, started an fsck for the root
> filesystem, claiming that it was a filesystem with errors. When it was
> about 20% done, it exited, and told me to rerun it manually. I expected
> a prompt for my root password and to be put in single-user mode, but
> this did not happen; instead, my system did a normal boot.
>
> This should _never_ happen! If the fsck fails, all sorts of bad things
> might have happened with the file system; continueing the boot at that
> point is a very good way to lose all your data.

Thanks for reporting the bug.

checkroot.sh in at 2.86.ds1-[46] contains a bug such that the return status
of fsck is ignored. This bug has been fixed in more recent releases (to
experimental).

Additional info:

Reading checkroot.sh I see that it only continues with booting if the fsck
return status is 0 or 1. If the status is 2 or 3 then the system is rebooted
after five seconds. If the status is greater than 3 then a shell is started.

The comment in checkroot.sh says "A return code of 1 indicates that file system
errors were corrected but that the boot may proceed."

The fsck(8) and fsck.ext3(8) man pages say that 1 means "File system errors
corrected".
--
Thomas Hood