Adding upstream version 3.0~a15. upstream/3.0_a1 upstream/3.0_a15
authorDaniel Baumann <daniel@debian.org>
Wed, 9 Mar 2011 17:02:17 +0000 (18:02 +0100)
committerDaniel Baumann <daniel@debian.org>
Wed, 9 Mar 2011 17:02:17 +0000 (18:02 +0100)
12 files changed:
VERSION
bin/live-snapshot
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

diff --git a/VERSION b/VERSION
index e9c3b95..e86719f 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.0~a14
+3.0~a15
index 991e704..eccabbc 100755 (executable)
@@ -7,7 +7,7 @@
 #   for reuse in another live-boot session.
 #   Look at the manpage for more informations.
 #
 #   for reuse in another live-boot session.
 #   Look at the manpage for more informations.
 #
-# Copyright (C) 2006-2010 Marco Amadori <marco.amadori@gmail.com>
+# Copyright (C) 2006-2011 Marco Amadori <marco.amadori@gmail.com>
 # Copyright (C) 2008 Chris Lamb <chris@chris-lamb.co.uk>
 #
 # This program is free software: you can redistribute it and/or modify
 # Copyright (C) 2008 Chris Lamb <chris@chris-lamb.co.uk>
 #
 # This program is free software: you can redistribute it and/or modify
@@ -125,12 +125,12 @@ Version ()
 {
        echo "${PROGRAM}"
        echo
 {
        echo "${PROGRAM}"
        echo
-       echo "Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>"
+       echo "Copyright (C) 2006-2011 Marco Amadori <marco.amadori@gmail.com>"
        echo "Copyright (C) 2008 Chris Lamb <chris@chris-lamb.co.uk>"
        echo
        echo "This program is free software; you can redistribute it and/or modify"
        echo "it under the terms of the GNU General Public License as published by"
        echo "Copyright (C) 2008 Chris Lamb <chris@chris-lamb.co.uk>"
        echo
        echo "This program is free software; you can redistribute it and/or modify"
        echo "it under the terms of the GNU General Public License as published by"
-       echo "the Free Software Foundation; either version 2 of the License, or"
+       echo "the Free Software Foundation; either version 3 of the License, or"
        echo "(at your option) any later version."
        echo
        echo "This program is distributed in the hope that it will be useful,"
        echo "(at your option) any later version."
        echo
        echo "This program is distributed in the hope that it will be useful,"
@@ -143,7 +143,7 @@ Version ()
        echo "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA"
        echo
        echo "On Debian systems, the complete text of the GNU General Public License"
        echo "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA"
        echo
        echo "On Debian systems, the complete text of the GNU General Public License"
-       echo "can be found in /usr/share/common-licenses/GPL-2 file."
+       echo "can be found in /usr/share/common-licenses/GPL-3 file."
        echo
        echo "Homepage: <http://debian-live.alioth.debian.org/>"
 
        echo
        echo "Homepage: <http://debian-live.alioth.debian.org/>"
 
index f68800d..309c26f 100755 (executable)
@@ -22,6 +22,8 @@ esac
 
 . /usr/share/initramfs-tools/hook-functions
 
 
 . /usr/share/initramfs-tools/hook-functions
 
+[ "${QUIET}" ] || echo -n live-boot:
+
 # live-boot hook
 
 # Reading configuration file from filesystem
 # live-boot hook
 
 # Reading configuration file from filesystem
@@ -40,6 +42,7 @@ fi
 
 # Handling live-boot
 
 
 # Handling live-boot
 
+[ "${QUIET}" ] || echo -n " "core
 # Configuration
 if [ -e /usr/share/live-boot/languagelist ]
 then
 # Configuration
 if [ -e /usr/share/live-boot/languagelist ]
 then
@@ -85,6 +88,7 @@ fi
 
 # Handling other stuff
 
 
 # Handling other stuff
 
+[ "${QUIET}" ] || echo -n " "filesystems
 # Configuration: keymap (usefull when using encryption)
 if [ -x /bin/loadkeys ] && [ -r /etc/console/boottime.kmap.gz ]
 then
 # Configuration: keymap (usefull when using encryption)
 if [ -x /bin/loadkeys ] && [ -r /etc/console/boottime.kmap.gz ]
 then
@@ -149,6 +153,7 @@ manual_add_modules vfat
 # Filesystem: ntfs
 manual_add_modules ntfs
 
 # Filesystem: ntfs
 manual_add_modules ntfs
 
+[ "${QUIET}" ] || echo -n " "devices
 # Hardware: cdrom
 manual_add_modules ide-cd
 manual_add_modules ide-generic
 # Hardware: cdrom
 manual_add_modules ide-cd
 manual_add_modules ide-generic
@@ -168,12 +173,14 @@ then
        copy_exec /usr/bin/eject /bin
 fi
 
        copy_exec /usr/bin/eject /bin
 fi
 
+[ "${QUIET}" ] || echo -n " "utils
 # Program: md5sum
 copy_exec /usr/bin/md5sum /bin
 
 # Program: memdisk
 if [ -x /usr/bin/memdiskfind ]
 then
 # Program: md5sum
 copy_exec /usr/bin/md5sum /bin
 
 # Program: memdisk
 if [ -x /usr/bin/memdiskfind ]
 then
+[ "${QUIET}" ] || echo -n :memdisk
        copy_exec /usr/bin/memdiskfind
        manual_add_modules phram
        manual_add_modules mtdblock
        copy_exec /usr/bin/memdiskfind
        manual_add_modules phram
        manual_add_modules mtdblock
@@ -191,22 +198,26 @@ copy_exec /bin/cpio /bin
 # Program: udev
 if [ -x /sbin/udevadm ]
 then
 # Program: udev
 if [ -x /sbin/udevadm ]
 then
+       [ "${QUIET}" ] || echo -n " "udev
        copy_exec /sbin/udevadm /sbin
 fi
 if [ -x /usr/bin/udevinfo ]
 then
        copy_exec /sbin/udevadm /sbin
 fi
 if [ -x /usr/bin/udevinfo ]
 then
+       [ "${QUIET}" ] || echo -n " "udev
        copy_exec /usr/bin/udevinfo /bin
 fi
 
 # Program: wget
 if [ -x /usr/bin/wget ]
 then
        copy_exec /usr/bin/udevinfo /bin
 fi
 
 # Program: wget
 if [ -x /usr/bin/wget ]
 then
+       [ "${QUIET}" ] || echo -n " "wget
        copy_exec /usr/bin/wget /bin
 fi
 
 # Program: blockdev
 if [ -x /sbin/blockdev ]
 then
        copy_exec /usr/bin/wget /bin
 fi
 
 # Program: blockdev
 if [ -x /sbin/blockdev ]
 then
+       [ "${QUIET}" ] || echo -n " "blockdev
        copy_exec /sbin/blockdev /sbin
 fi
 
        copy_exec /sbin/blockdev /sbin
 fi
 
@@ -216,29 +227,34 @@ manual_add_modules fuse
 # FUSE filesystem: httpfs2
 if [ -x /usr/bin/httpfs2_ssl ]
 then
 # FUSE filesystem: httpfs2
 if [ -x /usr/bin/httpfs2_ssl ]
 then
+       [ "${QUIET}" ] || echo -n " "httpfs:ssl
        copy_exec /usr/bin/httpfs2_ssl /bin/httpfs
 elif [ -x /usr/bin/httpfs2 ]
 then
        copy_exec /usr/bin/httpfs2_ssl /bin/httpfs
 elif [ -x /usr/bin/httpfs2 ]
 then
+       [ "${QUIET}" ] || echo -n " "httpfs
        copy_exec /usr/bin/httpfs2 /bin/httpfs
 fi
 
 # FUSE filesystem: curlftpfs
 if [ -x /usr/bin/curlftpfs ]
 then
        copy_exec /usr/bin/httpfs2 /bin/httpfs
 fi
 
 # FUSE filesystem: curlftpfs
 if [ -x /usr/bin/curlftpfs ]
 then
+       [ "${QUIET}" ] || echo -n " "ftpfs
        copy_exec /usr/bin/curlftpfs /bin
 fi
 
 # iSCSI
 if [ -x /usr/sbin/iscsistart ]
 then
        copy_exec /usr/bin/curlftpfs /bin
 fi
 
 # iSCSI
 if [ -x /usr/sbin/iscsistart ]
 then
-    copy_exec /usr/sbin/iscsistart /bin
-    #manual_add_modules ib_iser
-    manual_add_modules iscsi_tcp
-    manual_add_modules crc32c
+       [ "${QUIET}" ] || echo -n " "iscsi
+       copy_exec /usr/sbin/iscsistart /bin
+       #manual_add_modules ib_iser
+       manual_add_modules iscsi_tcp
+       manual_add_modules crc32c
 fi
 
 if [ "${LIVE_DNS}" = "true" ]
 then
 fi
 
 if [ "${LIVE_DNS}" = "true" ]
 then
+       [ "${QUIET}" ] || echo -n " "dns
        #copy_exec /lib/libnss_files.so.*      /lib  # /etc/hosts and /etc/passwd
        copy_exec /lib/libnss_dns.so.*      /lib  # DNS server
        #copy_exec /lib/libnss_compat.so.*      /lib  # /etc/passwd
        #copy_exec /lib/libnss_files.so.*      /lib  # /etc/hosts and /etc/passwd
        copy_exec /lib/libnss_dns.so.*      /lib  # DNS server
        #copy_exec /lib/libnss_compat.so.*      /lib  # /etc/passwd
@@ -250,7 +266,10 @@ fi
 
 if [ "${LIVE_UNIONMOUNT}" = "true" ]
 then
 
 if [ "${LIVE_UNIONMOUNT}" = "true" ]
 then
+       [ "${QUIET}" ] || echo -n " "unionmount
        # UnionMount
        # only mount from patched util-linux can do this currently
        copy_exec /bin/mount /bin/mount_full
 fi
        # UnionMount
        # only mount from patched util-linux can do this currently
        copy_exec /bin/mount /bin/mount_full
 fi
+
+[ "${QUIET}" ] || echo .
index a67253f..a53a1f8 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 7 2011\-01\-11 3.0~a14 "Debian Live Projekt"
+.TH LIVE\-BOOT 7 2011\-03\-09 3.0~a15 "Debian Live Projekt"
 
 .SH NAME
 \fBlive\-boot\fP \- System Boot Skripte
 
 .SH NAME
 \fBlive\-boot\fP \- System Boot Skripte
index e080c99..7343b3e 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 1 2011\-01\-11 3.0~a14 "Debian Live Projekt"
+.TH LIVE\-BOOT 1 2011\-03\-09 3.0~a15 "Debian Live Projekt"
 
 .SH NAME
 \fBlive\-snapshot\fP \- simple script to ease persistence usage
 
 .SH NAME
 \fBlive\-snapshot\fP \- simple script to ease persistence usage
index 80edf70..4e440ed 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT 7 2011\-01\-11 3.0~a14 "Debian Live Project"
+.TH LIVE\-BOOT 7 2011\-03\-09 3.0~a15 "Debian Live Project"
 
 .SH NAME
 \fBlive\-boot\fR \- System Boot Scripts
 
 .SH NAME
 \fBlive\-boot\fR \- System Boot Scripts
index bd1a087..25facea 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT 1 2011\-01\-11 3.0~a14 "Debian Live Project"
+.TH LIVE\-BOOT 1 2011\-03\-09 3.0~a15 "Debian Live Project"
 
 .SH NAME
 \fBlive\-snapshot\fR \- simple script to ease persistence usage
 
 .SH NAME
 \fBlive\-snapshot\fR \- simple script to ease persistence usage
index dda7dd5..13d671d 100644 (file)
@@ -4,8 +4,8 @@
 #
 msgid ""
 msgstr ""
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: live-boot 3.0~a14\n"
-"POT-Creation-Date: 2011-01-11 13:39+0100\n"
+"Project-Id-Version: live-boot 3.0~a15\n"
+"POT-Creation-Date: 2011-03-09 18:00+0100\n"
 "PO-Revision-Date: 2010-05-24 12:34+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
 "PO-Revision-Date: 2010-05-24 12:34+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -24,13 +24,14 @@ msgstr "LIVE-BOOT"
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-01-11"
+msgid "2011-03-09"
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
-msgid "3.0~a14"
-msgstr "3.0~a14"
+#, no-wrap
+msgid "3.0~a15"
+msgstr "3.0~a15"
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
index c67050f..8eaf186 100644 (file)
@@ -4,8 +4,8 @@
 #
 msgid ""
 msgstr ""
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: live-boot 3.0~a14\n"
-"POT-Creation-Date: 2011-01-11 13:39+0100\n"
+"Project-Id-Version: live-boot 3.0~a15\n"
+"POT-Creation-Date: 2011-03-09 18:00+0100\n"
 "PO-Revision-Date: 2010-05-24 12:34+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
 "PO-Revision-Date: 2010-05-24 12:34+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -24,13 +24,14 @@ msgstr "LIVE-BOOT"
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-01-11"
+msgid "2011-03-09"
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
-msgid "3.0~a14"
-msgstr "3.0~a14"
+#, no-wrap
+msgid "3.0~a15"
+msgstr "3.0~a15"
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
index f94ea75..1c4cea4 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2011-01-11 13:39+0100\n"
+"POT-Creation-Date: 2011-03-09 18:00+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"
 "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
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-01-11"
+msgid "2011-03-09"
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a14"
+msgid "3.0~a15"
 msgstr ""
 
 #. type: TH
 msgstr ""
 
 #. type: TH
index f27f305..c299597 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2011-01-11 13:39+0100\n"
+"POT-Creation-Date: 2011-03-09 18:00+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"
 "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
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "2011-01-11"
+msgid "2011-03-09"
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
 msgstr ""
 
 #. type: TH
 #: en/live-boot.7:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a14"
+msgid "3.0~a15"
 msgstr ""
 
 #. type: TH
 msgstr ""
 
 #. type: TH
index ef87d3c..8e0409a 100755 (executable)
@@ -1191,7 +1191,6 @@ setup_unionfs ()
        croot="/"
 
        # Let's just mount the read-only file systems first
        croot="/"
 
        # Let's just mount the read-only file systems first
-       rofsstring=""
        rofslist=""
 
        if [ "${UNIONTYPE}" = "aufs" ]
        rofslist=""
 
        if [ "${UNIONTYPE}" = "aufs" ]
@@ -1251,7 +1250,7 @@ setup_unionfs ()
                        image_string="$(echo ${image_string} | sed -e 's/ /\n/g' | sort )"
                fi
 
                        image_string="$(echo ${image_string} | sed -e 's/ /\n/g' | sort )"
                fi
 
-       [ -n "${MODULETORAMFILE}" ] && image_string="${image_directory}/$(basename ${MODULETORAMFILE})"
+               [ -n "${MODULETORAMFILE}" ] && image_string="${image_directory}/$(basename ${MODULETORAMFILE})"
 
                mkdir -p "${croot}"
 
 
                mkdir -p "${croot}"
 
@@ -1268,7 +1267,6 @@ setup_unionfs ()
                        if [ -d "${image}" ]
                        then
                                # it is a plain directory: do nothing
                        if [ -d "${image}" ]
                        then
                                # it is a plain directory: do nothing
-                               rofsstring="${image}=${roopt}:${rofsstring}"
                                rofslist="${image} ${rofslist}"
                        elif [ -f "${image}" ]
                        then
                                rofslist="${image} ${rofslist}"
                        elif [ -f "${image}" ]
                        then
@@ -1294,9 +1292,10 @@ setup_unionfs ()
                                if [ "${UNIONTYPE}" != "unionmount" ]
                                then
                                        mpoint="${croot}/${imagename}"
                                if [ "${UNIONTYPE}" != "unionmount" ]
                                then
                                        mpoint="${croot}/${imagename}"
-                                       rofsstring="${mpoint}=${roopt}:${rofsstring}" && rofslist="${mpoint} ${rofslist}"
+                                       rofslist="${mpoint} ${rofslist}"
                                else
                                        mpoint="${rootmnt}"
                                else
                                        mpoint="${rootmnt}"
+                                       rofslist="${rootmnt} ${rofslist}"
                                fi
                                mkdir -p "${mpoint}"
                                log_begin_msg "Mounting \"${image}\" on \"${mpoint}\" via \"${backdev}\""
                                fi
                                mkdir -p "${mpoint}"
                                log_begin_msg "Mounting \"${image}\" on \"${mpoint}\" via \"${backdev}\""
@@ -1308,14 +1307,14 @@ setup_unionfs ()
                # we have a plain root system
                mkdir -p "${croot}/filesystem"
                log_begin_msg "Mounting \"${image_directory}\" on \"${croot}/filesystem\""
                # we have a plain root system
                mkdir -p "${croot}/filesystem"
                log_begin_msg "Mounting \"${image_directory}\" on \"${croot}/filesystem\""
-               mount -t $(get_fstype "${image_directory}") -o ro,noatime "${image_directory}" "${croot}/filesystem" || panic "Can not mount ${image_directory} on ${croot}/filesystem" && rofsstring="${croot}/filesystem=${roopt}:${rofsstring}" && rofslist="${croot}/filesystem ${rofslist}"
+               mount -t $(get_fstype "${image_directory}") -o ro,noatime "${image_directory}" "${croot}/filesystem" || \
+                       panic "Can not mount ${image_directory} on ${croot}/filesystem" && \
+                       rofslist="${croot}/filesystem ${rofslist}"
                # probably broken:
                mount -o bind ${croot}/filesystem $mountpoint
                log_end_msg
        fi
 
                # probably broken:
                mount -o bind ${croot}/filesystem $mountpoint
                log_end_msg
        fi
 
-       rofsstring=${rofsstring%:}
-
        mkdir -p /cow
 
        # Looking for "${root_persistence}" device or file
        mkdir -p /cow
 
        # Looking for "${root_persistence}" device or file
@@ -1417,30 +1416,30 @@ setup_unionfs ()
        if [ "${UNIONTYPE}" != "unionmount" ]
        then
 
        if [ "${UNIONTYPE}" != "unionmount" ]
        then
 
-       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"
-       else
-               mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \
-                       panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /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"
+               else
+                       mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \
+                               panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /cow"
+               fi
        fi
 
        rofscount=$(echo ${rofslist} |wc -w)
 
        fi
 
        rofscount=$(echo ${rofslist} |wc -w)
 
-       if [ -n "${EXPOSED_ROOT}" ]
+       if [ ${rofscount} -ne 1 ]
        then
        then
-               if [ ${rofscount} -ne 1 ]
-               then
-                       panic "only one RO file system supported with exposedroot: ${rofslist}"
-               fi
-               exposedrootfs=${rofslist%% }
+               panic "only one RO file system supported with exposedroot: ${rofslist}"
+       fi
+       rofs=${rofslist%% }
 
 
-               mount --bind ${exposedrootfs} ${rootmnt} || \
-                       panic "bind mount of ${exposedrootfs} failed"
+       if [ -n "${EXPOSED_ROOT}" ]
+       then
+               mount --bind ${rofs} ${rootmnt} || \
+                       panic "bind mount of ${rofs} failed"
 
                if [ -z "${SKIP_UNION_MOUNTS}" ]
                then
 
                if [ -z "${SKIP_UNION_MOUNTS}" ]
                then
@@ -1448,39 +1447,49 @@ setup_unionfs ()
                else
                        cow_dirs=''
                fi
                else
                        cow_dirs=''
                fi
+       else
+               cow_dirs="/"
+       fi
 
 
-               for dir in ${cow_dirs}; do
-                       mkdir -p /cow${dir}
+       if [ "${cow_fstype}" != "tmpfs" ] && [ "${cow_dirs}" != "/" ] && [ "${UNIONTYPE}" = "unionmount" ]
+       then
+               true # FIXME: Maybe it does, I don't really know.
+               #panic "unionmount does not support subunions (${cow_dirs})."
+       fi
 
 
-                       case "${UNIONTYPE}" in
-                               unionfs-fuse)
-                                       (ulimit -n 16384; unionfs-fuse -o cow -o noinitgroups -o default_permissions -o allow_other -o use_ino -o suid /cow=RW:${exposedrootfs}${dir} "${rootmnt}${dir}" || panic "mount ${UNIONTYPE} on ${rootmnt}${dir} failed with option cow,noinitgroups,default_permissions,allow_other,use_ino,suid=/cow=RW:${exposedrootfs}${dir}")
-                                       mkdir -p /dev/.initramfs/varrun
-                                       pidof unionfs-fuse >> /dev/.initramfs/varrun/sendsigs.omit || true
-                                       ;;
+       unionmountopts=""
+       unionmountpoint=""
 
 
-                               *)
-                                       mount -t ${UNIONTYPE} -o rw,noatime,dirs=/cow${dir}=rw:${exposedrootfs}${dir}=ro ${UNIONTYPE} "${rootmnt}${dir}" || panic "mount ${UNIONTYPE} on ${rootmnt}${dir} failed with option rw,noatime,dirs=/cow${dir}=rw:${exposedrootfs}${dir}=ro"
-                                       ;;
-                       esac
-               done
-       else
+       for dir in ${cow_dirs}; do
+               mkdir -p /cow${dir}
+
+               unionmountpoint="${rootmnt}${dir}"
+               unionrw="/cow${dir}"
+               unionro="${rofs}${dir}"
+               # We don't handle spaces and other junk gracefully here, hopefully not needed.
                case "${UNIONTYPE}" in
                        unionfs-fuse)
                case "${UNIONTYPE}" in
                        unionfs-fuse)
-                               (ulimit -n 16384; unionfs-fuse -o cow -o noinitgroups -o default_permissions -o allow_other -o use_ino -o suid /cow=RW:${rofsstring} "${rootmnt}" || panic "mount ${UNIONTYPE} on ${rootmnt} failed with option cow,noinitgroups,default_permissions,allow_other,use_ino,suid=/cow:RW:${rofsstring}")
-                               mkdir -p /dev/.initramfs/varrun
-                               pidof unionfs-fuse >> /dev/.initramfs/varrun/sendsigs.omit || true
+                               unionmountopts="-o cow -o noinitgroups -o default_permissions -o allow_other -o use_ino -o suid"
+                               unionmountopts="${unionmountopts} ${unionrw}=RW:${unionro}=RO"
+                               ( sysctl -w fs.file-max=391524 ; ulimit -HSn 16384
+                               unionfs-fuse ${unionmountopts} "${unionmountpoint}" ) && \
+                                       ( mkdir -p /dev/.initramfs/varrun
+                               pidof unionfs-fuse >> /dev/.initramfs/varrun/sendsigs.omit || true )
                                ;;
 
                        unionmount)
                                ;;
 
                        unionmount)
-                               mount_full -t ${cow_fstype} -o noatime,union,${cow_mountopt} ${cowdevice} "${rootmnt}" || panic "${UNIONTYPE} ${cowdevice} on ${rootmnt} failed with option noatime,union,${cow_mountopt}"
+                               unionmountopts="-t ${cow_fstype} -o noatime,union,${cow_mountopt} ${cowdevice}"
+                               mount_full $unionmountopts "${unionmountpoint}"
                                ;;
 
                                ;;
 
+
                        *)
                        *)
-                               mount -t ${UNIONTYPE} -o noatime,${noxino_opt}dirs=/cow=rw:${rofsstring} ${UNIONTYPE} "${rootmnt}" || panic "mount ${UNIONTYPE} on ${rootmnt} failed with option noatime,${noxino_opt}dirs=/cow=rw:${rofsstring}"
+                               unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${unionro}=${roopt}"
+                               mount -t ${UNIONTYPE} ${unionmountopts} ${UNIONTYPE} "${unionmountpoint}"
                                ;;
                                ;;
-               esac
-       fi
+               esac || \
+                       panic "mount ${UNIONTYPE} on ${unionmountpoint} failed with option ${unionmountopts}"
+       done
 
        # Correct the permissions of /:
        chmod 0755 "${rootmnt}"
 
        # Correct the permissions of /:
        chmod 0755 "${rootmnt}"
@@ -1569,11 +1578,17 @@ check_dev ()
                then
                        echo "Warning: device for bootoption isofrom= ($FROMISO) not found.">>/live-boot.log
                else
                then
                        echo "Warning: device for bootoption isofrom= ($FROMISO) not found.">>/live-boot.log
                else
-                       mkdir /isofrom
-                       mount -t auto "$ISO_DEVICE" /isofrom
-                       ISO_NAME="$(echo $FROMISO | sed "s|$ISO_DEVICE||")"
-                       loopdevname=$(setup_loop "/isofrom/${ISO_NAME}" "loop" "/sys/block/loop*" "" '')
-                       devname="${loopdevname}"
+                       fs_type=$(get_fstype "${ISO_DEVICE}")
+                       if is_supported_fs ${fs_type}
+                       then
+                               mkdir /isofrom
+                               mount -t $fs_type "$ISO_DEVICE" /isofrom
+                               ISO_NAME="$(echo $FROMISO | sed "s|$ISO_DEVICE||")"
+                               loopdevname=$(setup_loop "/isofrom/${ISO_NAME}" "loop" "/sys/block/loop*" "" '')
+                               devname="${loopdevname}"
+                       else
+                               echo "Warning: unable to mount $ISO_DEVICE." >>/live.log
+                       fi
                fi
        fi
 
                fi
        fi