Merge branch 'debian'
authorChristian Hofstaedtler <ch@grml.org>
Tue, 6 Dec 2011 20:40:44 +0000 (21:40 +0100)
committerChristian Hofstaedtler <ch@grml.org>
Tue, 6 Dec 2011 20:40:44 +0000 (21:40 +0100)
Conflicts:
debian/changelog
debian/control
debian/rules

19 files changed:
Makefile
VERSION
bin/live-snapshot
debian/changelog
debian/control
debian/live-boot-grml.init
debian/rules
hooks/live
manpages/de/live-boot.de.7
manpages/de/live-snapshot.de.1
manpages/en/live-boot.7
manpages/en/live-snapshot.1
manpages/po/de/live-boot.7.po
manpages/po/de/live-snapshot.1.po
manpages/pot/live-boot.7.pot
manpages/pot/live-snapshot.1.pot
scripts/live
scripts/live-bottom/10validateroot [new file with mode: 0755]
scripts/live-helpers

index a2ab1b9..ec67501 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,7 @@ install:
 uninstall:
        # Uninstalling executables
        rm -f $(DESTDIR)/sbin/live-snapshot $(DESTDIR)/sbin/live-swapfile
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/sbin || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/sbin > /dev/null 2>&1 || true
 
        rm -rf $(DESTDIR)/usr/share/live-boot
 
@@ -86,18 +86,18 @@ uninstall:
        rm -rf $(DESTDIR)/usr/share/initramfs-tools/scripts/live*
        rm -f $(DESTDIR)/usr/share/initramfs-tools/scripts/local-top/live
 
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/hooks || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/scripts/local-top || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/scripts || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/hooks > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/scripts/local-top > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/scripts > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true
 
        # Uninstalling docs
        rm -rf $(DESTDIR)/usr/share/doc/live-boot
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/doc || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/doc > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true
 
        # Uninstalling manpages
        for MANPAGE in manpages/en/*; \
@@ -117,15 +117,15 @@ uninstall:
 
        for SECTION in $(ls manpages/en/* | awk -F. '{ print $2 }'); \
        do \
-               rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/man$${SECTION} || true; \
-               rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/*/man$${SECTION} || true; \
+               rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/man$${SECTION} > /dev/null 2>&1 || true; \
+               rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man/*/man$${SECTION} > /dev/null 2>&1 || true; \
        done
 
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/man > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true
 
-       rmdir --ignore-fail-on-non-empty $(DESTDIR) || true
+       rmdir --ignore-fail-on-non-empty $(DESTDIR) > /dev/null 2>&1 || true
 
 clean:
        @echo "Nothing to clean."
diff --git a/VERSION b/VERSION
index 9ae56c3..7d277db 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.0~a19
+3.0~a24-1
index 82addab..ca495fb 100755 (executable)
@@ -409,6 +409,13 @@ Do_filelist ()
 Do_snapshot ()
 {
        TMP_FILELIST=$(mktemp -p "${SAFE_TMPDIR}" "${TMP_FILELIST}.XXXXXX")
+       if [ -e "${EXCLUDE_LIST}" ]
+       then
+               # Create a TMP filelist removing empty lines (grep -f does not like them)
+               # and comments (for speedup and LST)
+               TMP_EXCLUDE_LIST=$(mktemp -p "${SAFE_TMPDIR}" "${PROGRAM}_excludelist.XXXXXX")
+               grep -v '^#.*$' "${EXCLUDE_LIST}" | grep -v '^ *$' > "${TMP_EXCLUDE_LIST}"
+       fi
 
        case "${SNAP_TYPE}" in
                squashfs)
@@ -420,7 +427,7 @@ Do_snapshot ()
                        if [ -e "${EXCLUDE_LIST}" ]
                        then
                                # Add explicitly excluded files
-                               grep -v '^#.*$' "${EXCLUDE_LIST}" | grep -v '^ *$' >> "${TMP_FILELIST}"
+                               cat "${TMP_EXCLUDE_LIST}" >> "${TMP_FILELIST}"
                        fi
 
                        cd "${OLDPWD}"
@@ -439,12 +446,13 @@ Do_snapshot ()
                        cd "${WORKING_DIR}"
                        if [ -e "${EXCLUDE_LIST}" ]
                        then
+
                                # Convert \0 to \n and tag existing (rare but possible) \n in filenames,
                                # this to let grep -F -v do a proper work in filtering out
                                cat "${TMP_FILELIST}" | \
                                        tr '\n' '\1' | \
                                        tr '\0' '\n' | \
-                                       grep -F -v -f "${EXCLUDE_LIST}" | \
+                                       grep -F -v -f "${TMP_EXCLUDE_LIST}" | \
                                        tr '\n' '\0' | \
                                        tr '\1' '\n' | \
                                        eval $COPY_CMD || exit 1
@@ -468,10 +476,14 @@ Do_snapshot ()
                        ;;
        esac
 
-       if [ -f "${TMP_FILELIST}" ]
-       then
-               rm -f "${TMP_FILELIST}"
-       fi
+       # Remove temporary file lists
+       for filelist in "${TMP_FILELIST}" "${TMP_EXCLUDE_LIST}"
+       do
+               if [ -f "${filelist}" ]
+               then
+                       rm -f "${filelist}"
+               fi
+       done
 }
 
 Clean ()
index 96d42b0..0115e5d 100644 (file)
@@ -1,3 +1,109 @@
+live-boot (3.0~a24-1) unstable; urgency=low
+
+  * Removing quotes from udev path_id command to actually execute the
+    command.
+
+ -- Daniel Baumann <daniel@debian.org>  Sun, 04 Dec 2011 09:58:23 +0100
+
+live-boot (3.0~a23-1) unstable; urgency=low
+
+  [ Tails developers ]
+  * Enabling whiteouts support for aufs.
+
+  [ Daniel Baumann ]
+  * Update udevs path_id changes as of version 174, thanks to Baurzhan
+    Muftakhidinov <baurthefirst@gmail.com> for spotting it.
+
+  [ Tails developers ]
+  * Adding persistent-encryption={none|luks}.
+  * Making persistent-encryption=luks strict.
+  * Making sure dm-crypt is loaded when dealing with LUKS devices.
+  * Adding persistent-storage=TYPE...
+  * Removing now obsolete persistent=* arguments.
+  * Adding persistent-method=METHOD...
+  * Fixing an incorrectly redirected newline.
+  * Clarifying what happens when you don't retry decrypting a device.
+  * Refactoring device scanning in find_{cow_device,files}.
+  * Making use of is_supported_fs in find_cow_devices (like in
+    find_files).
+  * Refactoring overlay and snapshot scanning code.
+  * Fixing a "sh: bad number" when $offset is not passed to
+    setup_loop().
+  * Disabling persistent-encryption=luks if dependencies are
+    unavailable.
+  * Adding persistent-read-only boot parameter.
+  * Changing persistent-encryption to accept a list TYPE... instead.
+  * Updating live-boot man page for persistent-encryption.
+  * Updating live-boot man page for persistent-storage.
+  * Updating live-boot man page for persistent-method.
+  * Updating and rewording live-boot man page for the persistent option.
+  * Making persistent-read-only work for home-rw overlays.
+  * Making persistent-read-only work for live-rw overlays.
+  * Updating live-boot man page for persistent-read-only.
+  * Adding workaround for a busybox bug with grep -w.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 28 Nov 2011 18:26:11 +0100
+
+live-boot (3.0~a22-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Using compression level 9 also for binary packages.
+  * Updating matching in is_nice_device to, amongst others, match for
+    virtio devices.
+  * Include overlayfs modules in initramfs if existing.
+
+  [ Marco Amadori ]
+  * Fix live-snapshot exclude.list handling (Closes: #610337)
+
+  [ Daniel Baumann ]
+  * Sorting overrides in rules alphabetically.
+
+ -- Daniel Baumann <daniel@debian.org>  Fri, 04 Nov 2011 11:37:28 +0100
+
+live-boot (3.0~a21-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Silencing rmdir calls in makefile.
+  * Printing out a warning message in initramfs-tools hook if backend is
+    installed but no live-boot package, exiting early and not breaking
+    update-initramfs (Closes: #639884).
+
+  [ Tails developers ]
+  * Fixing cache_path: cache non-executable libs dependencies as well.
+  * Fixing cache_path: taking into account the three forms of ldd output
+    lines.
+  * Adding a white_listed_devices parameter to find_cow_device and
+    find_files.
+  * Factorizing loops on removable/non-removable devices.
+  * Adding support for persistent-media={removable,removable-usb}.
+  * Silencing umount in case live/image was unmounted already, extracted
+    from a patch by Michael Schierl <schierlm@gmx.de>.
+  * Erroring out in case a "wrong" filesystem was chosen.
+
+  [ Daniel Baumann ]
+  * Using /usr/share/live-boot instead of unreliable
+    /usr/share/doc/live-boot in validateroot bootscript, stripped live
+    systems may or may not carry /usr/share/doc.
+
+ -- Daniel Baumann <daniel@debian.org>  Thu, 08 Sep 2011 21:06:28 +0200
+
+live-boot (3.0~a20-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Updating section for live-boot-doc.
+
+  [ Ben Armstrong ]
+  * Cross-referencing lb_config --bootappend-live.
+
+  [ Daniel Baumann ]
+  * Correcting bootappend-live reference in live-boot manpage.
+  * Applying patch from grml to update forgotten use of live.log with
+    live-boot.log.
+  * Applying reformated patch from Ulrich Dangel <mru@grml.org> to add
+    support for lvm and md devices.
+
+ -- Daniel Baumann <daniel@debian.org>  Thu, 04 Aug 2011 21:20:47 +0200
+
 live-boot (3.0~a19-1+grml.01) grml-testing; urgency=low
 
   * Depend on quilt with a version to quiet lintian
index 58f33c7..4021c30 100644 (file)
@@ -30,6 +30,7 @@ Description: Debian Live - System Boot Scripts
  version to better fit Grml's needs.
 
 Package: live-boot-grml-doc
+Section: doc
 Architecture: all
 Depends: ${misc:Depends}
 Conflicts: live-boot (<< 3.0~a18~), live-boot-doc
index cd2e4cd..5799c44 100644 (file)
@@ -47,15 +47,28 @@ cache_path()
                find "${path}" -type f | xargs cat > /dev/null 2>&1
        elif [ -f "${path}" ]
        then
-               if [ -x "${path}" ]
+               if file -L "${path}" | grep -q 'dynamically linked'
                then
-                       if file -L "${path}" | grep -q 'dynamically linked'
-                       then
-                               for lib in $(ldd "${path}" | awk '{ print $3 }')
-                               do
-                                       cache_path "${lib}"
-                               done
-                       fi
+                       # ldd output can be of three forms:
+                       # 1. linux-vdso.so.1 =>  (0x00007fffe3fb4000)
+                       #    This is a virtual, kernel shared library and we want to skip it
+                       # 2. libc.so.6 => /lib/libc.so.6 (0x00007f5e9dc0c000)
+                       #    We want to cache the third word.
+                       # 3. /lib64/ld-linux-x86-64.so.2 (0x00007f5e9df8b000)
+                       #    We want to cache the first word.
+                       ldd "${path}" | while read line
+                       do
+                               if echo "$line" | grep -qs ' =>  '
+                               then
+                                       continue
+                               elif echo "$line" | grep -qs ' => '
+                               then
+                                       lib=$(echo "${line}" | awk '{ print $3 }')
+                               else
+                                       lib=$(echo "${line}" | awk '{ print $1 }')
+                               fi
+                               cache_path "${lib}"
+                       done
                fi
 
                cat "${path}" >/dev/null 2>&1
index 41a057a..910523b 100755 (executable)
@@ -25,8 +25,11 @@ override_dh_auto_install:
        mkdir -p debian/live-boot-grml-initramfs-tools/usr/share
        mv debian/tmp/usr/share/initramfs-tools debian/live-boot-grml-initramfs-tools/usr/share
 
-override_dh_installinit:
-       dh_installinit -p live-boot-grml --no-restart-on-upgrade --no-start --update-rcd-params='start 89 0 6 .'
+override_dh_builddeb:
+       dh_builddeb -- -Zgzip -z9
 
 override_dh_install:
        dh_install --fail-missing
+
+override_dh_installinit:
+       dh_installinit -p live-boot-grml --no-restart-on-upgrade --no-start --update-rcd-params='start 89 0 6 .'
index 309c26f..b023d4b 100755 (executable)
@@ -42,6 +42,13 @@ fi
 
 # Handling live-boot
 
+if [ ! -e /usr/share/live-boot ]
+then
+       echo "W: live-boot-initramfs-tools (backend) installed without live-boot,"
+       echo "W: this initramfs will *NOT* have live support."
+       exit 0
+fi
+
 [ "${QUIET}" ] || echo -n " "core
 # Configuration
 if [ -e /usr/share/live-boot/languagelist ]
@@ -134,8 +141,9 @@ manual_add_modules squashfs
 manual_add_modules sqlzma
 manual_add_modules unlzma
 
-# Filesystem: aufs/unionfs
+# Filesystem: aufs/overlayfs/unionfs
 manual_add_modules aufs
+manual_add_modules overlayfs
 manual_add_modules unionfs
 
 # Filesystem: unionfs-fuse
index e8ec318..9cd2415 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 7 13.07.2011 3.0~a19 "Debian Live Projekt"
+.TH LIVE\-BOOT 7 04.12.2011 3.0~a24\-1 "Debian Live Projekt"
 
 .SH NAME
 \fBlive\-boot\fP \- System Boot Skripte
@@ -27,6 +27,9 @@ aufs, for Debian like systems to boot from.
 .SH KONFIGURATION
 \fBlive\-boot\fP kann durch Boot Parameter oder durch Konfigurationsdateien
 konfiguriert werden.
+.PP
+To configure the live\-boot parameters used by default in a live image, see
+the \-\-bootappend\-live option in the \fIlb_config\fP(1) manual page.
 
 .SS "Kernel Parameter"
 \fBlive\-boot\fP ist nur dann aktiv, wenn 'boot=live' als Kernel Parameter
@@ -169,25 +172,47 @@ default of mount applies (currently 50% of available RAM). Note that this
 option has no currently no effect when booting with toram.
 .IP \fBswapon\fP 4
 This parameter enables usage of local swap partitions.
-.IP \fBpersistent\fP[={nofiles|cryptsetup}] 4
-live\-boot will look for persistent and snapshot partitions or files labeled
-"live\-rw", "home\-rw", and files called "live\-sn*", "home\-sn*" and will try
-to, in order: mount as /cow the first, mount the second in /home, and just
-copy the contents of the latter in appropriate locations
-(snapshots). Snapshots will be tried to be updated on reboot/shutdown. Look
-at live\-snapshot(1) for more informations.
-.br
-If "nofiles" is specified, only filesystems with matching labels will be
-searched; no filesystems will be traversed looking for archives or image
-files. This results in shorter boot times.
-.br
-If "cryptsetup" is specified, filesystems stored on Luks\-encrypted devices
-will be considered as well as others when searching for a persistence
-filesystem; the user will be prompted for any needed decryption passphrase.
+.IP \fBpersistent\fP 4
+live\-boot will probe filesystems for persistent media. These can either be
+the filesystems themselves, if labeled correctly, or image/archive files, if
+named correctly. Overlays are labeled/named either "live\-rw" or "home\-rw"
+and will be mounted on / or /home, respectively; snapshots are labeled/named
+either "live\-sn" or "home\-sn" and will be extracted into / or /home,
+respectively (see live\-snapshot(1) for more information). Overlays are
+mounted before snapshots are extracted, and for both overlays and snapshots,
+"live\-*" are handled before "home\-*". Overlay image files and snapshot
+archive files have extensions which determines their filesystem or archive
+type, e.g. "live\-rw.ext3" and "\home\-sn.squashfs".
+.IP "\fBpersistent\-encryption\fP=\fITYPE1\fP,\fITYPE2\fP ... \fITYPEn\fP" 4
+This option determines which types of encryption that we allow to be used
+when probing devices for persistent media. If "none" is in the list, we
+allow unencrypted media; if "luks" is in the list, we allow LUKS\-encrypted
+media. Whenever a device containing encrypted media is probed the user will
+be prompted for the passphrase. The default value is "none".
+.IP \fBpersistent\-media\fP={\fIremovable\fP|\fIremovable\-usb\fP} 4
+If you specify the keyword 'removable', live\-boot will try to find
+persistent and snapshot partitions on removable media only. Note that if you
+want to further restrict the media to usb mass storage only, you can use the
+\&'removable\-usb' keyword.
+.IP "\fBpersistent\-method\fP=\fITYPE1\fP,\fITYPE2\fP ... \fITYPEn\fP" 4
+This option determines which types of persistent media we allow. If
+"overlay" is in the list, we consider overlays (i.e. "live\-rw" and
+"home\-rw"); if "snapshot" is in the list, we consider snapshots
+(i.e. "live\-sn" and "home\-sn"). The default is "overlay,snapshot".
 .IP \fBpersistent\-path\fP=\fIPATH\fP 4
 live\-boot will look for persistency files in the root directory of a
 partition, with this parameter, the path can be configured so that you can
 have multiple directories on the same partition to store persistency files.
+.IP \fBpersistent\-read\-only\fP 4
+Filesystem changes are not saved back to persistent media. In particular,
+overlays and netboot NFS mounts are mounted read\-only, and snapshots are not
+resynced on shutdown.
+.IP "\fBpersistent\-storage\fP=\fITYPE1\fP,\fITYPE2\fP ... \fITYPEn\fP" 4
+This option determines which types of persistent storage to consider when
+probing for persistent media. If "filesystem" is in the list, filesystems
+with matching labels will be used; if "file" is in the list, all filesystems
+will be probed for archives and image files with matching filenames. The
+default is "file,filesystem".
 .IP \fBpersistent\-subtext\fP=\fISUFFIX\fP 4
 Add a suffix when searching for the image filenames or partition labels to
 use for the above mentioned persistent feature, the SUFFIX will be added
index 2752275..b934552 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 1 13.07.2011 3.0~a19 "Debian Live Projekt"
+.TH LIVE\-BOOT 1 04.12.2011 3.0~a24\-1 "Debian Live Projekt"
 
 .SH NAME
 \fBlive\-snapshot\fP \- simple script to ease persistence usage
index 4fd5b09..ad5261e 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT 7 2011\-07\-13 3.0~a19 "Debian Live Project"
+.TH LIVE\-BOOT 7 2011\-12\-04 3.0~a24-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-boot\fR \- System Boot Scripts
@@ -14,6 +14,8 @@ At boot time it will look for a (read\-only) media containing a "/live" director
 
 .SH CONFIGURATION
 \fBlive\-boot\fR can be configured through a boot parameter or a configuration file.
+.PP
+To configure the live\-boot parameters used by default in a live image, see the \-\-bootappend\-live option in the \fIlb_config\fR(1) manual page.
 
 .SS Kernel Parameters
 \fBlive\-boot\fR is only activated if 'boot=live' was used as a kernel parameter.
@@ -104,14 +106,20 @@ This tells live-boot not to prompt to eject the CD (when noprompt=cd) or remove
 This parameters allows to set a custom ramdisk size (it's the '\-o size' option of tmpfs mount). By default, there is no ramdisk size set, so the default of mount applies (currently 50% of available RAM). Note that this option has no currently no effect when booting with toram.
 .IP "\fBswapon\fR" 4
 This parameter enables usage of local swap partitions.
-.IP "\fBpersistent\fR[={nofiles|cryptsetup}]" 4
-live\-boot will look for persistent and snapshot partitions or files labeled "live\-rw", "home\-rw", and files called "live\-sn*", "home\-sn*" and will try to, in order: mount as /cow the first, mount the second in /home, and just copy the contents of the latter in appropriate locations (snapshots). Snapshots will be tried to be updated on reboot/shutdown. Look at live\-snapshot(1) for more informations.
-.br
-If "nofiles" is specified, only filesystems with matching labels will be searched; no filesystems will be traversed looking for archives or image files. This results in shorter boot times.
-.br
-If "cryptsetup" is specified, filesystems stored on Luks\-encrypted devices will be considered as well as others when searching for a persistence filesystem; the user will be prompted for any needed decryption passphrase.
+.IP "\fBpersistent\fR" 4
+live\-boot will probe filesystems for persistent media. These can either be the filesystems themselves, if labeled correctly, or image/archive files, if named correctly. Overlays are labeled/named either "live\-rw" or "home\-rw" and will be mounted on / or /home, respectively; snapshots are labeled/named either "live\-sn" or "home\-sn" and will be extracted into / or /home, respectively (see live\-snapshot(1) for more information). Overlays are mounted before snapshots are extracted, and for both overlays and snapshots, "live\-*" are handled before "home\-*". Overlay image files and snapshot archive files have extensions which determines their filesystem or archive type, e.g. "live\-rw.ext3" and "\home\-sn.squashfs".
+.IP "\fBpersistent\-encryption\fR=\fITYPE1\fR,\fITYPE2\fR ... \fITYPEn\fR" 4
+This option determines which types of encryption that we allow to be used when probing devices for persistent media. If "none" is in the list, we allow unencrypted media; if "luks" is in the list, we allow LUKS\-encrypted media. Whenever a device containing encrypted media is probed the user will be prompted for the passphrase. The default value is "none".
+.IP "\fBpersistent\-media\fR={\fIremovable\fR|\fIremovable\-usb\fR}" 4
+If you specify the keyword 'removable', live\-boot will try to find persistent and snapshot partitions on removable media only. Note that if you want to further restrict the media to usb mass storage only, you can use the 'removable\-usb' keyword.
+.IP "\fBpersistent\-method\fR=\fITYPE1\fR,\fITYPE2\fR ... \fITYPEn\fR" 4
+This option determines which types of persistent media we allow. If "overlay" is in the list, we consider overlays (i.e. "live\-rw" and "home\-rw"); if "snapshot" is in the list, we consider snapshots (i.e. "live\-sn" and "home\-sn"). The default is "overlay,snapshot".
 .IP "\fBpersistent\-path\fR=\fIPATH\fR" 4
 live\-boot will look for persistency files in the root directory of a partition, with this parameter, the path can be configured so that you can have multiple directories on the same partition to store persistency files.
+.IP "\fBpersistent\-read\-only\fR" 4
+Filesystem changes are not saved back to persistent media. In particular, overlays and netboot NFS mounts are mounted read-only, and snapshots are not resynced on shutdown.
+.IP "\fBpersistent\-storage\fR=\fITYPE1\fR,\fITYPE2\fR ... \fITYPEn\fR" 4
+This option determines which types of persistent storage to consider when probing for persistent media. If "filesystem" is in the list, filesystems with matching labels will be used; if "file" is in the list, all filesystems will be probed for archives and image files with matching filenames. The default is "file,filesystem".
 .IP "\fBpersistent\-subtext\fR=\fISUFFIX\fR" 4
 Add a suffix when searching for the image filenames or partition labels to use for the above mentioned persistent feature, the SUFFIX will be added after a dash (e.g.: "live-sn" would transform to "live-sn-SUFFIX"). This is handy to test multiple live-boot based live-systems with different persistent storage choices.
 .IP "{\fBpreseed/file\fR|\fBfile\fR}=\fIFILE\fR" 4
index 953c383..02c0545 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT 1 2011\-07\-13 3.0~a19 "Debian Live Project"
+.TH LIVE\-BOOT 1 2011\-12\-04 3.0~a24-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-snapshot\fR \- simple script to ease persistence usage
index 2d6e827..c424b22 100644 (file)
@@ -4,8 +4,8 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: live-boot 3.0~a19\n"
-"POT-Creation-Date: 2011-07-13 10:28+0300\n"
+"Project-Id-Version: live-boot 3.0~a22-1\n"
+"POT-Creation-Date: 2011-12-04 09:58+0100\n"
 "PO-Revision-Date: 2010-05-24 12:34+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -24,14 +24,14 @@ msgstr "LIVE-BOOT"
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-07-13"
-msgstr "13.07.2011"
+msgid "2011-12-04"
+msgstr "04.12.2011"
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a19"
-msgstr "3.0~a19"
+msgid "3.0~a24-1"
+msgstr "3.0~a24-1"
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
@@ -99,14 +99,21 @@ msgstr ""
 "B<live-boot> kann durch Boot Parameter oder durch Konfigurationsdateien "
 "konfiguriert werden."
 
+#. type: Plain text
+#: en/live-boot.7:19
+msgid ""
+"To configure the live-boot parameters used by default in a live image, see "
+"the --bootappend-live option in the I<lb_config>(1) manual page."
+msgstr ""
+
 #. type: SS
-#: en/live-boot.7:18
+#: en/live-boot.7:20
 #, no-wrap
 msgid "Kernel Parameters"
 msgstr "Kernel Parameter"
 
 #. type: Plain text
-#: en/live-boot.7:20
+#: en/live-boot.7:22
 msgid ""
 "B<live-boot> is only activated if 'boot=live' was used as a kernel parameter."
 msgstr ""
@@ -114,20 +121,20 @@ msgstr ""
 "benutzt wird."
 
 #. type: Plain text
-#: en/live-boot.7:22
+#: en/live-boot.7:24
 msgid ""
 "In addition, there are some more boot parameters to influence the behaviour, "
 "see below."
 msgstr ""
 
 #. type: SS
-#: en/live-boot.7:23
+#: en/live-boot.7:25
 #, no-wrap
 msgid "Configuration Files"
 msgstr "Konfigurationsdateien"
 
 #. type: Plain text
-#: en/live-boot.7:25
+#: en/live-boot.7:27
 msgid ""
 "B<live-boot> can be configured (but not activated) through configuration "
 "files. Those files can be placed either in the root filesystem itself (/etc/"
@@ -136,25 +143,25 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:26 en/live-snapshot.1:20
+#: en/live-boot.7:28 en/live-snapshot.1:20
 #, no-wrap
 msgid "OPTIONS"
 msgstr "OPTIONEN"
 
 #.  FIXME
 #. type: Plain text
-#: en/live-boot.7:29
+#: en/live-boot.7:31
 msgid "B<live-boot> currently features the following parameters."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:29
+#: en/live-boot.7:31
 #, no-wrap
 msgid "B<access>=I<ACCESS>"
 msgstr "B<access>=I<ACCESS>"
 
 #. type: Plain text
-#: en/live-boot.7:31
+#: en/live-boot.7:33
 msgid ""
 "Set the accessibility level for physically or visually impared users. ACCESS "
 "must be one of v1, v2, v3, m1, or m2. v1=lesser visual impairment, "
@@ -163,53 +170,53 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:31
+#: en/live-boot.7:33
 #, no-wrap
 msgid "B<console>=I<TTY,SPEED>"
 msgstr "B<console>=I<TTY,SPEED>"
 
 #. type: Plain text
-#: en/live-boot.7:33
+#: en/live-boot.7:35
 msgid ""
 "Set the default console to be used with the \"live-getty\" option. Example: "
 "\"console=ttyS0,115200\""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:33
+#: en/live-boot.7:35
 #, no-wrap
 msgid "B<debug>"
 msgstr "B<debug>"
 
 #. type: Plain text
-#: en/live-boot.7:35
+#: en/live-boot.7:37
 msgid "Makes initramfs boot process more verbose."
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:37
+#: en/live-boot.7:39
 msgid "Use: debug=1"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:39
+#: en/live-boot.7:41
 msgid "Without setting debug to a value the messages may not be shown."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:39
+#: en/live-boot.7:41
 #, no-wrap
 msgid "B<fetch>=I<URL>"
 msgstr "B<fetch>=I<URL>"
 
 #. type: IP
-#: en/live-boot.7:40
+#: en/live-boot.7:42
 #, no-wrap
 msgid "B<httpfs>=I<URL>"
 msgstr "B<httpfs>=I<URL>"
 
 #. type: Plain text
-#: en/live-boot.7:48
+#: en/live-boot.7:50
 msgid ""
 "Another form of netboot by downloading a squashfs image from a given url.  "
 "The fetch method copies the image to ram and the httpfs method uses fuse and "
@@ -221,24 +228,24 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:50
+#: en/live-boot.7:52
 msgid ""
 "Due to current limitations in busyboxs wget and DNS resolution, an URL can "
 "not contain a hostname but an IP only."
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:52
+#: en/live-boot.7:54
 msgid "Not working: http://example.com/path/to/your_filesystem.squashfs"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:54
+#: en/live-boot.7:56
 msgid "Working: http://1.2.3.4/path/to/your_filesystem.squashfs"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:56
+#: en/live-boot.7:58
 msgid ""
 "Also note that therefore it's currently not possible to fetch an image from "
 "a namebased virtualhost of an httpd if it is sharing the ip with the main "
@@ -246,18 +253,18 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:58
+#: en/live-boot.7:60
 msgid "You may also use the live iso image in place of the squashfs image."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:58
+#: en/live-boot.7:60
 #, no-wrap
 msgid "B<iscsi>=I<server-ip[,server-port];target-name>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:60
+#: en/live-boot.7:62
 msgid ""
 "Boot from an iSCSI target that has an iso or disk live image as one of its "
 "LUNs. The specified target is searched for a LUN which looks like a live "
@@ -266,12 +273,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:62
+#: en/live-boot.7:64
 msgid "# The target-name you specify in the iscsi= parameter"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:67
+#: en/live-boot.7:69
 #, no-wrap
 msgid ""
 "Target E<lt>target-nameE<gt>\n"
@@ -281,26 +288,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:67
+#: en/live-boot.7:69
 #, no-wrap
 msgid "B<fromiso>=I</PATH/TO/IMAGE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:69
+#: en/live-boot.7:71
 msgid ""
 "Allows to use a filesystem from within an iso image that's available on live-"
 "media."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:69
+#: en/live-boot.7:71
 #, no-wrap
 msgid "B<ignore_uuid>"
 msgstr "B<ignore_uuid>"
 
 #. type: Plain text
-#: en/live-boot.7:71
+#: en/live-boot.7:73
 msgid ""
 "Do not check that any UUID embedded in the initramfs matches the discovered "
 "medium. live-boot may be told to generate a UUID by setting "
@@ -308,13 +315,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:71
+#: en/live-boot.7:73
 #, no-wrap
 msgid "B<integrity-check>"
 msgstr "B<integrity-check>"
 
 #. type: Plain text
-#: en/live-boot.7:73
+#: en/live-boot.7:75
 msgid ""
 "If specified, an MD5 sum is calculated on the live media during boot and "
 "compared to the value found in md5sum.txt found in the root directory of the "
@@ -322,13 +329,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:73
+#: en/live-boot.7:75
 #, no-wrap
 msgid "B<ip>=[I<DEVICE>]:[I<CLIENT_IP>]:[I<SERVER_IP>]:[I<GATEWAY_IP>]:[I<NETMASK>]:[I<HOSTNAME>]:[I<AUTOCONF>] [,[I<DEVICE>]:[I<CLIENT_IP>]:[I<SERVER_IP>]:[I<GATEWAY_IP>]:[I<NETMASK>]:[I<HOSTNAME>]:[I<AUTOCONF>]]"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:75
+#: en/live-boot.7:77
 msgid ""
 "Let you specify the name(s) and the options of the interface(s) that should "
 "be configured at boot time. Do not specify this if you want to use dhcp "
@@ -338,13 +345,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:75
+#: en/live-boot.7:77
 #, no-wrap
 msgid "B<ip>=[I<frommedia>]"
 msgstr "B<ip>=[I<frommedia>]"
 
 #. type: Plain text
-#: en/live-boot.7:77
+#: en/live-boot.7:79
 msgid ""
 "If this variable is set, dhcp and static configuration are just skipped and "
 "the system will use the (must be) media-preconfigured /etc/network/"
@@ -352,13 +359,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:77
+#: en/live-boot.7:79
 #, no-wrap
 msgid "{B<live-media>|B<bootfrom>}=I<DEVICE>"
 msgstr "{B<live-media>|B<bootfrom>}=I<DEVICE>"
 
 #. type: Plain text
-#: en/live-boot.7:79
+#: en/live-boot.7:81
 msgid ""
 "If you specify one of this two equivalent forms, live-boot will first try to "
 "find this device for the \"/live\" directory where the read-only root "
@@ -367,7 +374,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:81
+#: en/live-boot.7:83
 msgid ""
 "Instead of specifing an actual device name, the keyword 'removable' can be "
 "used to limit the search of acceptable live media to removable type only. "
@@ -376,13 +383,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:81
+#: en/live-boot.7:83
 #, no-wrap
 msgid "{B<live-media-encryption>|B<encryption>}=I<TYPE>"
 msgstr "{B<live-media-encryption>|B<encryption>}=I<TYPE>"
 
 #. type: Plain text
-#: en/live-boot.7:83
+#: en/live-boot.7:85
 msgid ""
 "live-boot will mount the encrypted rootfs TYPE, asking the passphrase, "
 "useful to build paranoid live systems :-). TYPE supported so far are \"aes\" "
@@ -390,13 +397,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:83
+#: en/live-boot.7:85
 #, no-wrap
 msgid "B<live-media-offset>=I<BYTES>"
 msgstr "B<live-media-offset>=I<BYTES>"
 
 #. type: Plain text
-#: en/live-boot.7:85
+#: en/live-boot.7:87
 msgid ""
 "This way you could tell live-boot that your image starts at offset BYTES in "
 "the above specified or autodiscovered device, this could be useful to hide "
@@ -405,13 +412,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:85
+#: en/live-boot.7:87
 #, no-wrap
 msgid "B<live-media-path>=I<PATH>"
 msgstr "B<live-media-path>=I<PATH>"
 
 #. type: Plain text
-#: en/live-boot.7:87
+#: en/live-boot.7:89
 msgid ""
 "Sets the path to the live filesystem on the medium. By default, it is set to "
 "'/live' and you should not change that unless you have customized your media "
@@ -419,26 +426,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:87
+#: en/live-boot.7:89
 #, no-wrap
 msgid "B<live-media-timeout>=I<SECONDS>"
 msgstr "B<live-media-timeout>=I<SECONDS>"
 
 #. type: Plain text
-#: en/live-boot.7:89
+#: en/live-boot.7:91
 msgid ""
 "Set the timeout in seconds for the device specified by \"live-media=\" to "
 "become ready before giving up."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:89
+#: en/live-boot.7:91
 #, no-wrap
 msgid "B<module>=I<NAME>"
 msgstr "B<module>=I<NAME>"
 
 #. type: Plain text
-#: en/live-boot.7:91
+#: en/live-boot.7:93
 msgid ""
 "Instead of using the default optional file \"filesystem.module\" (see below) "
 "another file could be specified without the extension \".module\"; it should "
@@ -446,13 +453,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:91
+#: en/live-boot.7:93
 #, no-wrap
 msgid "B<netboot>[=nfs|cifs]"
 msgstr "B<netboot>[=nfs|cifs]"
 
 #. type: Plain text
-#: en/live-boot.7:93
+#: en/live-boot.7:95
 msgid ""
 "This tells live-boot to perform a network mount. The parameter \"nfsroot="
 "\" (with optional \"nfsopts=\"), should specify where is the location of the "
@@ -460,24 +467,24 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:93
+#: en/live-boot.7:95
 #, no-wrap
 msgid "B<nfsopts>="
 msgstr "B<nfsopts>="
 
 #. type: Plain text
-#: en/live-boot.7:95
+#: en/live-boot.7:97
 msgid "This lets you specify custom nfs options."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:95
+#: en/live-boot.7:97
 #, no-wrap
 msgid "B<nofastboot>"
 msgstr "B<nofastboot>"
 
 #. type: Plain text
-#: en/live-boot.7:97
+#: en/live-boot.7:99
 msgid ""
 "This parameter disables the default disabling of filesystem checks in /etc/"
 "fstab. If you have static filesystems on your harddisk and you want them to "
@@ -485,50 +492,50 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:97
+#: en/live-boot.7:99
 #, no-wrap
 msgid "B<nopersistent>"
 msgstr "B<nopersistent>"
 
 #. type: Plain text
-#: en/live-boot.7:99
+#: en/live-boot.7:101
 msgid ""
 "disables the \"persistent\" feature, useful if the bootloader (like "
 "syslinux) has been installed with persistent enabled."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:99
+#: en/live-boot.7:101
 #, no-wrap
 msgid "B<noprompt>"
 msgstr "B<noprompt>"
 
 #. type: Plain text
-#: en/live-boot.7:101
+#: en/live-boot.7:103
 msgid "Do not prompt to eject the CD or remove the USB flash drive on reboot."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:101
+#: en/live-boot.7:103
 #, no-wrap
 msgid "B<noprompt>=I<TYPE>"
 msgstr "B<noprompt>=I<TYPE>"
 
 #. type: Plain text
-#: en/live-boot.7:103
+#: en/live-boot.7:105
 msgid ""
 "This tells live-boot not to prompt to eject the CD (when noprompt=cd) or "
 "remove the USB flash drive (when noprompt=usb) on reboot."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:103
+#: en/live-boot.7:105
 #, no-wrap
 msgid "B<ramdisk-size>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:105
+#: en/live-boot.7:107
 msgid ""
 "This parameters allows to set a custom ramdisk size (it's the '-o size' "
 "option of tmpfs mount). By default, there is no ramdisk size set, so the "
@@ -537,57 +544,91 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:105
+#: en/live-boot.7:107
 #, no-wrap
 msgid "B<swapon>"
 msgstr "B<swapon>"
 
 #. type: Plain text
-#: en/live-boot.7:107
+#: en/live-boot.7:109
 msgid "This parameter enables usage of local swap partitions."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:107
+#: en/live-boot.7:109
 #, no-wrap
-msgid "B<persistent>[={nofiles|cryptsetup}]"
-msgstr ""
+msgid "B<persistent>"
+msgstr "B<persistent>"
 
 #. type: Plain text
-#: en/live-boot.7:109
+#: en/live-boot.7:111
 msgid ""
-"live-boot will look for persistent and snapshot partitions or files labeled "
-"\"live-rw\", \"home-rw\", and files called \"live-sn*\", \"home-sn*\" and "
-"will try to, in order: mount as /cow the first, mount the second in /home, "
-"and just copy the contents of the latter in appropriate locations "
-"(snapshots). Snapshots will be tried to be updated on reboot/shutdown. Look "
-"at live-snapshot(1) for more informations."
+"live-boot will probe filesystems for persistent media. These can either be "
+"the filesystems themselves, if labeled correctly, or image/archive files, if "
+"named correctly. Overlays are labeled/named either \"live-rw\" or \"home-rw"
+"\" and will be mounted on / or /home, respectively; snapshots are labeled/"
+"named either \"live-sn\" or \"home-sn\" and will be extracted into / or /"
+"home, respectively (see live-snapshot(1) for more information). Overlays are "
+"mounted before snapshots are extracted, and for both overlays and snapshots, "
+"\"live-*\" are handled before \"home-*\". Overlay image files and snapshot "
+"archive files have extensions which determines their filesystem or archive "
+"type, e.g. \"live-rw.ext3\" and \"\\home-sn.squashfs\"."
 msgstr ""
 
-#. type: Plain text
+#. type: IP
 #: en/live-boot.7:111
-msgid ""
-"If \"nofiles\" is specified, only filesystems with matching labels will be "
-"searched; no filesystems will be traversed looking for archives or image "
-"files. This results in shorter boot times."
+#, no-wrap
+msgid "B<persistent-encryption>=I<TYPE1>,I<TYPE2> ... I<TYPEn>"
 msgstr ""
 
 #. type: Plain text
 #: en/live-boot.7:113
 msgid ""
-"If \"cryptsetup\" is specified, filesystems stored on Luks-encrypted devices "
-"will be considered as well as others when searching for a persistence "
-"filesystem; the user will be prompted for any needed decryption passphrase."
+"This option determines which types of encryption that we allow to be used "
+"when probing devices for persistent media. If \"none\" is in the list, we "
+"allow unencrypted media; if \"luks\" is in the list, we allow LUKS-encrypted "
+"media. Whenever a device containing encrypted media is probed the user will "
+"be prompted for the passphrase. The default value is \"none\"."
 msgstr ""
 
 #. type: IP
 #: en/live-boot.7:113
 #, no-wrap
+msgid "B<persistent-media>={I<removable>|I<removable-usb>}"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:115
+msgid ""
+"If you specify the keyword 'removable', live-boot will try to find "
+"persistent and snapshot partitions on removable media only. Note that if you "
+"want to further restrict the media to usb mass storage only, you can use the "
+"'removable-usb' keyword."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:115
+#, no-wrap
+msgid "B<persistent-method>=I<TYPE1>,I<TYPE2> ... I<TYPEn>"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:117
+msgid ""
+"This option determines which types of persistent media we allow. If \"overlay"
+"\" is in the list, we consider overlays (i.e. \"live-rw\" and \"home-rw\"); "
+"if \"snapshot\" is in the list, we consider snapshots (i.e. \"live-sn\" and "
+"\"home-sn\"). The default is \"overlay,snapshot\"."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:117
+#, no-wrap
 msgid "B<persistent-path>=I<PATH>"
 msgstr "B<persistent-path>=I<PATH>"
 
 #. type: Plain text
-#: en/live-boot.7:115
+#: en/live-boot.7:119
 msgid ""
 "live-boot will look for persistency files in the root directory of a "
 "partition, with this parameter, the path can be configured so that you can "
@@ -595,13 +636,43 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:115
+#: en/live-boot.7:119
+#, no-wrap
+msgid "B<persistent-read-only>"
+msgstr "B<persistent-read-only>"
+
+#. type: Plain text
+#: en/live-boot.7:121
+msgid ""
+"Filesystem changes are not saved back to persistent media. In particular, "
+"overlays and netboot NFS mounts are mounted read-only, and snapshots are not "
+"resynced on shutdown."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:121
+#, no-wrap
+msgid "B<persistent-storage>=I<TYPE1>,I<TYPE2> ... I<TYPEn>"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:123
+msgid ""
+"This option determines which types of persistent storage to consider when "
+"probing for persistent media. If \"filesystem\" is in the list, filesystems "
+"with matching labels will be used; if \"file\" is in the list, all "
+"filesystems will be probed for archives and image files with matching "
+"filenames. The default is \"file,filesystem\"."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:123
 #, no-wrap
 msgid "B<persistent-subtext>=I<SUFFIX>"
 msgstr "B<persistent-subtext>=I<SUFFIX>"
 
 #. type: Plain text
-#: en/live-boot.7:117
+#: en/live-boot.7:125
 msgid ""
 "Add a suffix when searching for the image filenames or partition labels to "
 "use for the above mentioned persistent feature, the SUFFIX will be added "
@@ -611,26 +682,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:117
+#: en/live-boot.7:125
 #, no-wrap
 msgid "{B<preseed/file>|B<file>}=I<FILE>"
 msgstr "{B<preseed/file>|B<file>}=I<FILE>"
 
 #. type: Plain text
-#: en/live-boot.7:119
+#: en/live-boot.7:127
 msgid ""
 "A path to a file present on the rootfs could be used to preseed debconf "
 "database."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:119
+#: en/live-boot.7:127
 #, no-wrap
 msgid "B<package/question>=I<VALUE>"
 msgstr "B<package/question>=I<VALUE>"
 
 #. type: Plain text
-#: en/live-boot.7:121
+#: en/live-boot.7:129
 msgid ""
 "All debian installed packages could be preseeded from command-line that way, "
 "beware of blanks spaces, they will interfere with parsing, use a preseed "
@@ -638,26 +709,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:121
+#: en/live-boot.7:129
 #, no-wrap
 msgid "B<quickreboot>"
 msgstr "B<quickreboot>"
 
 #. type: Plain text
-#: en/live-boot.7:123
+#: en/live-boot.7:131
 msgid ""
 "This option causes live-boot to reboot without attempting to eject the media "
 "and without asking the user to remove the boot media."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:123
+#: en/live-boot.7:131
 #, no-wrap
 msgid "B<showmounts>"
 msgstr "B<showmounts>"
 
 #. type: Plain text
-#: en/live-boot.7:125
+#: en/live-boot.7:133
 msgid ""
 "This parameter will make live-boot to show on \"/\" the ro filesystems "
 "(mostly compressed) on \"/live\". This is not enabled by default because "
@@ -666,26 +737,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:125
+#: en/live-boot.7:133
 #, no-wrap
 msgid "B<silent>"
 msgstr "B<silent>"
 
 #. type: Plain text
-#: en/live-boot.7:127
+#: en/live-boot.7:135
 msgid ""
 "If you boot with the normal quiet parameter, live-boot hides most messages "
 "of its own. When adding silent, it hides all."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:127
+#: en/live-boot.7:135
 #, no-wrap
 msgid "B<todisk>=I<DEVICE>"
 msgstr "B<todisk>=I<DEVICE>"
 
 #. type: Plain text
-#: en/live-boot.7:129
+#: en/live-boot.7:137
 msgid ""
 "Adding this parameter, live-boot will try to copy the entire read-only media "
 "to the specified device before mounting the root filesystem. It probably "
@@ -695,13 +766,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:129
+#: en/live-boot.7:137
 #, no-wrap
 msgid "B<toram>"
 msgstr "B<toram>"
 
 #. type: Plain text
-#: en/live-boot.7:131
+#: en/live-boot.7:139
 msgid ""
 "Adding this parameter, live-boot will try to copy the whole read-only media "
 "to the computer's RAM before mounting the root filesystem. This could need a "
@@ -709,14 +780,14 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:131
+#: en/live-boot.7:139
 #, no-wrap
 msgid "B<union>=aufs|unionfs"
 msgstr "B<union>=aufs|unionfs"
 
 #.  FIXME
 #. type: Plain text
-#: en/live-boot.7:134
+#: en/live-boot.7:142
 msgid ""
 "By default, live-boot uses aufs. With this parameter, you can switch to "
 "unionfs."
@@ -724,32 +795,32 @@ msgstr ""
 
 #.  FIXME
 #. type: SH
-#: en/live-boot.7:136
+#: en/live-boot.7:144
 #, no-wrap
 msgid "FILES (old)"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:137 en/live-snapshot.1:43
+#: en/live-boot.7:145 en/live-snapshot.1:43
 #, no-wrap
 msgid "B</etc/live.conf>"
 msgstr "B</etc/live.conf>"
 
 #. type: Plain text
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 msgid ""
 "Some variables can be configured via this config file (inside the live "
 "system)."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 #, no-wrap
 msgid "B<live/filesystem.module>"
 msgstr "B<live/filesystem.module>"
 
 #. type: Plain text
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 msgid ""
 "This optional file (inside the live media) contains a list of white-space or "
 "carriage-return-separated file names corresponding to disk images in the \"/"
@@ -762,13 +833,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 #, no-wrap
 msgid "B</etc/live-persistence.binds>"
 msgstr "B</etc/live-persistence.binds>"
 
 #. type: Plain text
-#: en/live-boot.7:143 en/live-snapshot.1:49
+#: en/live-boot.7:151 en/live-snapshot.1:49
 msgid ""
 "This optional file (which resides in the rootfs system, not in the live "
 "media) is used as a list of directories which not need be persistent: ie. "
@@ -777,7 +848,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:146 en/live-snapshot.1:51
+#: en/live-boot.7:154 en/live-snapshot.1:51
 msgid ""
 "This saves expensive writes and speeds up operations on volatile data such "
 "as web caches and temporary files (like e.g. /tmp and .mozilla) which are "
@@ -786,69 +857,69 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:147 en/live-snapshot.1:42
+#: en/live-boot.7:155 en/live-snapshot.1:42
 #, no-wrap
 msgid "FILES"
 msgstr "DATEIEN"
 
 #. type: IP
-#: en/live-boot.7:148
+#: en/live-boot.7:156
 #, no-wrap
 msgid "B</etc/live/boot.conf>"
 msgstr "B</etc/live/boot.conf>"
 
 #. type: IP
-#: en/live-boot.7:149
+#: en/live-boot.7:157
 #, no-wrap
 msgid "B</etc/live/boot.d/>"
 msgstr "B</etc/live/boot.d/>"
 
 #. type: IP
-#: en/live-boot.7:150
+#: en/live-boot.7:158
 #, no-wrap
 msgid "B<live/boot.conf>"
 msgstr "B<live/boot.conf>"
 
 #. type: IP
-#: en/live-boot.7:151
+#: en/live-boot.7:159
 #, no-wrap
 msgid "B<live/boot.d/>"
 msgstr "B<live/boot.d/>"
 
 #. type: SH
-#: en/live-boot.7:153 en/live-snapshot.1:54
+#: en/live-boot.7:161 en/live-snapshot.1:54
 #, no-wrap
 msgid "SEE ALSO"
 msgstr "SIEHE AUCH"
 
 #. type: Plain text
-#: en/live-boot.7:155
+#: en/live-boot.7:163
 msgid "I<live-snapshot>(1)"
 msgstr "I<live-snapshot>(1)"
 
 #. type: Plain text
-#: en/live-boot.7:157 en/live-snapshot.1:58
+#: en/live-boot.7:165 en/live-snapshot.1:58
 msgid "I<live-build>(7)"
 msgstr "I<live-build>(7)"
 
 #. type: Plain text
-#: en/live-boot.7:159 en/live-snapshot.1:60
+#: en/live-boot.7:167 en/live-snapshot.1:60
 msgid "I<live-config>(7)"
 msgstr "I<live-config>(7)"
 
 #. type: Plain text
-#: en/live-boot.7:161 en/live-snapshot.1:62
+#: en/live-boot.7:169 en/live-snapshot.1:62
 msgid "I<live-tools>(7)"
 msgstr "I<live-tools>(7)"
 
 #. type: SH
-#: en/live-boot.7:162 en/live-snapshot.1:63
+#: en/live-boot.7:170 en/live-snapshot.1:63
 #, no-wrap
 msgid "HOMEPAGE"
 msgstr "HOMEPAGE"
 
 #. type: Plain text
-#: en/live-boot.7:164 en/live-snapshot.1:65
+#: en/live-boot.7:172 en/live-snapshot.1:65
 msgid ""
 "More information about live-boot and the Debian Live project can be found on "
 "the homepage at E<lt>I<http://live.debian.net/>E<gt> and in the manual at "
@@ -859,13 +930,13 @@ msgstr ""
 "unter E<lt>I<http://live.debian.net/manual/>E<gt> gefunden werden."
 
 #. type: SH
-#: en/live-boot.7:165 en/live-snapshot.1:66
+#: en/live-boot.7:173 en/live-snapshot.1:66
 #, no-wrap
 msgid "BUGS"
 msgstr "FEHLER"
 
 #. type: Plain text
-#: en/live-boot.7:167 en/live-snapshot.1:68
+#: en/live-boot.7:175 en/live-snapshot.1:68
 msgid ""
 "Bugs can be reported by submitting a bugreport for the live-boot package in "
 "the Debian Bug Tracking System at E<lt>I<http://bugs.debian.org/>E<gt> or by "
@@ -879,13 +950,13 @@ msgstr ""
 "werden."
 
 #. type: SH
-#: en/live-boot.7:168 en/live-snapshot.1:69
+#: en/live-boot.7:176 en/live-snapshot.1:69
 #, no-wrap
 msgid "AUTHOR"
 msgstr "AUTOR"
 
 #. type: Plain text
-#: en/live-boot.7:169 en/live-snapshot.1:70
+#: en/live-boot.7:177 en/live-snapshot.1:70
 msgid ""
 "live-boot was written by Daniel Baumann E<lt>I<daniel@debian.org>E<gt> for "
 "the Debian project."
index 909a46a..2beba0a 100644 (file)
@@ -4,8 +4,8 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: live-boot 3.0~a19\n"
-"POT-Creation-Date: 2011-07-13 10:28+0300\n"
+"Project-Id-Version: live-boot 3.0~a22-1\n"
+"POT-Creation-Date: 2011-12-04 09:58+0100\n"
 "PO-Revision-Date: 2010-05-24 12:34+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -24,14 +24,14 @@ msgstr "LIVE-BOOT"
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-07-13"
-msgstr "13.07.2011"
+msgid "2011-12-04"
+msgstr "04.12.2011"
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a19"
-msgstr "3.0~a19"
+msgid "3.0~a24-1"
+msgstr "3.0~a24-1"
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
@@ -52,32 +52,32 @@ msgid "DESCRIPTION"
 msgstr "BESCHREIBUNG"
 
 #. type: SH
-#: en/live-boot.7:26 en/live-snapshot.1:20
+#: en/live-boot.7:28 en/live-snapshot.1:20
 #, no-wrap
 msgid "OPTIONS"
 msgstr "OPTIONEN"
 
 #. type: IP
-#: en/live-boot.7:137 en/live-snapshot.1:43
+#: en/live-boot.7:145 en/live-snapshot.1:43
 #, no-wrap
 msgid "B</etc/live.conf>"
 msgstr "B</etc/live.conf>"
 
 #. type: Plain text
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 msgid ""
 "Some variables can be configured via this config file (inside the live "
 "system)."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 #, no-wrap
 msgid "B<live/filesystem.module>"
 msgstr "B<live/filesystem.module>"
 
 #. type: Plain text
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 msgid ""
 "This optional file (inside the live media) contains a list of white-space or "
 "carriage-return-separated file names corresponding to disk images in the \"/"
@@ -90,13 +90,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 #, no-wrap
 msgid "B</etc/live-persistence.binds>"
 msgstr "B</etc/live-persistence.binds>"
 
 #. type: Plain text
-#: en/live-boot.7:143 en/live-snapshot.1:49
+#: en/live-boot.7:151 en/live-snapshot.1:49
 msgid ""
 "This optional file (which resides in the rootfs system, not in the live "
 "media) is used as a list of directories which not need be persistent: ie. "
@@ -105,7 +105,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:146 en/live-snapshot.1:51
+#: en/live-boot.7:154 en/live-snapshot.1:51
 msgid ""
 "This saves expensive writes and speeds up operations on volatile data such "
 "as web caches and temporary files (like e.g. /tmp and .mozilla) which are "
@@ -114,40 +114,40 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:147 en/live-snapshot.1:42
+#: en/live-boot.7:155 en/live-snapshot.1:42
 #, no-wrap
 msgid "FILES"
 msgstr "DATEIEN"
 
 #. type: SH
-#: en/live-boot.7:153 en/live-snapshot.1:54
+#: en/live-boot.7:161 en/live-snapshot.1:54
 #, no-wrap
 msgid "SEE ALSO"
 msgstr "SIEHE AUCH"
 
 #. type: Plain text
-#: en/live-boot.7:157 en/live-snapshot.1:58
+#: en/live-boot.7:165 en/live-snapshot.1:58
 msgid "I<live-build>(7)"
 msgstr "I<live-build>(7)"
 
 #. type: Plain text
-#: en/live-boot.7:159 en/live-snapshot.1:60
+#: en/live-boot.7:167 en/live-snapshot.1:60
 msgid "I<live-config>(7)"
 msgstr "I<live-config>(7)"
 
 #. type: Plain text
-#: en/live-boot.7:161 en/live-snapshot.1:62
+#: en/live-boot.7:169 en/live-snapshot.1:62
 msgid "I<live-tools>(7)"
 msgstr "I<live-tools>(7)"
 
 #. type: SH
-#: en/live-boot.7:162 en/live-snapshot.1:63
+#: en/live-boot.7:170 en/live-snapshot.1:63
 #, no-wrap
 msgid "HOMEPAGE"
 msgstr "HOMEPAGE"
 
 #. type: Plain text
-#: en/live-boot.7:164 en/live-snapshot.1:65
+#: en/live-boot.7:172 en/live-snapshot.1:65
 msgid ""
 "More information about live-boot and the Debian Live project can be found on "
 "the homepage at E<lt>I<http://live.debian.net/>E<gt> and in the manual at "
@@ -158,13 +158,13 @@ msgstr ""
 "unter E<lt>I<http://live.debian.net/manual/>E<gt> gefunden werden."
 
 #. type: SH
-#: en/live-boot.7:165 en/live-snapshot.1:66
+#: en/live-boot.7:173 en/live-snapshot.1:66
 #, no-wrap
 msgid "BUGS"
 msgstr "FEHLER"
 
 #. type: Plain text
-#: en/live-boot.7:167 en/live-snapshot.1:68
+#: en/live-boot.7:175 en/live-snapshot.1:68
 msgid ""
 "Bugs can be reported by submitting a bugreport for the live-boot package in "
 "the Debian Bug Tracking System at E<lt>I<http://bugs.debian.org/>E<gt> or by "
@@ -178,13 +178,13 @@ msgstr ""
 "werden."
 
 #. type: SH
-#: en/live-boot.7:168 en/live-snapshot.1:69
+#: en/live-boot.7:176 en/live-snapshot.1:69
 #, no-wrap
 msgid "AUTHOR"
 msgstr "AUTOR"
 
 #. type: Plain text
-#: en/live-boot.7:169 en/live-snapshot.1:70
+#: en/live-boot.7:177 en/live-snapshot.1:70
 msgid ""
 "live-boot was written by Daniel Baumann E<lt>I<daniel@debian.org>E<gt> for "
 "the Debian project."
index f5177bb..6a56e23 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2011-07-13 10:28+0300\n"
+"POT-Creation-Date: 2011-12-04 09:58+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -25,13 +25,13 @@ msgstr ""
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-07-13"
+msgid "2011-12-04"
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a19"
+msgid "3.0~a24-1"
 msgstr ""
 
 #. type: TH
@@ -96,33 +96,40 @@ msgid ""
 "file."
 msgstr ""
 
+#. type: Plain text
+#: en/live-boot.7:19
+msgid ""
+"To configure the live-boot parameters used by default in a live image, see "
+"the --bootappend-live option in the I<lb_config>(1) manual page."
+msgstr ""
+
 #. type: SS
-#: en/live-boot.7:18
+#: en/live-boot.7:20
 #, no-wrap
 msgid "Kernel Parameters"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:20
+#: en/live-boot.7:22
 msgid ""
 "B<live-boot> is only activated if 'boot=live' was used as a kernel parameter."
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:22
+#: en/live-boot.7:24
 msgid ""
 "In addition, there are some more boot parameters to influence the behaviour, "
 "see below."
 msgstr ""
 
 #. type: SS
-#: en/live-boot.7:23
+#: en/live-boot.7:25
 #, no-wrap
 msgid "Configuration Files"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:25
+#: en/live-boot.7:27
 msgid ""
 "B<live-boot> can be configured (but not activated) through configuration "
 "files. Those files can be placed either in the root filesystem itself (/etc/"
@@ -131,25 +138,25 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:26 en/live-snapshot.1:20
+#: en/live-boot.7:28 en/live-snapshot.1:20
 #, no-wrap
 msgid "OPTIONS"
 msgstr ""
 
 #.  FIXME
 #. type: Plain text
-#: en/live-boot.7:29
+#: en/live-boot.7:31
 msgid "B<live-boot> currently features the following parameters."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:29
+#: en/live-boot.7:31
 #, no-wrap
 msgid "B<access>=I<ACCESS>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:31
+#: en/live-boot.7:33
 msgid ""
 "Set the accessibility level for physically or visually impared users. ACCESS "
 "must be one of v1, v2, v3, m1, or m2. v1=lesser visual impairment, "
@@ -158,53 +165,53 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:31
+#: en/live-boot.7:33
 #, no-wrap
 msgid "B<console>=I<TTY,SPEED>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:33
+#: en/live-boot.7:35
 msgid ""
 "Set the default console to be used with the \"live-getty\" option. Example: "
 "\"console=ttyS0,115200\""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:33
+#: en/live-boot.7:35
 #, no-wrap
 msgid "B<debug>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:35
+#: en/live-boot.7:37
 msgid "Makes initramfs boot process more verbose."
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:37
+#: en/live-boot.7:39
 msgid "Use: debug=1"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:39
+#: en/live-boot.7:41
 msgid "Without setting debug to a value the messages may not be shown."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:39
+#: en/live-boot.7:41
 #, no-wrap
 msgid "B<fetch>=I<URL>"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:40
+#: en/live-boot.7:42
 #, no-wrap
 msgid "B<httpfs>=I<URL>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:48
+#: en/live-boot.7:50
 msgid ""
 "Another form of netboot by downloading a squashfs image from a given url.  "
 "The fetch method copies the image to ram and the httpfs method uses fuse and "
@@ -216,24 +223,24 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:50
+#: en/live-boot.7:52
 msgid ""
 "Due to current limitations in busyboxs wget and DNS resolution, an URL can "
 "not contain a hostname but an IP only."
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:52
+#: en/live-boot.7:54
 msgid "Not working: http://example.com/path/to/your_filesystem.squashfs"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:54
+#: en/live-boot.7:56
 msgid "Working: http://1.2.3.4/path/to/your_filesystem.squashfs"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:56
+#: en/live-boot.7:58
 msgid ""
 "Also note that therefore it's currently not possible to fetch an image from "
 "a namebased virtualhost of an httpd if it is sharing the ip with the main "
@@ -241,18 +248,18 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:58
+#: en/live-boot.7:60
 msgid "You may also use the live iso image in place of the squashfs image."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:58
+#: en/live-boot.7:60
 #, no-wrap
 msgid "B<iscsi>=I<server-ip[,server-port];target-name>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:60
+#: en/live-boot.7:62
 msgid ""
 "Boot from an iSCSI target that has an iso or disk live image as one of its "
 "LUNs. The specified target is searched for a LUN which looks like a live "
@@ -261,12 +268,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:62
+#: en/live-boot.7:64
 msgid "# The target-name you specify in the iscsi= parameter"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:67
+#: en/live-boot.7:69
 #, no-wrap
 msgid ""
 "Target E<lt>target-nameE<gt>\n"
@@ -276,26 +283,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:67
+#: en/live-boot.7:69
 #, no-wrap
 msgid "B<fromiso>=I</PATH/TO/IMAGE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:69
+#: en/live-boot.7:71
 msgid ""
 "Allows to use a filesystem from within an iso image that's available on live-"
 "media."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:69
+#: en/live-boot.7:71
 #, no-wrap
 msgid "B<ignore_uuid>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:71
+#: en/live-boot.7:73
 msgid ""
 "Do not check that any UUID embedded in the initramfs matches the discovered "
 "medium. live-boot may be told to generate a UUID by setting "
@@ -303,13 +310,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:71
+#: en/live-boot.7:73
 #, no-wrap
 msgid "B<integrity-check>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:73
+#: en/live-boot.7:75
 msgid ""
 "If specified, an MD5 sum is calculated on the live media during boot and "
 "compared to the value found in md5sum.txt found in the root directory of the "
@@ -317,13 +324,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:73
+#: en/live-boot.7:75
 #, no-wrap
 msgid "B<ip>=[I<DEVICE>]:[I<CLIENT_IP>]:[I<SERVER_IP>]:[I<GATEWAY_IP>]:[I<NETMASK>]:[I<HOSTNAME>]:[I<AUTOCONF>] [,[I<DEVICE>]:[I<CLIENT_IP>]:[I<SERVER_IP>]:[I<GATEWAY_IP>]:[I<NETMASK>]:[I<HOSTNAME>]:[I<AUTOCONF>]]"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:75
+#: en/live-boot.7:77
 msgid ""
 "Let you specify the name(s) and the options of the interface(s) that should "
 "be configured at boot time. Do not specify this if you want to use dhcp "
@@ -333,13 +340,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:75
+#: en/live-boot.7:77
 #, no-wrap
 msgid "B<ip>=[I<frommedia>]"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:77
+#: en/live-boot.7:79
 msgid ""
 "If this variable is set, dhcp and static configuration are just skipped and "
 "the system will use the (must be) media-preconfigured /etc/network/"
@@ -347,13 +354,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:77
+#: en/live-boot.7:79
 #, no-wrap
 msgid "{B<live-media>|B<bootfrom>}=I<DEVICE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:79
+#: en/live-boot.7:81
 msgid ""
 "If you specify one of this two equivalent forms, live-boot will first try to "
 "find this device for the \"/live\" directory where the read-only root "
@@ -362,7 +369,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:81
+#: en/live-boot.7:83
 msgid ""
 "Instead of specifing an actual device name, the keyword 'removable' can be "
 "used to limit the search of acceptable live media to removable type only. "
@@ -371,13 +378,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:81
+#: en/live-boot.7:83
 #, no-wrap
 msgid "{B<live-media-encryption>|B<encryption>}=I<TYPE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:83
+#: en/live-boot.7:85
 msgid ""
 "live-boot will mount the encrypted rootfs TYPE, asking the passphrase, "
 "useful to build paranoid live systems :-). TYPE supported so far are \"aes\" "
@@ -385,13 +392,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:83
+#: en/live-boot.7:85
 #, no-wrap
 msgid "B<live-media-offset>=I<BYTES>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:85
+#: en/live-boot.7:87
 msgid ""
 "This way you could tell live-boot that your image starts at offset BYTES in "
 "the above specified or autodiscovered device, this could be useful to hide "
@@ -400,13 +407,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:85
+#: en/live-boot.7:87
 #, no-wrap
 msgid "B<live-media-path>=I<PATH>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:87
+#: en/live-boot.7:89
 msgid ""
 "Sets the path to the live filesystem on the medium. By default, it is set to "
 "'/live' and you should not change that unless you have customized your media "
@@ -414,26 +421,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:87
+#: en/live-boot.7:89
 #, no-wrap
 msgid "B<live-media-timeout>=I<SECONDS>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:89
+#: en/live-boot.7:91
 msgid ""
 "Set the timeout in seconds for the device specified by \"live-media=\" to "
 "become ready before giving up."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:89
+#: en/live-boot.7:91
 #, no-wrap
 msgid "B<module>=I<NAME>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:91
+#: en/live-boot.7:93
 msgid ""
 "Instead of using the default optional file \"filesystem.module\" (see below) "
 "another file could be specified without the extension \".module\"; it should "
@@ -441,13 +448,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:91
+#: en/live-boot.7:93
 #, no-wrap
 msgid "B<netboot>[=nfs|cifs]"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:93
+#: en/live-boot.7:95
 msgid ""
 "This tells live-boot to perform a network mount. The parameter \"nfsroot="
 "\" (with optional \"nfsopts=\"), should specify where is the location of the "
@@ -455,24 +462,24 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:93
+#: en/live-boot.7:95
 #, no-wrap
 msgid "B<nfsopts>="
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:95
+#: en/live-boot.7:97
 msgid "This lets you specify custom nfs options."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:95
+#: en/live-boot.7:97
 #, no-wrap
 msgid "B<nofastboot>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:97
+#: en/live-boot.7:99
 msgid ""
 "This parameter disables the default disabling of filesystem checks in /etc/"
 "fstab. If you have static filesystems on your harddisk and you want them to "
@@ -480,50 +487,50 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:97
+#: en/live-boot.7:99
 #, no-wrap
 msgid "B<nopersistent>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:99
+#: en/live-boot.7:101
 msgid ""
 "disables the \"persistent\" feature, useful if the bootloader (like "
 "syslinux) has been installed with persistent enabled."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:99
+#: en/live-boot.7:101
 #, no-wrap
 msgid "B<noprompt>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:101
+#: en/live-boot.7:103
 msgid "Do not prompt to eject the CD or remove the USB flash drive on reboot."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:101
+#: en/live-boot.7:103
 #, no-wrap
 msgid "B<noprompt>=I<TYPE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:103
+#: en/live-boot.7:105
 msgid ""
 "This tells live-boot not to prompt to eject the CD (when noprompt=cd) or "
 "remove the USB flash drive (when noprompt=usb) on reboot."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:103
+#: en/live-boot.7:105
 #, no-wrap
 msgid "B<ramdisk-size>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:105
+#: en/live-boot.7:107
 msgid ""
 "This parameters allows to set a custom ramdisk size (it's the '-o size' "
 "option of tmpfs mount). By default, there is no ramdisk size set, so the "
@@ -532,71 +539,135 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:105
+#: en/live-boot.7:107
 #, no-wrap
 msgid "B<swapon>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:107
+#: en/live-boot.7:109
 msgid "This parameter enables usage of local swap partitions."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:107
+#: en/live-boot.7:109
 #, no-wrap
-msgid "B<persistent>[={nofiles|cryptsetup}]"
+msgid "B<persistent>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:109
+#: en/live-boot.7:111
 msgid ""
-"live-boot will look for persistent and snapshot partitions or files labeled "
-"\"live-rw\", \"home-rw\", and files called \"live-sn*\", \"home-sn*\" and "
-"will try to, in order: mount as /cow the first, mount the second in /home, "
-"and just copy the contents of the latter in appropriate locations "
-"(snapshots). Snapshots will be tried to be updated on reboot/shutdown. Look "
-"at live-snapshot(1) for more informations."
+"live-boot will probe filesystems for persistent media. These can either be "
+"the filesystems themselves, if labeled correctly, or image/archive files, if "
+"named correctly. Overlays are labeled/named either \"live-rw\" or \"home-rw"
+"\" and will be mounted on / or /home, respectively; snapshots are labeled/"
+"named either \"live-sn\" or \"home-sn\" and will be extracted into / or /"
+"home, respectively (see live-snapshot(1) for more information). Overlays are "
+"mounted before snapshots are extracted, and for both overlays and snapshots, "
+"\"live-*\" are handled before \"home-*\". Overlay image files and snapshot "
+"archive files have extensions which determines their filesystem or archive "
+"type, e.g. \"live-rw.ext3\" and \"\\home-sn.squashfs\"."
 msgstr ""
 
-#. type: Plain text
+#. type: IP
 #: en/live-boot.7:111
-msgid ""
-"If \"nofiles\" is specified, only filesystems with matching labels will be "
-"searched; no filesystems will be traversed looking for archives or image "
-"files. This results in shorter boot times."
+#, no-wrap
+msgid "B<persistent-encryption>=I<TYPE1>,I<TYPE2> ... I<TYPEn>"
 msgstr ""
 
 #. type: Plain text
 #: en/live-boot.7:113
 msgid ""
-"If \"cryptsetup\" is specified, filesystems stored on Luks-encrypted devices "
-"will be considered as well as others when searching for a persistence "
-"filesystem; the user will be prompted for any needed decryption passphrase."
+"This option determines which types of encryption that we allow to be used "
+"when probing devices for persistent media. If \"none\" is in the list, we "
+"allow unencrypted media; if \"luks\" is in the list, we allow LUKS-encrypted "
+"media. Whenever a device containing encrypted media is probed the user will "
+"be prompted for the passphrase. The default value is \"none\"."
 msgstr ""
 
 #. type: IP
 #: en/live-boot.7:113
 #, no-wrap
-msgid "B<persistent-path>=I<PATH>"
+msgid "B<persistent-media>={I<removable>|I<removable-usb>}"
 msgstr ""
 
 #. type: Plain text
 #: en/live-boot.7:115
 msgid ""
+"If you specify the keyword 'removable', live-boot will try to find "
+"persistent and snapshot partitions on removable media only. Note that if you "
+"want to further restrict the media to usb mass storage only, you can use the "
+"'removable-usb' keyword."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:115
+#, no-wrap
+msgid "B<persistent-method>=I<TYPE1>,I<TYPE2> ... I<TYPEn>"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:117
+msgid ""
+"This option determines which types of persistent media we allow. If \"overlay"
+"\" is in the list, we consider overlays (i.e. \"live-rw\" and \"home-rw\"); "
+"if \"snapshot\" is in the list, we consider snapshots (i.e. \"live-sn\" and "
+"\"home-sn\"). The default is \"overlay,snapshot\"."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:117
+#, no-wrap
+msgid "B<persistent-path>=I<PATH>"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:119
+msgid ""
 "live-boot will look for persistency files in the root directory of a "
 "partition, with this parameter, the path can be configured so that you can "
 "have multiple directories on the same partition to store persistency files."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:115
+#: en/live-boot.7:119
+#, no-wrap
+msgid "B<persistent-read-only>"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:121
+msgid ""
+"Filesystem changes are not saved back to persistent media. In particular, "
+"overlays and netboot NFS mounts are mounted read-only, and snapshots are not "
+"resynced on shutdown."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:121
+#, no-wrap
+msgid "B<persistent-storage>=I<TYPE1>,I<TYPE2> ... I<TYPEn>"
+msgstr ""
+
+#. type: Plain text
+#: en/live-boot.7:123
+msgid ""
+"This option determines which types of persistent storage to consider when "
+"probing for persistent media. If \"filesystem\" is in the list, filesystems "
+"with matching labels will be used; if \"file\" is in the list, all "
+"filesystems will be probed for archives and image files with matching "
+"filenames. The default is \"file,filesystem\"."
+msgstr ""
+
+#. type: IP
+#: en/live-boot.7:123
 #, no-wrap
 msgid "B<persistent-subtext>=I<SUFFIX>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:117
+#: en/live-boot.7:125
 msgid ""
 "Add a suffix when searching for the image filenames or partition labels to "
 "use for the above mentioned persistent feature, the SUFFIX will be added "
@@ -606,26 +677,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:117
+#: en/live-boot.7:125
 #, no-wrap
 msgid "{B<preseed/file>|B<file>}=I<FILE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:119
+#: en/live-boot.7:127
 msgid ""
 "A path to a file present on the rootfs could be used to preseed debconf "
 "database."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:119
+#: en/live-boot.7:127
 #, no-wrap
 msgid "B<package/question>=I<VALUE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:121
+#: en/live-boot.7:129
 msgid ""
 "All debian installed packages could be preseeded from command-line that way, "
 "beware of blanks spaces, they will interfere with parsing, use a preseed "
@@ -633,26 +704,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:121
+#: en/live-boot.7:129
 #, no-wrap
 msgid "B<quickreboot>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:123
+#: en/live-boot.7:131
 msgid ""
 "This option causes live-boot to reboot without attempting to eject the media "
 "and without asking the user to remove the boot media."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:123
+#: en/live-boot.7:131
 #, no-wrap
 msgid "B<showmounts>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:125
+#: en/live-boot.7:133
 msgid ""
 "This parameter will make live-boot to show on \"/\" the ro filesystems "
 "(mostly compressed) on \"/live\". This is not enabled by default because "
@@ -661,26 +732,26 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:125
+#: en/live-boot.7:133
 #, no-wrap
 msgid "B<silent>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:127
+#: en/live-boot.7:135
 msgid ""
 "If you boot with the normal quiet parameter, live-boot hides most messages "
 "of its own. When adding silent, it hides all."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:127
+#: en/live-boot.7:135
 #, no-wrap
 msgid "B<todisk>=I<DEVICE>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:129
+#: en/live-boot.7:137
 msgid ""
 "Adding this parameter, live-boot will try to copy the entire read-only media "
 "to the specified device before mounting the root filesystem. It probably "
@@ -690,13 +761,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:129
+#: en/live-boot.7:137
 #, no-wrap
 msgid "B<toram>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:131
+#: en/live-boot.7:139
 msgid ""
 "Adding this parameter, live-boot will try to copy the whole read-only media "
 "to the computer's RAM before mounting the root filesystem. This could need a "
@@ -704,14 +775,14 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:131
+#: en/live-boot.7:139
 #, no-wrap
 msgid "B<union>=aufs|unionfs"
 msgstr ""
 
 #.  FIXME
 #. type: Plain text
-#: en/live-boot.7:134
+#: en/live-boot.7:142
 msgid ""
 "By default, live-boot uses aufs. With this parameter, you can switch to "
 "unionfs."
@@ -719,32 +790,32 @@ msgstr ""
 
 #.  FIXME
 #. type: SH
-#: en/live-boot.7:136
+#: en/live-boot.7:144
 #, no-wrap
 msgid "FILES (old)"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:137 en/live-snapshot.1:43
+#: en/live-boot.7:145 en/live-snapshot.1:43
 #, no-wrap
 msgid "B</etc/live.conf>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 msgid ""
 "Some variables can be configured via this config file (inside the live "
 "system)."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 #, no-wrap
 msgid "B<live/filesystem.module>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 msgid ""
 "This optional file (inside the live media) contains a list of white-space or "
 "carriage-return-separated file names corresponding to disk images in the \"/"
@@ -757,13 +828,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 #, no-wrap
 msgid "B</etc/live-persistence.binds>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:143 en/live-snapshot.1:49
+#: en/live-boot.7:151 en/live-snapshot.1:49
 msgid ""
 "This optional file (which resides in the rootfs system, not in the live "
 "media) is used as a list of directories which not need be persistent: ie. "
@@ -772,7 +843,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:146 en/live-snapshot.1:51
+#: en/live-boot.7:154 en/live-snapshot.1:51
 msgid ""
 "This saves expensive writes and speeds up operations on volatile data such "
 "as web caches and temporary files (like e.g. /tmp and .mozilla) which are "
@@ -781,69 +852,69 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:147 en/live-snapshot.1:42
+#: en/live-boot.7:155 en/live-snapshot.1:42
 #, no-wrap
 msgid "FILES"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:148
+#: en/live-boot.7:156
 #, no-wrap
 msgid "B</etc/live/boot.conf>"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:149
+#: en/live-boot.7:157
 #, no-wrap
 msgid "B</etc/live/boot.d/>"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:150
+#: en/live-boot.7:158
 #, no-wrap
 msgid "B<live/boot.conf>"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:151
+#: en/live-boot.7:159
 #, no-wrap
 msgid "B<live/boot.d/>"
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:153 en/live-snapshot.1:54
+#: en/live-boot.7:161 en/live-snapshot.1:54
 #, no-wrap
 msgid "SEE ALSO"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:155
+#: en/live-boot.7:163
 msgid "I<live-snapshot>(1)"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:157 en/live-snapshot.1:58
+#: en/live-boot.7:165 en/live-snapshot.1:58
 msgid "I<live-build>(7)"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:159 en/live-snapshot.1:60
+#: en/live-boot.7:167 en/live-snapshot.1:60
 msgid "I<live-config>(7)"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:161 en/live-snapshot.1:62
+#: en/live-boot.7:169 en/live-snapshot.1:62
 msgid "I<live-tools>(7)"
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:162 en/live-snapshot.1:63
+#: en/live-boot.7:170 en/live-snapshot.1:63
 #, no-wrap
 msgid "HOMEPAGE"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:164 en/live-snapshot.1:65
+#: en/live-boot.7:172 en/live-snapshot.1:65
 msgid ""
 "More information about live-boot and the Debian Live project can be found on "
 "the homepage at E<lt>I<http://live.debian.net/>E<gt> and in the manual at "
@@ -851,13 +922,13 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:165 en/live-snapshot.1:66
+#: en/live-boot.7:173 en/live-snapshot.1:66
 #, no-wrap
 msgid "BUGS"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:167 en/live-snapshot.1:68
+#: en/live-boot.7:175 en/live-snapshot.1:68
 msgid ""
 "Bugs can be reported by submitting a bugreport for the live-boot package in "
 "the Debian Bug Tracking System at E<lt>I<http://bugs.debian.org/>E<gt> or by "
@@ -866,13 +937,13 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:168 en/live-snapshot.1:69
+#: en/live-boot.7:176 en/live-snapshot.1:69
 #, no-wrap
 msgid "AUTHOR"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:169 en/live-snapshot.1:70
+#: en/live-boot.7:177 en/live-snapshot.1:70
 msgid ""
 "live-boot was written by Daniel Baumann E<lt>I<daniel@debian.org>E<gt> for "
 "the Debian project."
index 96ea0b6..cf06a4c 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2011-07-13 10:28+0300\n"
+"POT-Creation-Date: 2011-12-04 09:58+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -25,13 +25,13 @@ msgstr ""
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-07-13"
+msgid "2011-12-04"
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a19"
+msgid "3.0~a24-1"
 msgstr ""
 
 #. type: TH
@@ -53,32 +53,32 @@ msgid "DESCRIPTION"
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:26 en/live-snapshot.1:20
+#: en/live-boot.7:28 en/live-snapshot.1:20
 #, no-wrap
 msgid "OPTIONS"
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:137 en/live-snapshot.1:43
+#: en/live-boot.7:145 en/live-snapshot.1:43
 #, no-wrap
 msgid "B</etc/live.conf>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 msgid ""
 "Some variables can be configured via this config file (inside the live "
 "system)."
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:139 en/live-snapshot.1:45
+#: en/live-boot.7:147 en/live-snapshot.1:45
 #, no-wrap
 msgid "B<live/filesystem.module>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 msgid ""
 "This optional file (inside the live media) contains a list of white-space or "
 "carriage-return-separated file names corresponding to disk images in the \"/"
@@ -91,13 +91,13 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: en/live-boot.7:141 en/live-snapshot.1:47
+#: en/live-boot.7:149 en/live-snapshot.1:47
 #, no-wrap
 msgid "B</etc/live-persistence.binds>"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:143 en/live-snapshot.1:49
+#: en/live-boot.7:151 en/live-snapshot.1:49
 msgid ""
 "This optional file (which resides in the rootfs system, not in the live "
 "media) is used as a list of directories which not need be persistent: ie. "
@@ -106,7 +106,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:146 en/live-snapshot.1:51
+#: en/live-boot.7:154 en/live-snapshot.1:51
 msgid ""
 "This saves expensive writes and speeds up operations on volatile data such "
 "as web caches and temporary files (like e.g. /tmp and .mozilla) which are "
@@ -115,40 +115,40 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:147 en/live-snapshot.1:42
+#: en/live-boot.7:155 en/live-snapshot.1:42
 #, no-wrap
 msgid "FILES"
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:153 en/live-snapshot.1:54
+#: en/live-boot.7:161 en/live-snapshot.1:54
 #, no-wrap
 msgid "SEE ALSO"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:157 en/live-snapshot.1:58
+#: en/live-boot.7:165 en/live-snapshot.1:58
 msgid "I<live-build>(7)"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:159 en/live-snapshot.1:60
+#: en/live-boot.7:167 en/live-snapshot.1:60
 msgid "I<live-config>(7)"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:161 en/live-snapshot.1:62
+#: en/live-boot.7:169 en/live-snapshot.1:62
 msgid "I<live-tools>(7)"
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:162 en/live-snapshot.1:63
+#: en/live-boot.7:170 en/live-snapshot.1:63
 #, no-wrap
 msgid "HOMEPAGE"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:164 en/live-snapshot.1:65
+#: en/live-boot.7:172 en/live-snapshot.1:65
 msgid ""
 "More information about live-boot and the Debian Live project can be found on "
 "the homepage at E<lt>I<http://live.debian.net/>E<gt> and in the manual at "
@@ -156,13 +156,13 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:165 en/live-snapshot.1:66
+#: en/live-boot.7:173 en/live-snapshot.1:66
 #, no-wrap
 msgid "BUGS"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:167 en/live-snapshot.1:68
+#: en/live-boot.7:175 en/live-snapshot.1:68
 msgid ""
 "Bugs can be reported by submitting a bugreport for the live-boot package in "
 "the Debian Bug Tracking System at E<lt>I<http://bugs.debian.org/>E<gt> or by "
@@ -171,13 +171,13 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: en/live-boot.7:168 en/live-snapshot.1:69
+#: en/live-boot.7:176 en/live-snapshot.1:69
 #, no-wrap
 msgid "AUTHOR"
 msgstr ""
 
 #. type: Plain text
-#: en/live-boot.7:169 en/live-snapshot.1:70
+#: en/live-boot.7:177 en/live-snapshot.1:70
 msgid ""
 "live-boot was written by Daniel Baumann E<lt>I<daniel@debian.org>E<gt> for "
 "the Debian project."
index e5d3186..584193e 100755 (executable)
@@ -244,19 +244,33 @@ Arguments ()
                                export PERSISTENT
                                ;;
 
-                       persistent=*)
-                               PERSISTENT="${ARGUMENT#persistent=}"
-                               if [ -z "${PERSISTENT}" ]
-                               then
-                                       PERSISTENT="Yes"
-                               fi
-                               export PERSISTENT
+                       persistent-encryption=*)
+                               PERSISTENT_ENCRYPTION="${ARGUMENT#*=}"
+                               export PERSISTENT_ENCRYPTION
+                               ;;
+
+                       persistent-media=*)
+                               PERSISTENT_MEDIA="${ARGUMENT#*=}"
+                               export PERSISTENT_MEDIA
+                               ;;
+                       persistent-method=*)
+                               PERSISTENT_METHOD="${ARGUMENT#*=}"
+                               export PERSISTENT_METHOD
                                ;;
 
                        persistent-path=*)
                                PERSISTENT_PATH="${ARGUMENT#persistent-path=}"
                                export PERSISTENT_PATH
                                ;;
+                       persistent-read-only)
+                               PERSISTENT_READONLY="Yes"
+                               export PERSISTENT_READONLY
+                               ;;
+
+                       persistent-storage=*)
+                               PERSISTENT_STORAGE="${ARGUMENT#persistent-storage=}"
+                               export PERSISTENT_STORAGE
+                               ;;
 
                        persistent-subtext=*)
                                root_persistence="${root_persistence}-${ARGUMENT#persistent-subtext=}"
@@ -380,6 +394,39 @@ Arguments ()
                UNIONTYPE="aufs"
                export UNIONTYPE
        fi
+
+       if [ -z "${PERSISTENT_ENCRYPTION}" ]
+       then
+               PERSISTENT_ENCRYPTION="none"
+               export PERSISTENT_ENCRYPTION
+       elif echo ${PERSISTENT_ENCRYPTION} | grep -qe "\<luks\>"
+       then
+               if ! modprobe dm-crypt
+               then
+                       log_warning_msg "Unable to load module dm-crypt"
+                       PERSISTENT_ENCRYPTION=$(echo ${PERSISTENT_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
+                       export PERSISTENT_ENCRYPTION
+               fi
+
+               if [ ! -x /lib/cryptsetup/askpass ] || [ ! -x /sbin/cryptsetup ]
+               then
+                       log_warning_msg "cryptsetup in unavailable"
+                       PERSISTENT_ENCRYPTION=$(echo ${PERSISTENT_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
+                       export PERSISTENT_ENCRYPTION
+               fi
+       fi
+
+       if [ -n "${PERSISTENT}" ] && [ -z "${PERSISTENT_METHOD}" ]
+       then
+               PERSISTENT_METHOD="snapshot,overlay"
+               export PERSISTENT_METHOD
+       fi
+
+       if [ -n "${PERSISTENT}" ] && [ -z "${PERSISTENT_STORAGE}" ]
+       then
+               PERSISTENT_STORAGE="filesystem,file"
+               export PERSISTENT_STORAGE
+       fi
 }
 
 is_live_path ()
@@ -480,7 +527,16 @@ is_nice_device ()
 {
        sysfs_path="${1#/sys}"
 
-       if /lib/udev/path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci|)"
+       if [ -e /lib/udev/path_id ]
+       then
+               # squeeze
+               PATH_ID="/lib/udev/path_id"
+       else
+               # wheezy/sid (udev >= 174)
+               PATH_ID="/sbin/udevadm test-builtin path_id"
+       fi
+
+       if ${PATH_ID} "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|sas|scsi|usb|virtio)|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci)"
        then
                return 0
        elif echo "${sysfs_path}" | grep -q '^/block/vd[a-z]$'
@@ -1028,25 +1084,6 @@ do_snap_copy ()
        fi
 }
 
-find_snap ()
-{
-       # Look for ${snap_label}.* in block devices
-       snap_label="${1}"
-       black_listed_devices="${2}"
-
-       if [ "${PERSISTENT}" != "nofiles" ]
-       then
-               # search for image files
-               snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2 ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2" "${black_listed_devices}")
-       fi
-
-       if [ -z "${snapdata}" ]
-       then
-               snapdata=$(find_cow_device "${snap_label}" "${black_listed_devices}")
-       fi
-       echo "${snapdata}"
-}
-
 try_snap ()
 {
        # copy the contents of previously found snapshot to ${snap_mount}
@@ -1157,7 +1194,10 @@ try_snap ()
                return 1
        fi
 
-       echo "export ${snap_type}SNAP=${snap_relpath}:${snapdev}:${snapfile}" >> snapshot.conf # for resync on reboot/halt
+       if [ -z ${PERSISTENT_READONLY} ]
+       then
+               echo "export ${snap_type}SNAP=${snap_relpath}:${snapdev}:${snapfile}" >> snapshot.conf # for resync on reboot/halt
+       fi
        return 0
 }
 
@@ -1198,7 +1238,7 @@ setup_unionfs ()
 
        if [ "${UNIONTYPE}" = "aufs" ]
        then
-               roopt="rr"
+               roopt="rr+wh"
                noxino_opt="noxino,"
        elif [ "${UNIONTYPE}" = "unionfs-fuse" ]
        then
@@ -1323,6 +1363,7 @@ setup_unionfs ()
        # Looking for "${root_persistence}" device or file
        if [ -n "${PERSISTENT}" ] && [ -z "${NOPERSISTENT}" ]
        then
+
                if [ -z "${QUICKUSBMODULES}" ]
                then
                        # Load USB modules
@@ -1350,46 +1391,74 @@ setup_unionfs ()
                        done
                fi
 
-               # search for label and files (this could be hugely optimized)
-               cowprobe=$(find_cow_device "${root_persistence}")
-               if [ -b "${cowprobe}" ]
+               case "${PERSISTENT_MEDIA}" in
+                       removable)
+                               whitelistdev="$(removable_dev)"
+                               ;;
+                       removable-usb)
+                               whitelistdev="$(removable_usb_dev)"
+                               ;;
+                       *)
+                               whitelistdev=""
+                               ;;
+               esac
+
+               if echo ${PERSISTENT_METHOD} | grep -qe "\<overlay\>"
                then
-                       # Blacklist /cow device, to avoid inconsistent setups for overlapping snapshots
-                       # makes sense to have both persistence for /cow and /home mounted, maybe also with
-                       # snapshots to be sure to really store some e.g key config files,
-                       # but not on the same media
-                       blacklistdev="${cowprobe}"
-                       PERSISTENCE_IS_ON="1"
-                       export PERSISTENCE_IS_ON
+                       overlays="${root_persistence} ${home_persistence}"
                fi
-               # homecow just mount something on /home, this should be generalized some way
-               homecow=$(find_cow_device "${home_persistence}" "${blacklistdev}")
-               if [ -b "${homecow}" ]
+
+               if echo ${PERSISTENT_METHOD} | grep -qe "\<snapshot\>"
+               then
+                       snapshots="${root_snapshot_label} ${home_snapshot_label}"
+               fi
+
+
+               for media in $(find_persistent_media "${overlays}" "${snapshots}" "${blacklistdev}" "${whitelistdev}")
+               do
+                       media="$(echo ${media} | tr ":" " ")"
+                       case ${media} in
+                               ${root_persistence}=*)
+                                       cowprobe="${media#*=}"
+                                       ;;
+                               ${home_persistence}=*)
+                                       homecow="${media#*=}"
+                                       ;;
+                               ${root_snapshot_label}=*)
+                                       root_snapdata="${media#*=}"
+                                       ;;
+                               ${home_snapshot_label}=*)
+                                       # This second type should be removed when snapshot will get smarter,
+                                       # hence when "/etc/live-snapshot*list" will be supported also by
+                                       # ext2|ext3|ext4|jffs2 snapshot types.
+                                       home_snapdata="${media#*=}"
+                                       ;;
+                               *)
+                                       ;;
+                        esac
+               done
+
+               if [ -b "${cowprobe}" ] || [ -b "${homecow}" ]
                then
                        PERSISTENCE_IS_ON="1"
                        export PERSISTENCE_IS_ON
                fi
-               root_snapdata=$(find_snap "${root_snapshot_label}" "${blacklistdev}")
-               # This second type should be removed when snapshot will get smarter,
-               # hence when "/etc/live-snapshot*list" will be supported also by
-               # ext2|ext3|ext4|jffs2 snapshot types.
-               home_snapdata=$(find_snap "${home_snapshot_label}" "${blacklistdev}")
 
                if [ -b "${cowprobe}" ]
                then
                        cowdevice=${cowprobe}
                        cow_fstype=$(get_fstype "${cowprobe}")
-                       cow_mountopt="rw,noatime"
+                       if [ -z "${PERSISTENT_READONLY}" ]
+                       then
+                               cow_mountopt="rw,noatime"
+                       else
+                               cow_mountopt="ro,noatime"
+                       fi
 
                        if [ "${FORCEPERSISTENTFSCK}" = "Yes" ]
                        then
                                fsck -y ${cowdevice}
                        fi
-               else
-                       log_warning_msg "Unable to find the persistent medium"
-                       cowdevice="tmpfs"
-                       cow_fstype="tmpfs"
-                       cow_mountopt="rw,noatime,mode=755"
                fi
        elif [ -n "${NFS_COW}" ] && [ -z "${NOPERSISTENT}" ]
        then
@@ -1402,6 +1471,12 @@ setup_unionfs ()
                        nfs_cow_opts="-o nolock"
                        nfs_cow=${NFS_COW}
                fi
+
+               if [ -n "${PERSISTENT_READONLY}" ]
+               then
+                       nfs_cow_opts="${nfs_cow_opts},nocto,ro"
+               fi
+
                mac="$(get_mac)"
                if [ -n "${mac}" ]
                then
@@ -1410,7 +1485,10 @@ setup_unionfs ()
                else
                        panic "unable to determine mac address"
                fi
-       else
+       fi
+
+       if [ -z "${cowdevice}" ]
+       then
                cowdevice="tmpfs"
                cow_fstype="tmpfs"
                cow_mountopt="rw,noatime,mode=755"
@@ -1418,16 +1496,23 @@ setup_unionfs ()
 
        if [ "${UNIONTYPE}" != "unionmount" ]
        then
+               if [ -n "${PERSISTENT_READONLY}" ]
+               then
+                       persistent_root="/$(basename ${cowdevice})-backing"
+                       mkdir -p ${persistent_root}
+               else
+                       persistent_root="/cow"
+               fi
 
                if [ "${cow_fstype}" = "nfs" ]
                then
                        log_begin_msg \
-                               "Trying nfsmount ${nfs_cow_opts} ${cowdevice} /cow"
-                       nfsmount ${nfs_cow_opts} ${cowdevice} /cow || \
-                               panic "Can not mount ${cowdevice} (n: ${cow_fstype}) on /cow"
+                               "Trying nfsmount ${nfs_cow_opts} ${cowdevice} ${persistent_root}"
+                       nfsmount ${nfs_cow_opts} ${cowdevice} ${persistent_root} || \
+                               panic "Can not mount ${cowdevice} (n: ${cow_fstype}) on ${persistent_root}"
                else
-                       mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \
-                               panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /cow"
+                       mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} ${persistent_root} || \
+                               panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on ${persistent_root}"
                fi
        fi
 
@@ -1487,7 +1572,13 @@ setup_unionfs ()
 
 
                        *)
-                               unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${unionro}=${roopt}"
+                               if [ -n "${PERSISTENT_READONLY}" ]
+                               then
+                                       mount -t tmpfs -o rw,noatime,mode=755 tmpfs "${unionrw}"
+                                       unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${persistent_root}=${roopt}:${unionro}=${roopt}"
+                               else
+                                       unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${unionro}=${roopt}"
+                               fi
                                mount -t ${UNIONTYPE} ${unionmountopts} ${UNIONTYPE} "${unionmountpoint}"
                                ;;
                esac || \
@@ -1510,7 +1601,17 @@ setup_unionfs ()
 
                if [ -b "${homecow}" ]
                then
-                       mount -t $(get_fstype "${homecow}") -o rw,noatime "${homecow}" "${rootmnt}/home"
+                       if [ -z "${PERSISTENT_READONLY}" ]
+                       then
+                               mount -t $(get_fstype "${homecow}") -o rw,noatime "${homecow}" "${rootmnt}/home"
+                       else
+                               homerw="/cow/home"
+                               homero="/$(basename ${homecow})-backing"
+                               homemountpoint="${rootmnt}/home"
+                               mkdir -p ${homerw} ${homero} ${homemountpoint}
+                               mount -t $(get_fstype "${homecow}") -o ro "${homecow}" "${homero}"
+                               mount -t "${UNIONTYPE}" -o "noatime,${noxino_opt}dirs=${homerw}=rw:${homero}=${roopt}" "${UNIONTYPE}" "${homemountpoint}"
+                       fi
                        export HOMEMOUNTED=1 # used to proper calculate free space in do_snap_copy()
                else
                        log_warning_msg "Unable to find the persistent home medium"
@@ -1590,7 +1691,7 @@ check_dev ()
                                loopdevname=$(setup_loop "/isofrom/${ISO_NAME}" "loop" "/sys/block/loop*" "" '')
                                devname="${loopdevname}"
                        else
-                               echo "Warning: unable to mount $ISO_DEVICE." >>/live.log
+                               echo "Warning: unable to mount $ISO_DEVICE." >>/live-boot.log
                        fi
                fi
        fi
@@ -1612,6 +1713,35 @@ check_dev ()
                        umount $mountpoint
                fi
        fi
+
+       IFS=","
+       for device in ${devname}
+       do
+               case "$device" in
+                       *mapper*)
+                               # Adding lvm support
+                               if [ -x /scripts/local-top/lvm2 ]
+                               then
+                                       ROOT="$device" resume="" /scripts/local-top/lvm2
+                               fi
+                               ;;
+
+                       /dev/md*)
+                               # Adding raid support
+                               if [ -x /scripts/local-top/mdadm ]
+                               then
+                                       cp /conf/conf.d/md /conf/conf.d/md.orig
+                                       echo "MD_DEVS=$device " >> /conf/conf.d/md
+                                       /scripts/local-top/mdadm
+                                       mv /conf/conf.d/md.orig /conf/conf.d/md
+                               fi
+                               ;;
+               esac
+       done
+       unset IFS
+
+       [ -n "$device" ] && devname="$device"
+
        [ -e "$devname" ] || continue
 
        if [ -n "${LIVE_MEDIA_OFFSET}" ]
@@ -1635,7 +1765,7 @@ check_dev ()
                        echo ${mountpoint}
                        return 0
                else
-                       umount ${mountpoint}
+                       umount ${mountpoint} 2>/dev/null
                fi
        fi
 
@@ -1663,38 +1793,29 @@ find_livefs ()
        # first look at the one specified in the command line
        case "${LIVE_MEDIA}" in
                removable-usb)
-                       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)")
+                       for sysblock in $(removable_usb_dev "sys")
                        do
-                               if [ "$(cat ${sysblock}/removable)" = "1" ]
-                               then
-                                       if readlink ${sysblock} | grep -q usb
+                               for dev in $(subdevices "${sysblock}")
+                               do
+                                       if check_dev "${dev}"
                                        then
-                                               for dev in $(subdevices "${sysblock}")
-                                               do
-                                                       if check_dev "${dev}"
-                                                       then
-                                                               return 0
-                                                       fi
-                                               done
+                                               return 0
                                        fi
-                               fi
+                               done
                        done
                        return 1
                        ;;
 
                removable)
-                       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)")
+                       for sysblock in $(removable_dev "sys")
                        do
-                               if [ "$(cat ${sysblock}/removable)" = "1" ]
-                               then
-                                       for dev in $(subdevices "${sysblock}")
-                                       do
-                                               if check_dev "${dev}"
-                                               then
-                                                       return 0
-                                               fi
-                                       done
-                               fi
+                               for dev in $(subdevices "${sysblock}")
+                               do
+                                       if check_dev "${dev}"
+                                       then
+                                               return 0
+                                       fi
+                               done
                        done
                        return 1
                        ;;
@@ -1712,16 +1833,7 @@ find_livefs ()
 
        # or do the scan of block devices
        # prefer removable devices over non-removable devices, so scan them first
-       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | egrep -v "/(loop|ram|dm-|fd)")
-       do
-               if [ "$(cat ${sysblock}/removable)" = "1" ]
-               then
-                       removable_devices_to_scan="$removable_devices_to_scan $sysblock"
-               else
-                       nonremovable_devices_to_scan="$nonremovable_devices_to_scan $sysblock"
-               fi
-       done
-       devices_to_scan="$removable_devices_to_scan $nonremovable_devices_to_scan"
+       devices_to_scan="$(removable_dev 'sys') $(non_removable_dev 'sys')"
 
        for sysblock in $devices_to_scan
        do
diff --git a/scripts/live-bottom/10validateroot b/scripts/live-bottom/10validateroot
new file mode 100755 (executable)
index 0000000..d4d1620
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# Error out in case a "wrong" file system was chosen.
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+. /scripts/live-functions
+. /scripts/live-helpers
+
+if ! [ -d "/root/usr/share/live-boot" ]
+then
+       panic "A wrong rootfs was mounted."
+fi
index 06bd186..3109356 100644 (file)
@@ -37,6 +37,38 @@ subdevices ()
        echo ${r}
 }
 
+storage_devices()
+{
+       black_listed_devices="${1}"
+       white_listed_devices="${2}"
+
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "loop|ram|fd")
+       do
+               fulldevname=$(sys2dev "${sysblock}")
+
+               if echo "${black_listed_devices}" | grep -qe "\<${fulldevname}\>" || \
+                       [ -n "${white_listed_devices}" ] && \
+                       echo "${white_listed_devices}" | grep -qve "\<${fulldevname}\>"
+               then
+                       # skip this device entirely
+                       continue
+               fi
+
+               for dev in $(subdevices "${sysblock}")
+               do
+                       devname=$(sys2dev "${dev}")
+
+                       if echo "${black_listed_devices}" | grep -qe "\<${devname}\>"
+                       then
+                               # skip this subdevice
+                               continue
+                       else
+                               echo "${devname}"
+                       fi
+               done
+       done
+}
+
 is_supported_fs ()
 {
        fstype="${1}"
@@ -202,7 +234,7 @@ setup_loop ()
                                fi
                        fi
 
-                       if [ 0 -lt "${offset}" ]
+                       if [ -n "${offset}" ] && [ 0 -lt "${offset}" ]
                        then
                                options="${options} -o ${offset}"
                        fi
@@ -279,157 +311,148 @@ try_mount ()
        fi
 }
 
-find_cow_device ()
+open_luks_device ()
 {
-       # Returns a device containing a partition labeled "${pers_label}" or containing a file named the same way
-       #  in the latter case the partition containing the file is left mounted
-       #  if is not in black_listed_devices
-       pers_label="${1}"
-       cow_backing="/${pers_label}-backing"
-       black_listed_devices="${2}"
-
-       if [ -z "${PERSISTENT_PATH}" ]
+       dev="${1}"
+       name="$(basename ${dev})"
+       opts="--key-file=-"
+       if [ -n "${PERSISTENT_READONLY}" ]
        then
-               pers_fpath=${cow_backing}/${pers_label}
-       else
-               pers_fpath=${cow_backing}/${PERSISTENT_PATH}/${pers_label}
+               opts="${opts} --readonly"
        fi
 
-       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram | grep -v fd)
+       load_keymap
+
+       while true
        do
-               fulldevname=$(sys2dev "${sysblock}")
+               /lib/cryptsetup/askpass "Enter passphrase for ${dev}: " | \
+                       /sbin/cryptsetup -T 1 luksOpen ${dev} ${name} ${opts}
 
-               if echo "${black_listed_devices}" | grep -q -w "${fulldevname}"
+               if [ 0 -eq ${?} ]
                then
-                       # skip this device entirely
-                       break
+                       luks_device="/dev/mapper/${name}"
+                       echo ${luks_device}
+                       return 0
                fi
 
-               for dev in $(subdevices "${sysblock}")
-               do
-                       devname=$(sys2dev "${dev}")
-
-                       if echo "${black_listed_devices}" | grep -q -w "${devname}"
-                       then
-                               # skip this subdevice
-                               break
-                       fi
-
-                       # Checking for a luks device
-                       if [ "${PERSISTENT}" = "cryptsetup" ] && [ -e /sbin/cryptsetup ] && /sbin/cryptsetup isLuks ${devname}
-                       then
-                               while true
-                               do
-                                       load_keymap
-
-                                       /lib/cryptsetup/askpass "Enter passphrase for ${pers_label} on ${devname}: " | /sbin/cryptsetup -T 1 luksOpen ${devname} $(basename ${devname}) --key-file=-
-                                       error=${?}
-
-                                       devname="/dev/mapper/$(basename ${devname})"
-
-                                       if [ 0 -eq ${error} ]
-                                       then
-                                               unset error
-                                               break
-                                       fi
-
-                                       echo
-                                       echo -n "There was an error decrypting ${devname} ... Retry? [Y/n] " >&6
-                                       read answer
+               echo >&6
+               echo -n "There was an error decrypting ${dev} ... Retry? [Y/n] " >&6
+               read answer
 
-                                       if [ "$(echo "${answer}" | cut -b1 | tr A-Z a-z)" = "n" ]
-                                       then
-                                               unset answer
-                                               break
-                                       fi
-                               done
-                       fi
-
-                       if [ "$(/sbin/blkid -s LABEL -o value $devname 2>/dev/null)" = "${pers_label}" ]
-                       then
-                               echo "${devname}"
-                               return 0
-                       fi
-
-                       if [ "${PERSISTENT}" = "nofiles" ]
-                       then
-                               # do not mount the device to find for image files
-                               # just skip this
-                               continue
-                       fi
-
-                       case "$(get_fstype ${devname})" in
-                               vfat|ext2|ext3|ext4|jffs2)
-                                       mkdir -p "${cow_backing}"
-                                       if try_mount "${devname}" "${cow_backing}" "rw"
-                                       then
-                                               if [ -f "${pers_fpath}" ]
-                                               then
-                                                       echo $(setup_loop "${pers_fpath}" "loop" "/sys/block/loop*")
-                                                       return 0
-                                               else
-                                                       umount ${cow_backing} > /dev/null 2>&1 || true
-                                               fi
-                                       fi
-                                       ;;
-                               *)
-                                       ;;
-                       esac
-               done
+               if [ "$(echo "${answer}" | cut -b1 | tr A-Z a-z)" = "n" ]
+               then
+                       return 2
+               fi
        done
-       return 1
 }
 
-find_files ()
+find_persistent_media ()
 {
-       # return the a string composed by device name, mountpoint an the first of ${filenames} found on a supported partition
-       # FIXME: merge with above function
-
-       filenames="${1}"
-       snap_backing="/snap-backing"
-       black_listed_devices="${2}"
-
-       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram | grep -v fd)
+       # Scans devices for overlays and snapshots, and returns a whitespace
+       # separated list of how to use them. Only overlays with a partition
+       # label or file name in ${overlays} are returned, and ditto for
+       # snapshots with labels in ${snapshots}.
+       #
+       # When scanning a LUKS device, the user will be asked to enter the
+       # passphrase; on failure to enter it, or if no persistent partitions
+       # or files were found, the LUKS device is closed.
+       #
+       # For a snapshot file the return value is ${label}=${snapdata}", where
+       # ${snapdata} is the parameter used for try_snap().
+       #
+       # For all other cases (overlay/snapshot partition and overlay file) the
+       # return value is "${label}=${device}", where ${device} a device that
+       # can mount the content. In the case of an overlay file, the device
+       # containing the file will remain mounted as a side-effect.
+       #
+       # No devices in ${black_listed_devices} will be scanned, and if
+       # ${white_list_devices} is non-empty, only devices in it will be
+       # scanned.
+
+       overlays="${1}"
+       snapshots="${2}"
+       black_listed_devices="${3}"
+       white_listed_devices="${4}"
+
+       for dev in $(storage_devices "${black_listed_devices}" "${white_listed_devices}")
        do
-               fulldevname=$(sys2dev "${sysblock}")
+               luks_device=""
 
-               if echo "${black_listed_devices}" | grep -q -w "${fulldevname}"
+               # Checking for a luks device
+               if echo ${PERSISTENT_ENCRYPTION} | grep -qe "\<luks\>" && \
+                  /sbin/cryptsetup isLuks ${dev}
                then
-                       # skip this device entirely
-                       break
-               fi
-
-               for dev in $(subdevices "${sysblock}")
-               do
-                       devname=$(sys2dev "${dev}")
-                       devfstype="$(get_fstype ${devname})"
-
-                       if echo "${black_listed_devices}" | grep -q -w "${devname}"
+                       if luks_device=$(open_luks_device "${dev}")
                        then
-                               # skip this subdevice
-                               break
+                               dev="${luks_device}"
+                       else
+                               # skip $dev since we failed/chose not to open it
+                               continue
                        fi
+               elif echo ${PERSISTENT_ENCRYPTION} | grep -qve "\<none\>"
+               then
+                       # skip $dev since we don't allow unencrypted storage
+                       continue
+               fi
+
+               if echo ${PERSISTENT_STORAGE} | grep -qe "\<filesystem\>"
+               then
+                       for label in ${overlays} ${snapshots}
+                       do
+                               if [ "$(/sbin/blkid -s LABEL -o value $dev 2>/dev/null)" = "${label}" ]
+                               then
+                                       overlays=$(echo ${overlays} | sed -e "s|\<${label}\>||")
+                                       snapshots=$(echo ${snapshots} | sed -e "s|\<${label}\>||")
+                                       echo "${label}=${dev}"
+                                       # skip to the next device
+                                       continue 2
+                               fi
+                       done
+               fi
 
-                       if is_supported_fs ${devfstype}
+               if echo ${PERSISTENT_STORAGE} | grep -qe "\<file\>"
+               then
+                       devfstype="$(get_fstype ${dev})"
+                       overlay_on_dev=""
+                       snapshot_on_dev=""
+                       backing="/$(basename ${dev})-backing"
+                       mkdir -p "${backing}"
+                       if is_supported_fs ${devfstype} && try_mount "${dev}" "${backing}" "rw" "${devfstype}"
                        then
-                               mkdir -p "${snap_backing}"
+                               for label in ${overlays}
+                               do
+                                       path=${backing}/${PERSISTENT_PATH}${label}
+                                       if [ -f "${path}" ]
+                                       then
+                                               overlays=$(echo ${overlays} | sed -e "s|\<${label}\>||")
+                                               overlay_on_dev="yes"
+                                               echo "${label}=$(setup_loop "${path}" "loop" "/sys/block/loop*")"
+                                       fi
+                               done
 
-                               if try_mount "${devname}" "${snap_backing}" "ro" "${devfstype}"
-                               then
-                                       for filename in ${filenames}
+                               for label in ${snapshots}
+                               do
+                                       for ext in squashfs cpio.gz ext2 ext3 ext4 jffs2
                                        do
-                                               if [ -f "${snap_backing}/${filename}" ]
+                                               path="${PERSISTENT_PATH}${label}.${ext}"
+                                               if [ -f "${backing}/${path}" ]
                                                then
-                                                       echo "${devname} ${snap_backing} ${filename}"
-                                                       umount ${snap_backing}
-                                                       return 0
+                                                       snapshots=$(echo ${snapshots} | sed -e "s|\<${label}\>||")
+                                                       snapshot_on_dev="yes"
+                                                       echo "${label}=${dev}:${backing}:${path}"
                                                fi
                                        done
+                               done
+                       fi
+                       if [ -z "${overlay_on_dev}" ]
+                       then
+                               umount ${backing} > /dev/null 2>&1 || true
+                               if [ -z "${snapshot_on_dev}" ] && [ -n "${luks_device}" ] && /sbin/cryptsetup status "${luks_device}" 1> /dev/null
+                               then
+                                       /sbin/cryptsetup luksClose "${luks_device}"
                                fi
-
-                               umount ${snap_backing}
                        fi
-               done
+               fi
        done
 }
 
@@ -463,3 +486,73 @@ is_luks()
     fi
 
 }
+
+removable_dev ()
+{
+       output_format="${1}"
+       want_usb="${2}"
+       ret=
+
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)")
+       do
+               dev_ok=
+               if [ "$(cat ${sysblock}/removable)" = "1" ]
+               then
+                       if [ -z "${want_usb}" ]
+                       then
+                               dev_ok="yes"
+                       else
+                               if readlink ${sysblock} | grep -q usb
+                               then
+                                       dev_ok="yes"
+                               fi
+                       fi
+               fi
+
+               if [ "${dev_ok}" = "yes" ]
+               then
+                       case "${output_format}" in
+                               sys)
+                                       ret="${ret} ${sysblock}"
+                                       ;;
+                               *)
+                                       devname=$(sys2dev "${sysblock}")
+                                       ret="${ret} ${devname}"
+                                       ;;
+                       esac
+               fi
+       done
+
+       echo "${ret}"
+}
+
+removable_usb_dev ()
+{
+       output_format="${1}"
+
+       removable_dev "${output_format}" "want_usb"
+}
+
+non_removable_dev ()
+{
+       output_format="${1}"
+       ret=
+
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)")
+       do
+               if [ "$(cat ${sysblock}/removable)" = "0" ]
+               then
+                       case "${output_format}" in
+                               sys)
+                                       ret="${ret} ${sysblock}"
+                                       ;;
+                               *)
+                                       devname=$(sys2dev "${sysblock}")
+                                       ret="${ret} ${devname}"
+                                       ;;
+                       esac
+               fi
+       done
+
+       echo "${ret}"
+}