diff options
| author | Tails developers <amnesia@boum.org> | 2012-12-07 22:27:51 +0100 |
|---|---|---|
| committer | Daniel Baumann <mail@daniel-baumann.ch> | 2013-05-06 13:54:13 +0200 |
| commit | 63a94b2bfcc454b05ead6e06f08363e4f6ac3b71 (patch) | |
| tree | 37a6650530ebd89786d7c33bf86891d2ea3281e8 /scripts/boot/9990-overlay.sh | |
| parent | 2648cbc4fbb19cc4b20bca4b4f3d38d515f130a1 (diff) | |
| download | live-boot-63a94b2bfcc454b05ead6e06f08363e4f6ac3b71.tar.gz live-boot-63a94b2bfcc454b05ead6e06f08363e4f6ac3b71.zip | |
Making the /live to /lib/live move for the persistence code.
Exposing /lib/live/mount/persistence in user-space is highly relevant
for the (soon-to-come) tool for activating persistence post-initramfs.
We want to use the same persistence code for both scenarios, and avoid
using different cases for them, so we make it only use /lib/live.
Similarly we also make sure that persistence modes using unions use
the same copy-on-write dir or "overlay" (i.e. /lib/live/mount/overlay)
in order to make them work as intended.
Diffstat (limited to 'scripts/boot/9990-overlay.sh')
| -rwxr-xr-x | scripts/boot/9990-overlay.sh | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/scripts/boot/9990-overlay.sh b/scripts/boot/9990-overlay.sh index e8e00b6..b586a47 100755 --- a/scripts/boot/9990-overlay.sh +++ b/scripts/boot/9990-overlay.sh @@ -361,6 +361,29 @@ setup_unionfs () esac done + # move all /live mountpoints that the custom persistence + # system depends on into /lib/live on the root filesystem + for _DIRECTORY in rootfs + do + if [ -d "/live/${_DIRECTORY}" ] + then + mkdir -p "${rootmnt}/lib/live/mount/${_DIRECTORY}" + + for _MOUNT in $(ls /live/${_DIRECTORY}) + do + mkdir -p "${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" + mount -o move "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" > /dev/null 2>&1 || \ + mount -o bind "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" || \ + log_warning_msg "W: failed to mount /live/${_DIRECTORY}/${_MOUNT} to ${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" + done + fi + done + + mkdir -p "${rootmnt}/lib/live/mount/overlay" + mount -o move /live/overlay "${rootmnt}/lib/live/mount/overlay" > /dev/null 2>&1 || \ + mount -o bind /live/overlay "${rootmnt}/lib/live/mount/overlay" || \ + log_warning_msg "W: failed to mount /live/overlay to ${rootmnt}/lib/live/mount/overlay" + # Adding custom persistence if [ -n "${PERSISTENCE}" ] && [ -z "${NOPERSISTENCE}" ] then @@ -370,7 +393,7 @@ setup_unionfs () # Gather information about custom mounts from devies detected as overlays get_custom_mounts ${custom_mounts} ${overlay_devices} - [ -n "${DEBUG}" ] && cp ${custom_mounts} "/live/persistence" + [ -n "${DEBUG}" ] && cp ${custom_mounts} "/lib/live/mount/persistence" # Now we do the actual mounting (and symlinking) local used_overlays="" @@ -387,28 +410,6 @@ setup_unionfs () done fi - # move all mountpoints to root filesystem - for _DIRECTORY in rootfs persistence - do - if [ -d "/live/${_DIRECTORY}" ] - then - mkdir -p "${rootmnt}/lib/live/mount/${_DIRECTORY}" - - for _MOUNT in $(ls /live/${_DIRECTORY}) - do - mkdir -p "${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" - mount -o move "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" > /dev/null 2>&1 || \ - mount -o bind "/live/${_DIRECTORY}/${_MOUNT}" "${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" || \ - log_warning_msg "W: failed to mount /live/${_DIRECTORY}/${_MOUNT} to ${rootmnt}/lib/live/mount/${_DIRECTORY}/${_MOUNT}" - done - fi - done - - mkdir -p "${rootmnt}/lib/live/mount/overlay" - mount -o move /live/overlay "${rootmnt}/lib/live/mount/overlay" > /dev/null 2>&1 || \ - mount -o bind /live/overlay "${rootmnt}/lib/live/mount/overlay" || \ - log_warning_msg "W: failed to mount /live/overlay to ${rootmnt}/lib/live/mount/overlay" - # ensure that a potentially stray tmpfs gets removed # otherways, initramfs-tools is unable to remove /live # and fails to boot |
