#!/bin/bash build() { local fsck= added=0 add_fsck() { if [[ $1 = ext[234] ]]; then add_binary fsck.ext4 add_symlink /usr/bin/fsck.ext2 fsck.ext4 add_symlink /usr/bin/fsck.ext3 fsck.ext4 else add_binary "fsck.$1" fi } if (( ! fs_autodetect_failed )) && [[ $rootfstype$usrfstype ]]; then if [[ $rootfstype ]]; then add_fsck $rootfstype && (( ++added )) fi if [[ $usrfstype && $usrfstype != $rootfstype ]]; then add_fsck $usrfstype && (( ++added )) fi else for fsck in /{usr/,}{s,}bin/fsck.*; do [[ -f $fsck ]] || continue add_binary "$fsck" && (( ++added )) done fi if (( ! added )); then warning "No fsck helpers found. fsck will not be run on boot." return fi add_binary fsck if [[ -e /etc/e2fsck.conf ]]; then add_file /etc/e2fsck.conf fi } help() { cat <<HELPEOF This hook provides fsck and filesystem specific helpers to perform an fsck operation on the root device prior to mounting. If the autodetect hook is used, only the fsck helper specific to your filesystem will be added to the image. It is highly recommended that if you include this hook that you also include any necessary modules to ensure your keyboard will work in early userspace. To control the behavior of fsck on bootup, fsck.mode=force can be passed on the kernel command line to insist on running a full filesystem check. Similarly fsck.mode=skip can be passed to cause fsck not to run at all. HELPEOF } # vim: set ft=sh ts=4 sw=4 et: