On 16/01/13||11:22, Tom Gundersen wrote:
Hi Arno,
On Tue, Jan 15, 2013 at 12:34 PM, Arno Gaboury <arnaud.gaboury@gmail.com> wrote:
HOOKS="base udev autodetect block lvm2 filesystems fsck usr usbinput shutdown modconf"
When # mkinitcpio, I get this error: -> Running build hook: [fsck] ==> ERROR: file not found: `fsck.btrfs' ==> WARNING: No fsck helpers found. fsck will not be run on boot.
The initramfs-linux.img is still correct, but I was wondering why this error.
As you correctly observe, there is no fsck.btrfs binary.
When reading the /usr/lib/initcpio/install/fsck script, it seems to me fsck will add the filesystem name and run /usr/bin/fsck.filesystemame.This will of course translate to fsck.btrfs, which does not exist. /usr/bin/btrfsck is the correct binary.
This is not a mistake; the btrfsck binary is not meant to be run automatically at boot as the other fsck.* helpers, it is only meant to be used manually to fix problems. btrfs is designed not to need fsck'ing at boot, but does integrity checking at run-time instead.
According to /usr/lib/initcpio/install/btrfs script, the btrfs hook is not needed when using udev.
How can I solve this issue? Shall I add the btrfs hook?
You could add the btrfs hook, but it would not make a difference for the automatic fsck. What it would give you is the ability to fsck btrfs manually from the initramfs in case of problems (i.e., in case root can not be mounted at all).
HTH,
Tom
Tom, thank you for your clean answer. I will then let this "error", as I understand it is more a "Warning" with no negative impact. Regards.