summaryrefslogtreecommitdiffstats
path: root/modules.d/dnbd3-rootfs/hooks/mount-root-device.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/dnbd3-rootfs/hooks/mount-root-device.sh')
-rwxr-xr-xmodules.d/dnbd3-rootfs/hooks/mount-root-device.sh19
1 files changed, 18 insertions, 1 deletions
diff --git a/modules.d/dnbd3-rootfs/hooks/mount-root-device.sh b/modules.d/dnbd3-rootfs/hooks/mount-root-device.sh
index 6f31bbac..73d947d0 100755
--- a/modules.d/dnbd3-rootfs/hooks/mount-root-device.sh
+++ b/modules.d/dnbd3-rootfs/hooks/mount-root-device.sh
@@ -1,9 +1,26 @@
type emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh
source "/etc/openslx"
-mount "$SLX_DNBD3_DEVICE_COW" "$NEWROOT" $SLX_MOUNT_ROOT_OPTIONS
+ret=99
+if [ -n "$SLX_MOUNT_ROOT_OPTIONS" ]; then
+ # Always prefer mount options mandated by server
+ mount "$SLX_DNBD3_DEVICE_COW" "$NEWROOT" $SLX_MOUNT_ROOT_OPTIONS
+ ret=$?
+else
+ # Let's guess it's ext4, tune for maximum performance as we don't care about recoverability
+ mount "$SLX_DNBD3_DEVICE_COW" "$NEWROOT" -o data=writeback,barrier=0,commit=60,noinit_itable,discard,noatime
+ ret=$?
+ if (( ret != 0 )); then
+ # Just try with no options and hope for the best...
+ mount "$SLX_DNBD3_DEVICE_COW" "$NEWROOT"
+ ret=$?
+ fi
+fi
+
if [ -n "$SLX_GENERATE_FSTAB_SCRIPT" ]; then
eval "$SLX_GENERATE_FSTAB_SCRIPT"
else
echo "" > "$NEWROOT/etc/fstab"
fi
+
+return $ret