[OE-core] systemd/busybox fsck fail to run
Alex Kiernan
alex.kiernan at gmail.com
Wed Sep 5 08:37:17 UTC 2018
I've just come across a box with a corrupt filesystem which wasn't
being cleaned (using systemd and busybox):
Aug 29 16:03:22 localhost systemd-fsck[143]: read_bad_blocks_file: No
such file or directory while trying to open -M
Aug 29 16:03:22 localhost systemd-fsck[143]: Warning: fsck.ext4
/dev/mmcblk0p4 terminated by signal 8
Aug 29 16:03:22 localhost systemd-fsck[143]: fsck failed with exit status 8.
Aug 29 16:03:22 localhost systemd-fsck[143]: Ignoring error.
Aug 29 16:03:22 localhost systemd[1]:
systemd-fsck at dev-mmcblk0p4.service: cgroup is empty
Aug 29 16:03:22 localhost systemd[1]:
systemd-fsck at dev-mmcblk0p4.service: Child 143 belongs to
systemd-fsck at dev-mmcblk0p4.service.
Aug 29 16:03:22 localhost systemd[1]:
systemd-fsck at dev-mmcblk0p4.service: Main process exited, code=exited,
status=0/SUCCESS
Aug 29 16:03:22 localhost systemd[1]:
systemd-fsck at dev-mmcblk0p4.service: Changed start -> exited
Aug 29 16:03:22 localhost systemd[1]:
systemd-fsck at dev-mmcblk0p4.service: Job
systemd-fsck at dev-mmcblk0p4.service/start finished, result=done
Aug 29 16:03:22 localhost systemd[1]: Started File System Check on
/dev/mmcblk0p4.
It turns out systemd-fsck unconditionally passes `-l` to lock the filesystem:
https://github.com/systemd/systemd/blame/master/src/fsck/fsck.c#L408
which busybox fsck doesn't interpret and so passes on to fsck.ext4,
which then interprets it as a badblocks file...
What's the right answer here? Add a patch to busybox fsck so it just
ignores `-l`, or do we need something more sophisticated?
Obviously swapping in util-linux-fsck works around the problem.
--
Alex Kiernan
More information about the Openembedded-core
mailing list