[SCM] wiki-content branch, master, updated. 9909a7f550e40c204b31ff4d048512337d63fd51

Tails developers amnesia at boum.org
Thu Feb 9 12:26:34 UTC 2012


The following commit has been merged in the master branch:
commit 9909a7f550e40c204b31ff4d048512337d63fd51
Author: Tails developers <amnesia at boum.org>
Date:   Thu Feb 9 13:25:27 2012 +0100

    Option to only make an rw branch of a custom mount persistent.

diff --git a/devel/rfc/persistence.mdwn b/devel/rfc/persistence.mdwn
index da5c7c3..b6ea3dc 100644
--- a/devel/rfc/persistence.mdwn
+++ b/devel/rfc/persistence.mdwn
@@ -63,38 +63,33 @@ mount point.
 ### How to mount persistent media
 
 The type of mounting method to consider for this are, as I can see it,
-bind-mounts and union mounts. I think the latter is the better choice
-for the following reasons:
+bind-mounts and union mounts. Union mounts has some nice properties
+compared to bind-mounts:
 
 * With union mounts we only save the "diff" against the live system,
   and this has the potential to save a lot of disc space on the
-  persistent media (think persistent /usr).
+  persistent media (think persistent /usr + installed packages). It's
+  not so useful for e.g. /home since /home/$USER is dynamically
+  generated during live-config. So this option is only useful if the
+  mount point occupies a lot of space on the read-only filesystem.
 * While we still have to worry about union mounts hiding stuff in the
-  live system, we don't have to worry about it as much. In particular,
-  if a new version of a live system introduces some new directory, it
-  will be visible through the union mount (imagine a persistent /etc
-  and a new configuration file or directory from a new program in a
-  new version of the live system).
-
-I don't think the $UNION type "unionmount" supports making unions of
-two directories (which we require), but OTOH it's not even listed as a
-supported union filesystem in the man page. Is unionmount only there
-for historical reasons? Can we deprecate it?
-
-If we can't deprecate it and really care about supporting custom
-mounts type persistence for all union types we could make live-boot
-fall-back to bind-moumting if unionmount is used. I imagine that would
-make the implementation messier though. And moving from a live system
-where you use bind-mount to one where you use union mount (or vice
-versa) would produce weird results.
-
-On a similar note, switching between unionfs, unionfs-fuse and aufs is
-also problematic since they are not compatible (right?). I don't think
-converting between them is an option either. Likely we'd have to
-restrict a particular persistent media to only use one type of
-union. I suppose the lack of this problem this is the only advantage
-of bind-mounting over union mounting. I still think union mounting is
-preferable though.
+  read-only filesystem, we don't have to worry about it as much as
+  with bind mounts. Any changes in the read-only filesystem will be
+  visible through the union mount unless the user has removed or
+  modified that file, or added a file with the same name as some new
+  file that's introduced in the ro filesystem.
+
+Switching between unionfs, unionfs-fuse and aufs is problematic since
+they are not compatible (right?). I don't think converting between
+them is an option either. Likely we'd have to restrict a particular
+persistent media to only use one type of union. I suppose the lack of
+this problem is the only advantage of bind-mounting over union
+mounting.
+
+Since bind-mounting may be what the user expects (it's what was used
+for home-rw style before) that should be the default, but union
+mounting is available as an option for individual custom mounts (see
+below).
 
 ### Labels
 
@@ -196,8 +191,8 @@ mentioned in the "Snapshots" section needs to be resolved.
 ### Options
 
 Options may be passed as a coma separated list in the second column
-(or the third in case of the "extended syntax") and have the following
-effects:
+(or the third in case of the "extended syntax") for any live.persist
+entry and have the following effects:
 
 * `linkfiles`: Instead of mounting the source on the destination,
   create the directory structure of the source in the destination
@@ -212,6 +207,11 @@ effects:
   is useful when one only need certain files to be persistent and not
   the whole directory they're in, e.g. some dot-files in $HOME's root.
 
+* `union`: Let the source on the persistent media be an rw branch of a
+  union so only the *changes* are stored persistently. This can
+  potentially reduce disk usage, and will not hide files added to the
+  read-only media. This is not supported with `union=unionmount`.
+
 ### Missing sources and destinations
 
 An interesting issue is what to do if the mount source on the

-- 
wiki-content



More information about the debian-live-changes mailing list