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 | |
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')
-rwxr-xr-x | builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh | 2 | ||||
-rwxr-xr-x | builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh | 33 |
2 files changed, 25 insertions, 10 deletions
diff --git a/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh b/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh index 0f4b24f2..4930c94a 100755 --- a/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh +++ b/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh @@ -13,7 +13,7 @@ for host in ${SLX_SERVER}; do done IFS="$IFS_backup" if [[ $return_code != 0 ]]; then - warn "Downloading OpenSLX configuration file from all server in \"${SLX_SERVER}\" in location \"${SLX_SERVER_BASE}${configuration_file_name}\" failed. Return code: $return_code" + warn "Downloading OpenSLX configuration file from any of the servers \"${SLX_SERVER}\" at location \"${SLX_SERVER_BASE}${configuration_file_name}\" failed. Return code: $return_code" emergency_shell -n "$0" return 1 fi 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" |