From 1a09a8632481ca5ee184ecb379476d2fdcd82fdd Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Mon, 22 Apr 2013 16:00:09 -0400 Subject: hooks/usr: conditionally fsck /usr based on fstab Signed-off-by: Dave Reisner --- hooks/usr | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hooks/usr b/hooks/usr index 389e14c..f45ca7f 100644 --- a/hooks/usr +++ b/hooks/usr @@ -1,12 +1,18 @@ #!/usr/bin/ash run_latehook() { - local realtab=/new_root/etc/fstab + local usr_source mountopts passno realtab=/new_root/etc/fstab if [ -f "$realtab" ]; then if usr_source=$(findmnt -snero source --tab-file="$realtab" /usr); then mountopts=$(findmnt -snero options --tab-file="$realtab" /usr) - fsck_device "$usr_source" + + # returning the passno column requires util-linux >= 2.23. for + # older versions which do not support this column, always fsck. + passno=$(findmnt -snero passno --tab-file="$realtab" /usr 2>/dev/null) + if [ -z "$passno" ] || [ "$passno" -gt 0 ]; then + fsck_device "$usr_source" + fi msg ":: mounting '$usr_source' on /usr" mount "$usr_source" /new_root/usr -o "$mountopts" fi -- cgit v1.2.3-24-g4f1b