diff options
| author | Tails developers <amnesia@boum.org> | 2012-12-07 22:27:51 +0100 |
|---|---|---|
| committer | Daniel Baumann <daniel@debian.org> | 2012-12-07 22:28:42 +0100 |
| commit | 77dab1cb394c5fc2b9a848c6297d24f65a3b8259 (patch) | |
| tree | 3fa6434d6661b73b1440403a79cd0d880b21c352 /scripts/boot/9990-overlay.sh | |
| parent | ab81e974b4db130530fe752350559ec65bc28e7b (diff) | |
| download | live-boot-77dab1cb394c5fc2b9a848c6297d24f65a3b8259.tar.gz live-boot-77dab1cb394c5fc2b9a848c6297d24f65a3b8259.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 acb2e91..b54a2da 100755 --- a/scripts/boot/9990-overlay.sh +++ b/scripts/boot/9990-overlay.sh @@ -373,6 +373,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 @@ -382,7 +405,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="" @@ -399,28 +422,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 |
