Everytime I go through the init scripts or init configurations of the "traditional" (as in having a sequential order and/or using shell scripts) init systems, there are interesting things to find:

Not only that probably half of the boottime could be saved if people move the "if system has x, do y" stuff out of the init system and make it part of the configuration process, no. There are also a lot of other interesting quirks within the init configuration, like this one:

            on_ac_power >/dev/null 2>&1
            if [ "$?" -eq 1 ]
                    log_warning_msg "On battery power, so skipping file system check."

That part is shameless stolen from S20checkroot.sh, Ubuntu Jaunty (9.04), but it can also be found in Debian. So if the system is running on battery, this configuration will skip the filesystem check.

Now imagine your filesystem needs to be checked, because the user space program fsck replays the journal and marks the filesystem as clean. Furthermore, assume that without this filesystem check the filesystem cannot be mounted read write.

That is exactly what is done by fsck.jfs, the filesystem check for JFS filesystems.

So if you are running Debian or Ubuntu with JFS on the root filesystem, your system crashed the last time and you bootup on battery the bootup process will fail, because the root filesystem cannot be mounted read write.

Perhaps the authors idea of these lines was to skip senseless filesystem checks for ext{2,3,4}, which occur after a certain amount of time. But as it can be seen, this "fix" introduced a new bug.

Dear Debian and Ubuntu developers:

Please do not skip the filesystem check.
All the users with JFS on / of their notebook will thank you!

I would have fixed that in Debian myself, if there was a "get a fix integrated in 5 minutes" approach. But after reading Debian documentation for some hours I did not find it.

If you find that way let me know and I'll write an article "How to fix a Debian package in 5 minutes" plus provide a patch to solve this init misconfiguration issue.