Systemd-fsck and tune2fs failed with kernel 6.8

journald using kernel 6.8.1-1

Mär 18 17:27:05  systemd-fsck[350]: fsck failed with exit status 8.
Mär 18 17:27:05  systemd-fsck[350]: Ignoring error.

No warning using kernel 6.1 / kernel 6.6
Checking disks via live-medium: no errors :question:

please issue:

pacman -Qm

If systemd-fsck appears remove it.
As it is no longer maintained.

1 Like

This rather old issue says to have the base hook present in /etc/mkinitcpio.conf:

My /etc/mkinitcpio contains:

HOOKS=(base systemd autodetect microcode modconf block keyboard keymap filesystems)

Enabled in /etc/default/grub
GRUB_ROOT_FS_RO=true
AND:
only kernel68 / Kernel61 / kernel66 is ok …
==> My way uses: systemd-fsck-root.service to check disks at startup.
AND: systemd-fsck@.service does not exist any longer
Failed to get properties: Unit name systemd-fsck@.service is neither a valid invocation ID nor unit name. ==> will be masked out as fast as possible …
BUT then all services "systemd-fsck@dev-disk-… are masked too???
no good idea ?!

Presumably that also goes for systemd-fsck-silent also, then?
Were these formerly arch packages?

1 Like

I have the same issue with 6.8.1-1:

systemd-fsck[296]: fsck failed with exit status 8.
systemd-fsck[296]: Ignoring error.

I added base to hooks in mkinitcpio.conf, but the error did not go away.
Grub is set as follows:

GRUB_ROOT_FS_RO=true

Hooks:

HOOKS=(base systemd autodetect microcode modconf kms block keyboard filesystems)

No issue at all with 6.6 LTS

1 Like

Please make sure not to keep unsupported packages.
Check, ex

pacman -Qs fsck

Also … please make sure to be acquainted with fsck and its different options.
Namely the fsck hook vs systemd-fsck.

https://wiki.archlinux.org/title/Fsck

In addition to the above, fstab looks like this (UUID’s snipped):

UUID=3XXX-XXXX                            /boot/efi      vfat    umask=0077 0 2
UUID=a4XXXX53-xxxxxxxf-xxxxxxx  /              ext4    defaults,noatime 0 1
UUID=4XXXXXXX-xxxxe-xxxxx-xxxxx-xxxxxxx  /home          ext4    defaults,noatime 0 2

So, I don’t see anything out of line here. It doesn’t have error in 6.6LTS. Something is off in 6.8.
I removed 6.8. I will try again when it gets a bit more developed.

Me too… Everything configured correct as cscs suggests .

With Kernel 6.6:

systemd-fsck[326]: /dev/nvme0n1p2: clean, 366411/2564096 files, 3717522/10240000 blocks
systemd[1]: Finished File System Check on Root Device.

I decided to abandon systemd-fsck as it wasn’t default on this system and isn’t default on any of my other Arch based VM’s. I installed kernel 6.8 and don’t have any fsck error, so I probably won’t be looking back on this one.

JR

No disk-checking is braveheart…
Alternativ disk-checking: install util-linux (core) and e2fsprogs (core)
(contains tune2fs) and use them…

I think he meant he went back to the traditional base+fsck hooks. On 6.6 actually only fsck is needed.

HOOKS=(autodetect systemd modconf block keyboard sd-vconsole filesystems fsck)

works on 6.6,

Mär 21 11:28:44 archlinux systemd[1]: Starting File System Check on /dev/disk/by-uuid/cf8b53ae-432d-4976-a363-214a6ecc9d84...
Mär 21 11:28:44 archlinux systemd[1]: Finished File System Check on /dev/disk/by-uuid/cf8b53ae-432d-4976-a363-214a6ecc9d84.
Mär 21 11:28:44 archlinux systemd[1]: Stopped Check battery level during early boot.
Mär 21 11:28:47 teo-lenovo-v15 systemd[1]: Starting File System Check on /dev/disk/by-uuid/B842-8B02...
Mär 21 11:28:47 teo-lenovo-v15 systemd[1]: Finished File System Check on /dev/disk/by-uuid/B842-8B02.

I added fsck back to mkinitcpio and removed the entry in GRUB. fsck completes fine, no errors with 6.8 and the default entries

Mar 21 13:50:40 archlinux systemd-fsck[234]: /dev/nvme0n1p2: clean, 393590/2564096 files, 3979781/10240000 blocks
Mar 21 13:50:44 Beelink systemd-fsck[623]: /dev/nvme0n1p3: clean, 12875/3842048 files, 1407501/15360000 blocks
Mar 21 13:50:44 Beelink systemd-fsck[622]: fsck.fat 4.2 (2021-01-31)
Mar 21 13:50:44 Beelink systemd-fsck[622]: /dev/nvme0n1p1: 5 files, 74/131060 clusters

Hooks:

HOOKS=(base systemd autodetect microcode modconf kms block keyboard filesystems fsck)
2 Likes

this is mine I don’t think yours is quit right?

HOOKS=(systemd autodetect microcode keyboard modconf block sd-vconsole filesystems)

It depends.
Mine is

HOOKS=(autodetect systemd microcode modconf kms block keyboard filesystems fsck)

and I could still lose a few.

https://wiki.archlinux.org/title/Mkinitcpio#Common_hooks

Theirs is fine assuming they dont need the console font, and do want the base and fsck hooks.

base really shouldnt be needed if systemd is present. Especially as the busybox ‘recovery shell’ it would provide would not really be accessible.

Thanks. I got rid of the base hook. I didn’t have it before, but added it back based on one of the comments here regarding the original issue with kernel 6.8 and systemd-fsck, which didn’t fix the issue. Yes, I want fsck and do not want consolefont.

fsck should not be used with systemd as systemd does it own fsck, but the root has to be set as ro in default/grub if you need root to be rw you can set it in etc/fstab.

You are conflating the two.
The systemd hook does a lot more than just the fsck.
But you will of course need it there to make use of systemd-fsck.
As well as remove the fsck if you intend to let systemd do it (along with setting ro).
You can have both (as in my case) … using the systemd hook as well as the fsck hook, without mounting things once as ro then again as rw. You could also have neither if you wanted to.

You should have either base or systemd though.
Again you could have both, though there isnt much reason, but you wont want to have neither.

fsck is entirely optional, in whatever form. But its probably best to keep some version of it.
(except that it is apparently required if you have a separate /usr partition)

Grub claims that if root is not ro systemd-fsck will not work.

And?..

In my example I am using the systemd hook, but the fsck is performed by the regular fsck hook. No ro required.