diff options
author | jandob | 2015-11-26 18:58:50 +0100 |
---|---|---|
committer | jandob | 2015-11-26 18:58:50 +0100 |
commit | 2e48ea98e8705343518d6e018d0a935463715939 (patch) | |
tree | b4fcd03afb4a739243c4d4ff049a9f1648c1b2ff /builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh | |
parent | Merge branch 'master' of git.openslx.org:openslx-ng/systemd-init (diff) | |
download | systemd-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-x | builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh | 33 |
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" |