summaryrefslogtreecommitdiffstats
path: root/builder/dnbd3-qcow2-rootfs/hooks/pre-pivot/mount-tmp.sh
blob: 3e702064b5b5feb692808d9f8bd2b52e15edab94 (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
# This script only checks if we found a usable partition for the
# future /tmp. The discovery of that partition is done by udev during
# the initqueue. If a valid partition is found (either GPT with the label
# OPENSLX_TMP or MBR with the type 0x44) its path will be written to
# /tmp/openslx.tmpdisk
OPENSLX_TMP_DISK_FLAG="/tmp/openslx.disk.tmp"

if [ ! -e "$OPENSLX_TMP_DISK_FLAG" ]; then
	warn "'$OPENSLX_TMP_DISK_FLAG' not found!"
	warn "Systemd will manage $NEWROOT/tmp on its own."
	# no partition for the future /tmp found, just
	# let systemd manage it then (probably a tmpfs)
	return 1
fi

# in /tmp/openslx.disk.tmp is the name of the device
# to mount as /tmp in the real system
# meaning we need to mount it to /sysroot/tmp here.

OPENSLX_TMP_DISK_DEV="$(cat $OPENSLX_TMP_DISK_FLAG)"

# sanity check: is the content a block device?
if [ ! -b "$OPENSLX_TMP_DISK_DEV" ]; then
	warn "'$OPENSLX_TMP_DISK_DEV' appears not to be a block device!"
	warn "Systemd will manage $NEWROOT/tmp on its own."
	return 1
fi

# all good, keep on
if ! mount -t auto "$OPENSLX_TMP_DISK_DEV" $NEWROOT/tmp; then
	# something else went wrong :(
	warn "Mounting '$OPENSLX_TMP_DISK_DEV' to '$NEWROOT/tmp' failed with: $!"
	warn "Systemd will manage $NEWROOT/tmp on its own."
	return 1
fi

# still here? mount worked wohoo
# set permissions
chmod a+rwxt $NEWROOT/tmp
return 0