Closed hongkongkiwi closed 2 years ago
Hmmm, that's not right, of course. What does your fstab look like?
Finit (should) skips everything that has pass=0 and generates the rest to the fsck tool to figure out the correct feck.foo to call. Having Finit know all valid types of file systems doesn't feel sustainable really. So setting pass to zero for such entries should be the way here.
You can verify what a Finit reads from your fstab, by enabling debug mode. In case there are any lingering issues with reading wrong passno, for instance.
Ah yes, I had fsck set to 1 in my fstab for this rootfs.
After setting it to 0 it seems ok now.
Phew, thanks! 😁
Is it possible to suppress the e2fsck version number? [ ⋯ ] Checking filesystem /dev/mmcblk0pe2fsck 1.45.6 (20-Mar-2020) [ OK ] [ ⋯ ] Checking filesystem /dev/mmcblk0pe2fsck 1.45.6 (20-Mar-2020) [ OK ] [ ⋯ ] Checking filesystem /dev/mmcblk0pe2fsck 1.45.6 (20-Mar-2020) [ OK ] [ ⋯ ] Checking filesystem /dev/mmcblk0pe2fsck 1.45.6 (20-Mar-2020) [ OK ] [ ⋯ ] Checking filesystem /dev/mmcblk0pe2fsck 1.45.6 (20-Mar-2020) [ OK ] [ OK ] Mounting filesystems from /etc/fstab.slot.flash_recovery_rootfs.0
Should be, I'll check.
Are you using configure --enable-fsckfix
?
Seems e2fsck
always dumps this info on stderr when -p
(or the traditional -a
) option is not set. The -y
option, which --enable-fsck-fix
sets, is not compatible with -p
.
I'm hesitant to create a special case for fsck, e.g. by redirecting stderr, it uses the same interactive run
as most other early setup calls use. The idea of more verbose bootup log is introduced in this release cycle. I was afraid a lot of issues like this would show up ... random useless info printed on the console. In my view this particular issue should be fixed in e2fsprogs, i.e. only show this info in verbose mode. I guess you could have a local patch for this, something like this:
--- output/build/e2fsprogs-1.46.5/e2fsck/unix.c
+++ output/build/e2fsprogs-1.46.5/e2fsck/unix.c
@@ -1461,7 +1461,7 @@ int main (int argc, char *argv[])
}
init_resource_track(&ctx->global_rtrack, NULL);
- if (!(ctx->options & E2F_OPT_PREEN) || show_version_only)
+ if (verbose || show_version_only)
log_err(ctx, "e2fsck %s (%s)\n", my_ver_string,
my_ver_date);
Are you using
configure --enable-fsckfix
?
Yup, I'm using this so it runs: fsck -yf /dev/mmcblk0p10
I'm hesitant to create a special case for fsck, e.g. by redirecting stderr, it uses the same interactive run as most other early setup calls use. The idea of more verbose bootup log is introduced in this release cycle. I was afraid a lot of issues like this would show up ... random useless info printed on the console. In my view this particular issue should be fixed in e2fsprogs
Makes sense. Seems like a patch is the best approach, thank you for the suggestion, I'll add it to my build.
In the latest version, finit trys to fsck my rootfs which is squashfs.
Could I suggest that you check if the command fsck.FSTYPE exists and if not just silently ignore this? In my case, my root is a squashfs, but I can also imagine that some users will be using an encrypted dev as their root (or something else with no fsck).
My kernel cmdline shows:
root=/dev/mtdblock6
My fstab shows /dev/root as squashfs, but I assume that this is ignored (I saw in other places that actually the /dev/root line is ignored and the kernel cmdline is taken instead).
Everything else apart from root is ok.