summaryrefslogtreecommitdiffstats
path: root/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
diff options
context:
space:
mode:
authorjandob2015-11-26 18:58:50 +0100
committerjandob2015-11-26 18:58:50 +0100
commit2e48ea98e8705343518d6e018d0a935463715939 (patch)
treeb4fcd03afb4a739243c4d4ff049a9f1648c1b2ff /builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
parentMerge branch 'master' of git.openslx.org:openslx-ng/systemd-init (diff)
downloadsystemd-init-2e48ea98e8705343518d6e018d0a935463715939.tar.gz
systemd-init-2e48ea98e8705343518d6e018d0a935463715939.tar.xz
systemd-init-2e48ea98e8705343518d6e018d0a935463715939.zip
add persistent storage support
Diffstat (limited to 'builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh')
-rwxr-xr-xbuilder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh33
1 files changed, 24 insertions, 9 deletions
diff --git a/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh b/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
index 9dfe5e3e..6fe86d12 100755
--- a/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
+++ b/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
@@ -29,19 +29,34 @@ systemd-preserve-process-marker qemu-nbd --connect="$nbd_device" \
"$SLX_DNBD3_DEVICE" --read-only
local read_only_partition="$(utils.create_partition_via_offset "$nbd_device" \
"$SLX_SYSTEM_PARTITION_LABEL")"
+
# Make read-only partition writable.
-# TODO implement persistent available indicator.
+## detect partition for persistent storage
+local persistent_device=$(utils.find_block_device \
+ '$SLX_PERSISTENT_PARTITION_PATTERN_LABEL_UUID_TYPE')
+local tmp_device=$(utils.find_block_device \
+ '$SLX_TMP_PARTITION_PATTERN_LABEL_UUID_TYPE')
+if [ -n $tmp_device ]; then
+ mount -t auto "$tmp_device" $NEWROOT/tmp
+fi
+
local persistent="N" # 'P' for persistent storage, 'N' for not persistent
-if true; then
- modprobe brd max_part=1 rd_size=524288
- local writable_device="/dev/ram0"
-else
- # Use next free loop device.
- local writable_device="$(losetup -f)"
- dd if=/dev/zero of=persistent_storage.img bs=1k count=1000
- losetup "$writable_device" persistent_storage.img
+local writable_device
+if [ -n $persistent_device ]; then
+ writable_device=$persistent_device
persistent="P"
+else
+ modprobe brd max_part=1 rd_size=$SLX_RAMDISK_SIZE
+ writable_device="/dev/ram0"
+ persistent="N"
fi
+
+# persistent storage on a filesystem (e.g. usb stick)
+# writable_device="$(losetup -f)"
+#dd if=/dev/zero of=persistent_storage.img bs=1k count=1000
+#losetup "$writable_device" persistent_storage.img
+#persistent="P"
+
local partition_size="$(blockdev --getsz "$read_only_partition")"
local writable_partition_name="root"
local chunksize="1"