blob: ed00b5ded7892b9a0fc118976d8a128632dba0c3 (
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#!/usr/bin/env bash
#
# Hook to generate stage4's fstab entries for persistent partitions
#
# Persistent identifiers (MBR types, GPT partition labels)
# are expected to be specified in the OpenSLX config
# as 'SLX_PERSISTENT_DEVICE_IDENTIFIER' and their filesystem
# as 'SLX_PERSISTENT_DEVICE_FILESYSTEM', e.g ext4 or xfs.
# If not specified, will default to 'auto' but will not
# active systemd's features 'x-systemd.makefs' and 'x-systemd.growfs'
. /etc/openslx
type -p emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh
# NOTE: systemd makes the mount point path automatically.
# if multiple exists, take the biggest one (first in the list)
if [ -n "$SLX_PERSISTENT_DEVICE_IDENTIFIER" ]; then
declare -a persistent_dev_list
for persistent_dev in \
$(get_partitions_by_id ${SLX_PERSISTENT_DEVICE_IDENTIFIER//,/ /}); do
[ -z "$persistent_dev" ] && continue
persistent_dev_list+=("$persistent_dev")
done
if [ "${#persistent_dev[@]}" -gt 0 ]; then
if [ "${#persistent_dev[@]}" -gt 1 ]; then
warn "$0: More than one persistent device found."
warn "$0: Will use the biggest one: ${persistent_dev[0]}"
fi
persistent_dev_systemd_name="$( tr '/' '-' <<< ${persistent_dev[0]:1})"
persistent_mount_opts="nofail"
if [ -n "$SLX_PERSISTENT_DEVICE_FILESYSTEM" ]; then
#persistent_mount_opts+=",x-systemd.requires=ensure-fs@${persistent_dev_systemd_name}"
persistent_mount_opts+=",x-systemd.after=ensure-fs@${persistent_dev_systemd_name}"
fi
(
echo -ne "${persistent_dev[0]}\t"
echo -ne "${SLX_PERSISTENT_DEVICE_MOUNT_POINT:-/opt/openslx/persistent}\t"
echo -ne "${SLX_PERSISTENT_DEVICE_FILESYSTEM:-auto}\t"
echo -ne "${persistent_mount_opts}\t0\t2"
) >> "$NEWROOT/etc/fstab"
# drop-in to create filesystem if needed and
#persistent_dev_systemd_name="$( tr '/' '-' <<< ${persistent_dev[0]:1})"
#mkdir -p "$NEWROOT/etc/systemd/system/${persistent_dev_systemd_name}"
#cat <<- EOF > "$NEWROOT"
#EOF
else
warn "$0: No device with ID '$SLX_PERSISTENT_DEVICE_IDENTIFIER' found."
fi
fi
true
|