blob: 78410fceb9e7a6ea1857df8352bf12b96f21214e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/bin/bash
type emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh # $NEWROOT
source "/etc/openslx"
cnt=0
while ! [ -b "$SLX_DNBD3_DEVICE_COW" ] \
|| ! [ "$( blockdev --getsize64 "$SLX_DNBD3_DEVICE_COW" 2> /dev/null )" -gt 0 ]; do
(( ++cnt > 20 )) && break
(( cnt % 5 == 0 )) && echo "Waiting for block device...."
usleep 100000
(( cnt > 10 )) && udevadm trigger && udevadm settle
done
ret=99
if [ -n "$SLX_MOUNT_ROOT_OPTIONS" ]; then
# Always prefer mount options mandated by server
echo "Mounting with provided options: $SLX_MOUNT_ROOT_OPTIONS"
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
echo "Trying optimized ext4 mount options..."
mount -t ext4 "$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...
echo "Trying default mount with no options..."
mount "$SLX_DNBD3_DEVICE_COW" "$NEWROOT"
ret=$?
fi
fi
exit $ret
|