On Sat, Sep 03, 2022 at 09:56:34AM +0100, Mike wrote:
> Rereading my original request, I think perhaps I wasn't entirely clear
> on a couple of points:

I thought it was clear.  Some of the responses completely baffled me.
One person even mentioned xterm -- like, *what*?  How does xterm come
into play when you're booting a server and there's no GUI yet?

> Maybe I'm being nostalgic but I seem to recall in days gone by that fsck
> printed a progress bar out of hashes to show how it was getting along.

Near as I can tell, that was a feature of the old sysv-rc scripts,
which ran (originally/mostly) in series, instead of in parallel.  The
fsck progress bar(s) seem to have been lost in the move to systemd,
perhaps because writing a progress bar isn't considered viable in a
highly parallel boot system where other things might also be trying to
write to the console.  Or perhaps for other reasons.

It appears that systemd-fsck(8) is the documentation for the new regime.
Note this paragraph:

       systemd-fsck does not know any details about specific filesystems, and
       simply executes file system checkers specific to each filesystem type
       (/sbin/fsck.type). These checkers will decide if the filesystem should
       actually be checked based on the time since last check, number of
       mounts, unclean unmount, etc.

Also note that /lib/systemd/systemd-fsck is a compiled program, not a
shell script, so we can't just go in and edit the thing to make it pass -C.

Now, here's an interesting thing: fsck.ext(4) refers to e2fsck.conf(5).
Did you know that e2fsck (aka fsck.ext4) has a configuration file?  I
didn't either.

e2fsck.conf(5) says that the pathname is /etc/e2fsck.conf (which doesn't
exist by default on Debian 11).  It also says that there are some options
available, which can be set in the configuration file:

       report_features
              If  this  boolean  relation  is true, e2fsck will print the file
              system features as part of its verbose reporting (i.e.,  if  the
              -v option is specified)

       report_time
              If  this boolean relation is true, e2fsck will run as if the op‐
              tions -tt are always specified.  This will cause e2fsck to print
              timing  statistics  on a pass by pass basis for full file system
              checks.

       report_verbose
              If this boolean relation is true, e2fsck will run as if the  op‐
              tion  -v  is  always specified.  This will cause e2fsck to print
              some additional information at the end of each full file  system
              check.

Unfortunately, I couldn't find any wording about the progress bar.  I don't
see how to turn that on from the config file.

So... sadly, I don't see a simple way to get the progress bar back.  You
could play around with this e2fsck.conf file and see what the options do,
or you could edit the freakin' systemd SOURCE CODE to change how
systemd-fsck calls fsck.  I don't see a sensible way to insert a wrapper
script into the execution flow, so I really wouldn't try going down that
road.

If none of these options work, you might need to talk to the systemd people
about it, maybe putting in a feature request, or seeing if one of them knows
a trick that'll work.

Reply via email to