diff --git a/install/fsck b/install/fsck index d20750e..ef4980f 100644 --- a/install/fsck +++ b/install/fsck @@ -4,13 +4,28 @@ 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 + case "$1" in + ext[234]) + [[ -e /etc/e2fsck.conf ]] && add_file /etc/e2fsck.conf + add_binary e2fsck + add_symlink /usr/bin/fsck.ext2 e2fsck + add_symlink /usr/bin/fsck.ext3 e2fsck + add_symlink /usr/bin/fsck.ext4 e2fsck + ;; + jfs) + add_binary jfs_fsck + add_symlink /usr/bin/fsck.jfs jfs_fsck + ;; + reiserfs) + add_binary reiserfsck + add_symlink /usr/bin/fsck.reiserfs reiserfsck + ;; + *) + [[ $1 = btrfs ]] && add_binary btrfs + [[ $1 = xfs ]] && add_binary xfs_repair + add_binary "fsck.$1" + ;; + esac } if (( ! fs_autodetect_failed )) && [[ $rootfstype$usrfstype ]]; then @@ -23,7 +38,8 @@ build() { else for fsck in /usr/bin/fsck.*; do [[ -f $fsck ]] || continue - add_binary "$fsck" && (( ++added )) + [[ ${fsck##*.} = ext[23] ]] && continue + add_fsck ${fsck##*.} && (( ++added )) done fi @@ -33,10 +49,6 @@ build() { fi add_binary fsck - if [[ -e /etc/e2fsck.conf ]]; then - add_file /etc/e2fsck.conf - fi - } help() {