LANGUAGES = $(shell cd manpages/po && ls)
-SCRIPTS = bin/* backends/initramfs-tools/* scripts/*.sh scripts/*/*
+SCRIPTS = backends/*/* bin/* scripts/*.sh scripts/*/*
all: build
mkdir -p $(DESTDIR)/sbin
cp bin/live-new-uuid bin/live-snapshot bin/live-swapfile $(DESTDIR)/sbin
- mkdir -p $(DESTDIR)/usr/share/live-boot
- cp bin/live-preseed bin/live-reconfigure $(DESTDIR)/usr/share/live-boot
-
mkdir -p $(DESTDIR)/usr/share/initramfs-tools/hooks
cp backends/initramfs-tools/live.hook $(DESTDIR)/usr/share/initramfs-tools/hooks/live
mkdir -p $(DESTDIR)/usr/share/initramfs-tools/scripts
cp -r COPYING $(DESTDIR)/usr/share/doc/live-boot
mkdir -p $(DESTDIR)/usr/share/doc/live-boot/examples
- cp -r etc/* $(DESTDIR)/usr/share/doc/live-boot/examples
+ cp -r examples/* $(DESTDIR)/usr/share/doc/live-boot/examples
# (FIXME)
# Installing manpages
rm -f $(DESTDIR)/sbin/live-snapshot $(DESTDIR)/sbin/live-swapfile
rmdir --ignore-fail-on-non-empty $(DESTDIR)/sbin > /dev/null 2>&1 || true
- rm -rf $(DESTDIR)/usr/share/live-boot
-
rm -f $(DESTDIR)/usr/share/initramfs-tools/hooks/live
rm -f $(DESTDIR)/usr/share/initramfs-tools/scripts/live
# Directories
mkdir -p "${DESTDIR}"/lib/live-boot
-# Executables
-copy_exec /usr/share/live-boot/live-reconfigure /bin
-copy_exec /usr/share/live-boot/live-preseed /bin
-
# klibc dependencies
for FILE in /lib/libacl* /lib/libblkid* /lib/libuuid* /lib/libdevmapper* /lib/libattr*
do
+++ /dev/null
-#!/bin/sh
-
-set -e
-
-PATH=/usr/sbin:/usr/bin:/sbin:/bin
-
-root="${1}"
-question="${2}"
-value="${3}"
-seen="${4}"
-
-[ "${seen}" ] || seen=true
-
-if ! (echo "SET ${question} ${value}"; echo "FSET ${question} seen ${seen}") | chroot "${1}" /usr/bin/debconf-communicate -fnoninteractive live-boot >/dev/null
-then
-
-chroot "${1}" /usr/bin/debconf-communicate -fnoninteractive live-boot >/dev/null << EOF
-REGISTER debian-installer/dummy ${question}
-SET ${question} ${value}
-FSET ${question} seen ${seen}
-EOF
-
-fi
-
-exit 0
+++ /dev/null
-#! /bin/sh
-
-set -e
-
-export PATH=/usr/bin:/usr/sbin:/sbin:/bin
-
-frontend=noninteractive
-
-findcommandinroot ()
-{
- ROOT="${1}/"
- shift
-
- while [ "${#}" -ge 1 ]
- do
- P="${PATH}"
-
- while [ "${P}" ]
- do
- D=${P%%:*}
- P=${P#*:}
-
- if [ "${D}" = "${P}" ]
- then
- P=
- fi
-
- if [ -z "${D}" ]
- then
- D=.
- fi
-
- if [ -x "${ROOT}${D}/${1}" ]
- then
- echo "${D}/${1}"
- return 0
- fi
- done
-
- shift
- done
-
- return 1
-}
-
-runcommandinroot ()
-{
- C=$(findcommandinroot "${1}" "${2}")
- ROOT="${1}"
-
- shift
- shift
-
- [ -n "${C}" ] && chroot "${ROOT}" "${C}" "${@}"
-}
-
-root="${1}"
-package="${2}"
-
-version=$(runcommandinroot "${root}" dpkg-query -W --showformat='${Version}' "${package}" 2>/dev/null) || version=""
-
-if [ -z "${version}" ]
-then
- echo >&2 "${0}: package '${package}' is not installed"
- exit 0
-fi
-
-runcommandinroot "${root}" dpkg-reconfigure -fnoninteractive --no-reload "${package}"
-
-exit 0
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH LIVE\-BOOT 7 05.06.2012 3.0~a30\-1 "Debian Live Project"
+.TH LIVE\-BOOT 7 05.06.2012 3.0~a31\-1 "Debian Live Project"
.SH NAME
\fBlive\-boot\fP \- System Boot Scripts
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH LIVE\-BOOT conf 05.06.2012 3.0~a30\-1 "Debian Live Project"
+.TH LIVE\-BOOT conf 05.06.2012 3.0~a31\-1 "Debian Live Project"
.SH NAME
\fBlive\-persistence.conf\fP \- Configuration file for persistence media in
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH LIVE\-BOOT 1 05.06.2012 3.0~a30\-1 "Debian Live Project"
+.TH LIVE\-BOOT 1 05.06.2012 3.0~a31\-1 "Debian Live Project"
.SH NAME
\fBlive\-snapshot\fP \- simple script to ease persistence usage
-.TH LIVE\-BOOT 7 2012\-06\-05 3.0~a30-1 "Debian Live Project"
+.TH LIVE\-BOOT 7 2012\-06\-05 3.0~a31-1 "Debian Live Project"
.SH NAME
\fBlive\-boot\fR \- System Boot Scripts
-.TH LIVE\-BOOT conf 2012\-06\-05 3.0~a30-1 "Debian Live Project"
+.TH LIVE\-BOOT conf 2012\-06\-05 3.0~a31-1 "Debian Live Project"
.SH NAME
\fBlive-persistence.conf\fR \- Configuration file for persistence media in
-.TH LIVE\-BOOT 1 2012\-06\-05 3.0~a30-1 "Debian Live Project"
+.TH LIVE\-BOOT 1 2012\-06\-05 3.0~a31-1 "Debian Live Project"
.SH NAME
\fBlive\-snapshot\fR \- simple script to ease persistence usage
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH LIVE\-BOOT 7 05.06.2012 3.0~a30\-1 "Proyecto Debian Live"
+.TH LIVE\-BOOT 7 05.06.2012 3.0~a31\-1 "Proyecto Debian Live"
.SH NOMBRE
\fBlive\-boot\fP \- Scripts de Arranque del Sistema
.\" FIXME
\fBlive\-boot\fP incluye los siguientes parámetros.
.IP \fBaccess\fP=\fIACCESS\fP 4
-Set the accessibility level for physically or visually impaired
-users. ACCESS must be one of v1, v2, v3, m1, or m2. v1=lesser visual
-impairment, v2=moderate visual impairment, v3=blindness, m1=minor motor
-difficulties, m2=moderate motor difficulties.
+Establece el nivel de accesibilidad para usuarios con minusvalías físicas o
+con discapacidad visual. ACCESS debe ser uno de los siguientes, v1, v2, v3,
+m1 o m2. v1=menor deterioro visual, v2=discapacidad visual moderada,
+v3=ceguera, m1=dificultades motoras menores, m2=dificultades motoras
+moderadas.
.IP \fBconsole\fP=\fITTY,SPEED\fP 4
Establece la consola que se utilizará por defecto con la opción
"live\-getty". Ejemplo: "console=ttyS0,115200"
sistema funciona más rápido una vez iniciado, debido a que ya no necesita
más ponerse en contacto con el servidor.
.br
-Due to current limitations in busybox's wget and DNS resolution, an URL can
-not contain a hostname but an IP only.
+Debido a las limitaciones actuales de busybox, wget y la resolución de DNS,
+una dirección URL no puede contener un nombre de anfitrión, sino sólo una
+dirección IP.
.br
No funciona: http://ejemplo.com/ruta/al/sistema_de_ficheros.squashfs
.br
.IP \fBswapon\fP 4
Este parámetro permite el uso de particiones swap locales.
.IP \fBpersistence\fP 4
-live\-boot will probe devices for persistence media. These can be partitions
-(with the correct GPT name), filesystems (with the correct label) or
-image/archive files (with the correct file name). Overlays are labeled/named
-either "full\-ov", which will be mounted on /, or "custom\-ov", which can be
-completely customized (see \fIlive\-persistence.conf\fP(5)); snapshots are
-labeled/named either "live\-sn" or "home\-sn" and will be extracted into / or
-/home, respectively (see \fIlive\-snapshot\fP(1) for more information). The
-order these are handled are: full\-ov, custom\-ov, live\-sn, home\-sn. Overlay
-image files and snapshot archive files have extensions which determines
-their filesystem or archive type, e.g. "custom\-ov.ext4" and
+live\-boot buscará dispositivos con "persistence". Estos pueden ser
+particiones (con el nombre GPT correcto), sistemas de ficheros (con la
+etiqueta correcta) o ficheros imagen/archivo (con el nombre de fichero
+correcto). Overlays con la etiqueta/nombre "full\-ov", que se montará en / o
+"custom\-ov", que puede ser completamente personalizado (ver
+\fIlive\-persistence.conf\fP(5)); las instantáneas tienen la etiqueta/nombre
+"live\-sn" o "home\-sn" y se extraerán respectivamente en / o /home (ver
+\fIlive\-snapshot\fP(1) para más información). El orden en que se tratan son:
+full\-ov, custom\-ov, live\-sn, home\-sn. Los ficheros imagen overlay y los
+ficheros archivo instantáneas tienen extensiones que determinan el tipo de
+fichero o de sistema de ficheros, por ejemplo, "custom\-ov.ext4" y
"home\-sn.squashfs".
.IP "\fBpersistence\-encryption\fP=\fITYPE1\fP,\fITYPE2\fP ... \fITYPEn\fP" 4
Esta opción determina qué tipo de cifrado se usa cuando se prueban los
.\" FIXME
.SH "FICHEROS (antiguos)"
.IP \fB/etc/live.conf\fP 4
-Some variables can be configured via this config file (inside the live
-system).
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Algunas variables pueden ser configuradas a través de este fichero de
+configuración (dentro del sistema en vivo).
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Algunas variables pueden ser configuradas a través de este fichero de
+configuración (dentro del sistema en vivo).
.IP \fBlive/filesystem.module\fP 4
-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
-"/live" directory. If this file exists, only images listed here will be
-merged into the root aufs, and they will be loaded in the order listed
-here. The first entry in this file will be the "lowest" point in the aufs,
-and the last file in this list will be on the "top" of the aufs, directly
-below /overlay. Without this file, any images in the "/live" directory are
-loaded in alphanumeric order.
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Este fichero opcional (dentro del medio en vivo) contiene una lista de
+nombres de ficheros separados por espacios en blanco o retornos de carro que
+corresponden a imágenes de disco en el directorio "/live". Si este fichero
+existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz
+aufs y se cargarán en el orden en que aparecen aquí. La primera entrada en
+este fichero será el punto "más bajo" en el aufs y el último fichero de esta
+lista estará en el punto "más alto" del aufs, justo debajo de /overlay. Sin
+este fichero, las imágenes en el directorio "/live" se cargan en orden
+alfanumérico.
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Este fichero opcional (dentro del medio en vivo) contiene una lista de
+nombres de ficheros separados por espacios en blanco o retornos de carro que
+corresponden a imágenes de disco en el directorio "/live". Si este fichero
+existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz
+aufs, y se cargarán en el orden en que aparecen aquí. La primera entrada en
+este fichero será el punto "más bajo" en el aufs y el último fichero de esta
+lista estará en el punto "más alto" del aufs, justo debajo de /overlay. Sin
+este fichero, las imágenes en el directorio "/live" se cargan en orden
+alfanumérico.
.IP \fB/etc/live\-persistence.binds\fP 4
Este fichero opcional (que reside en el sistema rootfs, no en los medios en
vivo) se utiliza como una lista de directorios que no necesitan ser
\fIlive\-tools\fP(7)
.SH "PÁGINA WEB"
-More information about live\-boot and the Debian Live project can be found on
-the homepage at <\fIhttp://live.debian.net/\fP> and in the manual at
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual
+<\fIhttp://live.debian.net/manual/\fP>.
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual en
+<\fIhttp://live.debian.net/manual/\fP>.
+#\-#\-#\-#\-# live\-persistence.conf.5.po (live\-persistence.conf) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual en
<\fIhttp://live.debian.net/manual/\fP>.
.SH ERRORES
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH LIVE\-BOOT conf 05.06.2012 3.0~a30\-1 "Proyecto Debian Live"
+.TH LIVE\-BOOT conf 05.06.2012 3.0~a31\-1 "Proyecto Debian Live"
.SH NOMBRE
\fBlive\-persistence.conf\fP \- Fichero para configurar medios de almacenamiento
almacenado en la raíz de su sistema de ficheros. Cualquier volumen con una
de esas etiquetas debe tener uno de esos ficheros, o si no será ignorado.
.PP
-The format of \fBlive\-persistence.conf\fP allows empty lines and lines starting
-with a "#" (used for comments), both which will be ignored. A so called
-"custom mount" has the format:
+El formato de \fBlive\-persistence.conf\fP permite añadir líneas vacias o líneas
+que comiencen por "#" (usado para los comentarios), ambos serán
+ignorados. Un "montaje personalizado" tiene el formato:
.PP
.RS
\fIDIR\fP [\fIOPTION\fP]...
Los montajes personalizados definidos en \fBlive\-persistence.conf\fP aceptan
las siguientes opciones en una lista separada por comas:
.IP \fBsource\fP=\fIPATH\fP 4
-When given, store the persistence changes into \fIPATH\fP on the persistence
-media. \fIPATH\fP must be a relative path (with respect to the persistence
-media root) that cannot contain white spaces or the special . or .. path
-components, with the exception that it can be just . which means the
-persistence media root. This option is mostly relevant if you want to nest
-custom mounts, which otherwise would cause errors, or if you want to make
-the whole media root available (similar to the now deprecated \fBhome\-rw\fP
-type of persistence).
+Cuando se especifica, se guardan los cambios persistentes en \fIPATH\fP en los
+medios con persistencia. \fIPATH\fP debe ser una ruta relativa (respecto a la
+raíz del medio persistente) que no puede contener espacios en blanco o los
+componentes especiales . o .. con la excepción de que puede ser simplemente
+\&. lo que significa la raíz del medio persistente. Esta opción es relevante
+si se desea anidar montajes personalizados, lo que de otro modo produciría
+errores, o si se desea hacer que toda la raíz del medio esté disponible (de
+forma similar al ahora obsoleto tipo de persistencia \fBhome\-rw\fP)
.PP
Las siguientes opciones son mutuamente exclusivas (únicamente la última
tendrá efecto):
Enlace:
/home/user2/.bashrc \-> \fIVOL\fP/config\-files/user2/.bashrc (de b)
.TP
-Directorios:
+Directorio:
/homea/user2/.ssh (de c)
.TP
Enlace:
\fIlive\-tools\fP(7)
.SH "PÁGINA WEB"
-More information about live\-boot and the Debian Live project can be found on
-the homepage at <\fIhttp://live.debian.net/\fP> and in the manual at
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual
+<\fIhttp://live.debian.net/manual/\fP>.
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual en
+<\fIhttp://live.debian.net/manual/\fP>.
+#\-#\-#\-#\-# live\-persistence.conf.5.po (live\-persistence.conf) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual en
<\fIhttp://live.debian.net/manual/\fP>.
.SH ERRORES
<\fIdebian\-live@lists.debian.org\fP>.
.SH AUTOR
-live\-persistence.conf was written by anonym <\fIanonym@lavabit.com\fP>
-for the Debian project.
+live\-persistence.conf fue escrito por anonym <\fIanonym@lavabit.com\fP>
+para el proyecto Debian.
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH LIVE\-BOOT 1 05.06.2012 3.0~a30\-1 "Proyecto Debian Live"
+.TH LIVE\-BOOT 1 05.06.2012 3.0~a31\-1 "Proyecto Debian Live"
.SH NOMBRE
\fBlive\-snapshot\fP \- sencillo script para facilitar el uso de la persistencia
preparar un fichero imagen adecuado para ser directamente montado por
live\-boot como home.
.IP "\-d, \-\-device \fIDEVICE\fP" 4
-sets the device where the media with the snapshot/persistence file/partition
-will be put. If it is not specified, a tmpfs will be used and linked to the
-user's desktop to move it where it is needed. If the device has no
-filesystem, an ext4 fs will be automatically created and labelled according
-to the values specified after the "\-\-output" value or with a sane default.
+establece el dispositivo donde los medios con la instantánea/persistencia
+fichero/partición será puesto. Si no se especifica, se usará un tmpfs y se
+hará un enlace al escritorio del usuario para que pueda moverlo donde sea
+necesario. Si el dispositivo no tiene sistema de ficheros, se creará
+automáticamente un ext4 fs con una etiqueta de acuerdo a los valores
+especificados después del valor "\-\-output" o con un valor por defecto
+adecuado.
.IP "\-e, \-\-exclude\-list \fIFILE\fP" 4
un fichero que contiene una lista de nombres de ficheros/rutas que no deben
guardarse. Esta lista de exclusión será recordada en el medio de la
.SH FICHEROS
.IP \fB/etc/live.conf\fP 4
-Some variables can be configured via this config file (inside the live
-system).
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Algunas variables pueden ser configuradas a través de este fichero de
+configuración (dentro del sistema en vivo).
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Algunas variables pueden ser configuradas a través de este fichero de
+configuración (dentro del sistema en vivo).
.IP \fBlive/filesystem.module\fP 4
-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
-"/live" directory. If this file exists, only images listed here will be
-merged into the root aufs, and they will be loaded in the order listed
-here. The first entry in this file will be the "lowest" point in the aufs,
-and the last file in this list will be on the "top" of the aufs, directly
-below /overlay. Without this file, any images in the "/live" directory are
-loaded in alphanumeric order.
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Este fichero opcional (dentro del medio en vivo) contiene una lista de
+nombres de ficheros separados por espacios en blanco o retornos de carro que
+corresponden a imágenes de disco en el directorio "/live". Si este fichero
+existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz
+aufs y se cargarán en el orden en que aparecen aquí. La primera entrada en
+este fichero será el punto "más bajo" en el aufs y el último fichero de esta
+lista estará en el punto "más alto" del aufs, justo debajo de /overlay. Sin
+este fichero, las imágenes en el directorio "/live" se cargan en orden
+alfanumérico.
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Este fichero opcional (dentro del medio en vivo) contiene una lista de
+nombres de ficheros separados por espacios en blanco o retornos de carro que
+corresponden a imágenes de disco en el directorio "/live". Si este fichero
+existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz
+aufs, y se cargarán en el orden en que aparecen aquí. La primera entrada en
+este fichero será el punto "más bajo" en el aufs y el último fichero de esta
+lista estará en el punto "más alto" del aufs, justo debajo de /overlay. Sin
+este fichero, las imágenes en el directorio "/live" se cargan en orden
+alfanumérico.
.IP \fB/etc/live\-persistence.binds\fP 4
-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:
-i.e. their content does not need to survive reboots when using the
-persistence features.
+Este fichero opcional (que reside en el sistema rootfs, no en los medios en
+vivo) se utiliza como una lista de directorios que no necesitan ser
+persistentes: es decir, su contenido no necesita sobrevivir tras reiniciar
+cuando se utiliza la persistencia.
.br
Esto ahorra costosas escrituras y acelera las operaciones sobre los datos
volátiles, tales como las caches web y los archivos temporales (como por
\fIlive\-tools\fP(7)
.SH "PÁGINA WEB"
-More information about live\-boot and the Debian Live project can be found on
-the homepage at <\fIhttp://live.debian.net/\fP> and in the manual at
+#\-#\-#\-#\-# live\-snapshot.1.po (live\-snapshot) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual
+<\fIhttp://live.debian.net/manual/\fP>.
+#\-#\-#\-#\-# live\-boot.7.po (live\-boot) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual en
+<\fIhttp://live.debian.net/manual/\fP>.
+#\-#\-#\-#\-# live\-persistence.conf.5.po (live\-persistence.conf) #\-#\-#\-#\-#
+Se puede encontrar más información acerca de live\-boot y el proyecto Debian
+Live en la página web <\fIhttp://live.debian.net/\fP> y en el manual en
<\fIhttp://live.debian.net/manual/\fP>.
.SH ERRORES
#
msgid ""
msgstr ""
-"Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"Project-Id-Version: live-boot 3.0~a31-1\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\n"
"PO-Revision-Date: 2012-04-08 22:48+0300\n"
"Last-Translator: Daniel Baumann <daniel@debian.org>\n"
"Language-Team: none\n"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#, no-wrap
-msgid "3.0~a30-1"
+msgid "3.0~a31-1"
msgstr ""
#. type: TH
#
msgid ""
msgstr ""
-"Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"Project-Id-Version: live-boot 3.0~a31-1\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\n"
"PO-Revision-Date: 2012-04-08 22:48+0300\n"
"Last-Translator: Daniel Baumann <daniel@debian.org>\n"
"Language-Team: none\n"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#, no-wrap
-msgid "3.0~a30-1"
+msgid "3.0~a31-1"
msgstr ""
#. type: TH
#
msgid ""
msgstr ""
-"Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"Project-Id-Version: live-boot 3.0~a31-1\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\n"
"PO-Revision-Date: 2012-04-08 22:48+0300\n"
"Last-Translator: Daniel Baumann <daniel@debian.org>\n"
"Language-Team: none\n"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#, no-wrap
-msgid "3.0~a30-1"
+msgid "3.0~a31-1"
msgstr ""
#. type: TH
#
msgid ""
msgstr ""
-"Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"Project-Id-Version: live-boot 3.0~a31-1\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\n"
"PO-Revision-Date: 2012-05-13 18:30+0100\n"
"Last-Translator: Carlos Zuferri «chals» <chals@altorricon.com>\n"
"Language-Team: none\n"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
-#, fuzzy, no-wrap
-msgid "3.0~a30-1"
-msgstr "3.0~a28-1"
+#, no-wrap
+msgid "3.0~a31-1"
+msgstr "3.0~a31-1"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#. type: Plain text
#: en/live-boot.7:33
-#, fuzzy
-#| 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, "
-#| "v2=moderate visual impairment, v3=blindness, m1=minor motor difficulties, "
-#| "m2=moderate motor difficulties."
msgid ""
"Set the accessibility level for physically or visually impaired users. "
"ACCESS must be one of v1, v2, v3, m1, or m2. v1=lesser visual impairment, "
#. type: Plain text
#: en/live-boot.7:52
-#, fuzzy
-#| msgid ""
-#| "Due to current limitations in busyboxs wget and DNS resolution, an URL "
-#| "can not contain a hostname but an IP only."
msgid ""
"Due to current limitations in busybox's wget and DNS resolution, an URL can "
"not contain a hostname but an IP only."
#. type: IP
#: en/live-boot.7:75
-#, fuzzy, no-wrap
-#| msgid "B<integrity-check>"
+#, no-wrap
msgid "B<verify-checksums>"
-msgstr "B<integrity-check>"
+msgstr "B<verify-checksums>"
#. type: Plain text
#: en/live-boot.7:77
#. type: Plain text
#: en/live-boot.7:113
-#, fuzzy
-#| msgid ""
-#| "live-boot will probe devices for persistence media. These can be "
-#| "partitions (with the correct GPT name), filesystems (with the correct "
-#| "label) or image/archive files (with the correct file name). Overlays are "
-#| "labeled/named either \"full-ov\", which will be mounted on /, or \"custom-"
-#| "ov\", which can be completely customized (see I<live-persistence.conf>"
-#| "(5)); snapshots are labeled/named either \"live-sn\" or \"home-sn\" and "
-#| "will be extracted into / or /home, respectively (see I<live-snapshot>(1) "
-#| "for more information). The order these are handled are: full-ov, custom-"
-#| "ov, live-sn, home-sn. Overlay image files and snapshot archive files have "
-#| "extensions which determines their filesystem or archive type, e.g. "
-#| "\"custom-ov.ext4\" and \"\\home-sn.squashfs\"."
msgid ""
"live-boot will probe devices for persistence media. These can be partitions "
"(with the correct GPT name), filesystems (with the correct label) or image/"
#. type: Plain text
#: en/live-boot.7:145 en/live-snapshot.1:45
-#, fuzzy
msgid ""
"Some variables can be configured via this config file (inside the live "
"system)."
"configuración (dentro del sistema en vivo).\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
"Algunas variables pueden ser configuradas a través de este fichero de "
-"configuración (en el interior del sistema en vivo)."
+"configuración (dentro del sistema en vivo)."
#. type: IP
#: en/live-boot.7:145 en/live-snapshot.1:45
#. type: Plain text
#: en/live-boot.7:147 en/live-snapshot.1:47
-#, fuzzy
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 \"/"
"are loaded in alphanumeric order."
msgstr ""
"#-#-#-#-# live-snapshot.1.po (live-snapshot) #-#-#-#-#\n"
-"Este fichero opcional (en el interior del medio en vivo) contiene una lista "
-"de nombres de ficheros separados por espacios en blanco o retornos de carro "
-"que corresponden a imágenes de disco en el directorio \"/live\". Si este "
-"fichero existe, sólo las imágenes que figuran en esta lista se fusionarán en "
-"la raíz aufs y se cargarán en el orden en que aparecen aquí. La primera "
-"entrada en este fichero será el punto \"más bajo\" en el aufs y el último "
-"fichero de esta lista estará en el punto \"más alto\" del aufs, justo debajo "
-"de /overlay. Sin este fichero, las imágenes en el directorio \"/live\" se "
-"cargan en orden alfanumérico.\n"
+"Este fichero opcional (dentro del medio en vivo) contiene una lista de "
+"nombres de ficheros separados por espacios en blanco o retornos de carro que "
+"corresponden a imágenes de disco en el directorio \"/live\". Si este fichero "
+"existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz "
+"aufs y se cargarán en el orden en que aparecen aquí. La primera entrada en "
+"este fichero será el punto \"más bajo\" en el aufs y el último fichero de "
+"esta lista estará en el punto \"más alto\" del aufs, justo debajo de /"
+"overlay. Sin este fichero, las imágenes en el directorio \"/live\" se cargan "
+"en orden alfanumérico.\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
-"Este fichero opcional (en el interior del medio en vivo) contiene una lista "
-"de nombres de ficheros separados por espacios en blanco o retornos de carro "
-"que corresponden a imágenes de disco en el directorio \"/live\". Si este "
-"fichero existe, sólo las imágenes que figuran en esta lista se fusionarán en "
-"la raíz aufs, y se cargarán en el orden en que aparecen aquí. La primera "
-"entrada en este fichero será el punto \"más bajo\" en el aufs y el último "
-"fichero de esta lista estará en el punto \"más alto\" del aufs, justo debajo "
-"de /overlay. Sin este fichero, las imágenes en el directorio \"/live\" se "
+"Este fichero opcional (dentro del medio en vivo) contiene una lista de "
+"nombres de ficheros separados por espacios en blanco o retornos de carro que "
+"corresponden a imágenes de disco en el directorio \"/live\". Si este fichero "
+"existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz "
+"aufs, y se cargarán en el orden en que aparecen aquí. La primera entrada en "
+"este fichero será el punto \"más bajo\" en el aufs y el último fichero de "
+"esta lista estará en el punto \"más alto\" del aufs, justo debajo de /"
+"overlay. Sin este fichero, las imágenes en el directorio \"/live\" se "
"cargan en orden alfanumérico."
#. type: IP
#. type: Plain text
#: en/live-boot.7:173 en/live-persistence.conf.5:204 en/live-snapshot.1:65
-#, fuzzy
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 "
"E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
"Se puede encontrar más información acerca de live-boot y el proyecto Debian "
-"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual "
-"en E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
+"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual en "
+"E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
"#-#-#-#-# live-persistence.conf.5.po (live-persistence.conf) #-#-#-#-#\n"
"Se puede encontrar más información acerca de live-boot y el proyecto Debian "
"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual en "
#
msgid ""
msgstr ""
-"Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"Project-Id-Version: live-boot 3.0~a31-1\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\n"
"PO-Revision-Date: \n"
"Last-Translator: Carlos Zuferri «chals» <chals@altorricon.com>\n"
"Language-Team: none\n"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
-#, fuzzy, no-wrap
-msgid "3.0~a30-1"
-msgstr "3.0~a28-1"
+#, no-wrap
+msgid "3.0~a31-1"
+msgstr "3.0~a31-1"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#. type: Plain text
#: en/live-boot.7:173 en/live-persistence.conf.5:204 en/live-snapshot.1:65
-#, fuzzy
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 "
"E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
"Se puede encontrar más información acerca de live-boot y el proyecto Debian "
-"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual "
-"en E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
+"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual en "
+"E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
"#-#-#-#-# live-persistence.conf.5.po (live-persistence.conf) #-#-#-#-#\n"
"Se puede encontrar más información acerca de live-boot y el proyecto Debian "
"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual en "
#. type: Plain text
#: en/live-persistence.conf.5:17
-#, fuzzy
-#| msgid ""
-#| "The format of B<live-persistence.conf> allow empty lines and lines "
-#| "starting with a \"#\" (used for comments), both which will be ignored. A "
-#| "so called \"custom mount\" has the format:"
msgid ""
"The format of B<live-persistence.conf> allows empty lines and lines starting "
"with a \"#\" (used for comments), both which will be ignored. A so called "
#. type: Plain text
#: en/live-persistence.conf.5:69
-#, fuzzy
-#| msgid ""
-#| "When given, store the persistence changes into I<PATH> on the persistence "
-#| "media. I<PATH> must be a relative path (w.r.t. the persistence media "
-#| "root) that cannot contain white spaces or the special . or .. path "
-#| "components, with the exception that it can be just . which means the "
-#| "persistence media root. This option is mostly relevant if you want to "
-#| "nest custom mounts, which otherwise would cause errors, or if you want to "
-#| "make the whole media root available (similar to the now deprecated B<home-"
-#| "rw> type of persistence)."
msgid ""
"When given, store the persistence changes into I<PATH> on the persistence "
"media. I<PATH> must be a relative path (with respect to the persistence "
#: en/live-persistence.conf.5:168
#, no-wrap
msgid "Dir:"
-msgstr "Directorios:"
+msgstr "Directorio:"
#. type: Plain text
#: en/live-persistence.conf.5:171
#. type: Plain text
#: en/live-persistence.conf.5:213
-#, fuzzy
-#| msgid ""
-#| "live.persist was written by anonym E<lt>I<anonym@lavabit.com>E<gt> for "
-#| "the Debian project."
msgid ""
"live-persistence.conf was written by anonym E<lt>I<anonym@lavabit.com>E<gt> "
"for the Debian project."
#
msgid ""
msgstr ""
-"Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"Project-Id-Version: live-boot 3.0~a31-1\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\n"
"PO-Revision-Date: 2012-05-13 18:37+0100\n"
"Last-Translator: Carlos Zuferri «chals» <chals@altorricon.com>\n"
"Language-Team: none\n"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
-#, fuzzy, no-wrap
-msgid "3.0~a30-1"
-msgstr "3.0~a28-1"
+#, no-wrap
+msgid "3.0~a31-1"
+msgstr "3.0~a31-1"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#. type: Plain text
#: en/live-boot.7:145 en/live-snapshot.1:45
-#, fuzzy
msgid ""
"Some variables can be configured via this config file (inside the live "
"system)."
"configuración (dentro del sistema en vivo).\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
"Algunas variables pueden ser configuradas a través de este fichero de "
-"configuración (en el interior del sistema en vivo)."
+"configuración (dentro del sistema en vivo)."
#. type: IP
#: en/live-boot.7:145 en/live-snapshot.1:45
#. type: Plain text
#: en/live-boot.7:147 en/live-snapshot.1:47
-#, fuzzy
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 \"/"
"are loaded in alphanumeric order."
msgstr ""
"#-#-#-#-# live-snapshot.1.po (live-snapshot) #-#-#-#-#\n"
-"Este fichero opcional (en el interior del medio en vivo) contiene una lista "
-"de nombres de ficheros separados por espacios en blanco o retornos de carro "
-"que corresponden a imágenes de disco en el directorio \"/live\". Si este "
-"fichero existe, sólo las imágenes que figuran en esta lista se fusionarán en "
-"la raíz aufs y se cargarán en el orden en que aparecen aquí. La primera "
-"entrada en este fichero será el punto \"más bajo\" en el aufs y el último "
-"fichero de esta lista estará en el punto \"más alto\" del aufs, justo debajo "
-"de /overlay. Sin este fichero, las imágenes en el directorio \"/live\" se "
-"cargan en orden alfanumérico.\n"
+"Este fichero opcional (dentro del medio en vivo) contiene una lista de "
+"nombres de ficheros separados por espacios en blanco o retornos de carro que "
+"corresponden a imágenes de disco en el directorio \"/live\". Si este fichero "
+"existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz "
+"aufs y se cargarán en el orden en que aparecen aquí. La primera entrada en "
+"este fichero será el punto \"más bajo\" en el aufs y el último fichero de "
+"esta lista estará en el punto \"más alto\" del aufs, justo debajo de /"
+"overlay. Sin este fichero, las imágenes en el directorio \"/live\" se cargan "
+"en orden alfanumérico.\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
-"Este fichero opcional (en el interior del medio en vivo) contiene una lista "
-"de nombres de ficheros separados por espacios en blanco o retornos de carro "
-"que corresponden a imágenes de disco en el directorio \"/live\". Si este "
-"fichero existe, sólo las imágenes que figuran en esta lista se fusionarán en "
-"la raíz aufs, y se cargarán en el orden en que aparecen aquí. La primera "
-"entrada en este fichero será el punto \"más bajo\" en el aufs y el último "
-"fichero de esta lista estará en el punto \"más alto\" del aufs, justo debajo "
-"de /overlay. Sin este fichero, las imágenes en el directorio \"/live\" se "
+"Este fichero opcional (dentro del medio en vivo) contiene una lista de "
+"nombres de ficheros separados por espacios en blanco o retornos de carro que "
+"corresponden a imágenes de disco en el directorio \"/live\". Si este fichero "
+"existe, sólo las imágenes que figuran en esta lista se fusionarán en la raíz "
+"aufs, y se cargarán en el orden en que aparecen aquí. La primera entrada en "
+"este fichero será el punto \"más bajo\" en el aufs y el último fichero de "
+"esta lista estará en el punto \"más alto\" del aufs, justo debajo de /"
+"overlay. Sin este fichero, las imágenes en el directorio \"/live\" se "
"cargan en orden alfanumérico."
#. type: IP
#. type: Plain text
#: en/live-boot.7:173 en/live-persistence.conf.5:204 en/live-snapshot.1:65
-#, fuzzy
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 "
"E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
"#-#-#-#-# live-boot.7.po (live-boot) #-#-#-#-#\n"
"Se puede encontrar más información acerca de live-boot y el proyecto Debian "
-"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual "
-"en E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
+"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual en "
+"E<lt>I<http://live.debian.net/manual/>E<gt>.\n"
"#-#-#-#-# live-persistence.conf.5.po (live-persistence.conf) #-#-#-#-#\n"
"Se puede encontrar más información acerca de live-boot y el proyecto Debian "
"Live en la página web E<lt>I<http://live.debian.net/>E<gt> y en el manual en "
#. type: Plain text
#: en/live-snapshot.1:25
-#, fuzzy
-#| msgid ""
-#| "sets the device where the media which the snapshot/persistence file/"
-#| "partition will be put. If it is not specified, a tmpfs will be used and "
-#| "linked to the user's desktop to move it where it is needed. If the device "
-#| "has no filesystem, an ext4 fs will be automatically created and labelled "
-#| "according to the values specified after the \"--output\" value or with a "
-#| "sane default."
msgid ""
"sets the device where the media with the snapshot/persistence file/partition "
"will be put. If it is not specified, a tmpfs will be used and linked to the "
#. type: Plain text
#: en/live-snapshot.1:49
-#, fuzzy
-#| 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. "
-#| "their content does not need to survive reboots when using the persistence "
-#| "features."
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: i.e. "
msgid ""
msgstr ""
"Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\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"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#, no-wrap
-msgid "3.0~a30-1"
+msgid "3.0~a31-1"
msgstr ""
#. type: TH
msgid ""
msgstr ""
"Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\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"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#, no-wrap
-msgid "3.0~a30-1"
+msgid "3.0~a31-1"
msgstr ""
#. type: TH
msgid ""
msgstr ""
"Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2012-06-05 19:38+0300\n"
+"POT-Creation-Date: 2012-06-05 21:45+0300\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"
#. type: TH
#: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
#, no-wrap
-msgid "3.0~a30-1"
+msgid "3.0~a31-1"
msgstr ""
#. type: TH
then
touch /live.vars
fi
-
-is_live_path ()
-{
- DIRECTORY="${1}"
-
- if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ]
- then
- for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs2
- do
- if [ "$(echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM})" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ]
- then
- return 0
- fi
- done
- fi
-
- return 1
-}
-
-matches_uuid ()
-{
- if [ "${IGNORE_UUID}" ] || [ ! -e /conf/uuid.conf ]
- then
- return 0
- fi
-
- path="${1}"
- uuid="$(cat /conf/uuid.conf)"
-
- for try_uuid_file in "${path}/.disk/live-uuid"*
- do
- [ -e "${try_uuid_file}" ] || continue
-
- try_uuid="$(cat "${try_uuid_file}")"
-
- if [ "${uuid}" = "${try_uuid}" ]
- then
- return 0
- fi
- done
-
- return 1
-}
-
-get_backing_device ()
-{
- case "${1}" in
- *.squashfs|*.ext2|*.ext3|*.ext4|*.jffs2)
- echo $(setup_loop "${1}" "loop" "/sys/block/loop*" '0' "${LIVE_MEDIA_ENCRYPTION}" "${2}")
- ;;
-
- *.dir)
- echo "directory"
- ;;
-
- *)
- panic "Unrecognized live filesystem: ${1}"
- ;;
- esac
-}
-
-match_files_in_dir ()
-{
- # Does any files match pattern ${1} ?
- local pattern="${1}"
-
- if [ "$(echo ${pattern})" != "${pattern}" ]
- then
- return 0
- fi
-
- return 1
-}
-
-mount_images_in_directory ()
-{
- directory="${1}"
- rootmnt="${2}"
- mac="${3}"
-
-
- if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" ||
- match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext2" ||
- match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext3" ||
- match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext4" ||
- match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.jffs2" ||
- match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.dir"
- then
- [ -n "${mac}" ] && adddirectory="${directory}/${LIVE_MEDIA_PATH}/${mac}"
- setup_unionfs "${directory}/${LIVE_MEDIA_PATH}" "${rootmnt}" "${adddirectory}"
- else
- panic "No supported filesystem images found at /${LIVE_MEDIA_PATH}."
- fi
-}
-
-is_nice_device ()
-{
- sysfs_path="${1#/sys}"
-
- 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]$'
- then
- return 0
- elif echo ${sysfs_path} | grep -q "^/block/dm-"
- then
- return 0
- elif echo ${sysfs_path} | grep -q "^/block/mtdblock"
- then
- return 0
- fi
-
- return 1
-}
-
-check_dev ()
-{
- sysdev="${1}"
- devname="${2}"
- skip_uuid_check="${3}"
-
- # support for fromiso=.../isofrom=....
- if [ -n "$FROMISO" ]
- then
- ISO_DEVICE=$(dirname $FROMISO)
- if ! [ -b $ISO_DEVICE ]
- then
- # to support unusual device names like /dev/cciss/c0d0p1
- # as well we have to identify the block device name, let's
- # do that for up to 15 levels
- i=15
- while [ -n "$ISO_DEVICE" ] && [ "$i" -gt 0 ]
- do
- ISO_DEVICE=$(dirname ${ISO_DEVICE})
- [ -b "$ISO_DEVICE" ] && break
- i=$(($i -1))
- done
- fi
-
- if [ "$ISO_DEVICE" = "/" ]
- then
- echo "Warning: device for bootoption fromiso= ($FROMISO) not found.">>/boot.log
- else
- fs_type=$(get_fstype "${ISO_DEVICE}")
- if is_supported_fs ${fs_type}
- then
- mkdir /live/fromiso
- mount -t $fs_type "$ISO_DEVICE" /live/fromiso
- ISO_NAME="$(echo $FROMISO | sed "s|$ISO_DEVICE||")"
- loopdevname=$(setup_loop "/live/fromiso/${ISO_NAME}" "loop" "/sys/block/loop*" "" '')
- devname="${loopdevname}"
- else
- echo "Warning: unable to mount $ISO_DEVICE." >>/boot.log
- fi
- fi
- fi
-
- if [ -z "${devname}" ]
- then
- devname=$(sys2dev "${sysdev}")
- fi
-
- if [ -d "${devname}" ]
- then
- mount -o bind "${devname}" $mountpoint || continue
-
- if is_live_path $mountpoint
- then
- echo $mountpoint
- return 0
- else
- 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}" ]
- then
- loopdevname=$(setup_loop "${devname}" "loop" "/sys/block/loop*" "${LIVE_MEDIA_OFFSET}" '')
- devname="${loopdevname}"
- fi
-
- fstype=$(get_fstype "${devname}")
-
- if is_supported_fs ${fstype}
- then
- devuid=$(blkid -o value -s UUID "$devname")
- [ -n "$devuid" ] && grep -qs "\<$devuid\>" $tried && continue
- mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue
- [ -n "$devuid" ] && echo "$devuid" >> $tried
-
- if [ -n "${FINDISO}" ]
- then
- if [ -f ${mountpoint}/${FINDISO} ]
- then
- umount ${mountpoint}
- mkdir -p /live/findiso
- mount -t ${fstype} -o ro,noatime "${devname}" /live/findiso
- loopdevname=$(setup_loop "/live/findiso/${FINDISO}" "loop" "/sys/block/loop*" 0 "")
- devname="${loopdevname}"
- mount -t iso9660 -o ro,noatime "${devname}" ${mountpoint}
- else
- umount ${mountpoint}
- fi
- fi
-
- if is_live_path ${mountpoint} && \
- ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint})
- then
- echo ${mountpoint}
- return 0
- else
- umount ${mountpoint} 2>/dev/null
- fi
- fi
-
- if [ -n "${LIVE_MEDIA_OFFSET}" ]
- then
- losetup -d "${loopdevname}"
- fi
-
- return 1
-}
-
-find_livefs ()
-{
- timeout="${1}"
-
- # don't start autodetection before timeout has expired
- if [ -n "${LIVE_MEDIA_TIMEOUT}" ]
- then
- if [ "${timeout}" -lt "${LIVE_MEDIA_TIMEOUT}" ]
- then
- return 1
- fi
- fi
-
- # first look at the one specified in the command line
- case "${LIVE_MEDIA}" in
- removable-usb)
- for sysblock in $(removable_usb_dev "sys")
- do
- for dev in $(subdevices "${sysblock}")
- do
- if check_dev "${dev}"
- then
- return 0
- fi
- done
- done
- return 1
- ;;
-
- removable)
- for sysblock in $(removable_dev "sys")
- do
- for dev in $(subdevices "${sysblock}")
- do
- if check_dev "${dev}"
- then
- return 0
- fi
- done
- done
- return 1
- ;;
-
- *)
- if [ ! -z "${LIVE_MEDIA}" ]
- then
- if check_dev "null" "${LIVE_MEDIA}" "skip_uuid_check"
- then
- return 0
- fi
- fi
- ;;
- esac
-
- # or do the scan of block devices
- # prefer removable devices over non-removable devices, so scan them first
- devices_to_scan="$(removable_dev 'sys') $(non_removable_dev 'sys')"
-
- for sysblock in $devices_to_scan
- do
- devname=$(sys2dev "${sysblock}")
- [ -e "$devname" ] || continue
- fstype=$(get_fstype "${devname}")
-
- if /lib/udev/cdrom_id ${devname} > /dev/null
- then
- if check_dev "null" "${devname}"
- then
- return 0
- fi
- elif is_nice_device "${sysblock}"
- then
- for dev in $(subdevices "${sysblock}")
- do
- if check_dev "${dev}"
- then
- return 0
- fi
- done
- elif [ "${fstype}" = "squashfs" -o \
- "${fstype}" = "btrfs" -o \
- "${fstype}" = "ext2" -o \
- "${fstype}" = "ext3" -o \
- "${fstype}" = "ext4" -o \
- "${fstype}" = "jffs2" ]
- then
- # This is an ugly hack situation, the block device has
- # an image directly on it. It's hopefully
- # live-boot, so take it and run with it.
- ln -s "${devname}" "${devname}.${fstype}"
- echo "${devname}.${fstype}"
- return 0
- fi
- done
-
- return 1
-}
-
-mountroot ()
-{
- if [ -x /scripts/local-top/cryptroot ]; then
- /scripts/local-top/cryptroot
- fi
-
- exec 6>&1
- exec 7>&2
- exec > boot.log
- exec 2>&1
- tail -f boot.log >&7 &
- tailpid="${!}"
-
- . /live.vars
-
- _CMDLINE="$(cat /proc/cmdline)"
- Cmdline
-
- case "${LIVE_DEBUG}" in
- true)
- set -x
- ;;
- esac
-
- case "${LIVE_READ_ONLY}" in
- true)
- Read_only
- ;;
- esac
-
- Select_eth_device
-
- # Needed here too because some things (*cough* udev *cough*)
- # changes the timeout
-
- if [ ! -z "${NETBOOT}" ] || [ ! -z "${FETCH}" ] || [ ! -z "${HTTPFS}" ] || [ ! -z "${FTPFS}" ]
- then
- if do_netmount
- then
- livefs_root="${mountpoint}"
- else
- panic "Unable to find a live file system on the network"
- fi
- else
- if [ -n "${ISCSI_PORTAL}" ]
- then
- do_iscsi && livefs_root="${mountpoint}"
- elif [ -n "${PLAIN_ROOT}" ] && [ -n "${ROOT}" ]
- then
- # Do a local boot from hd
- livefs_root=${ROOT}
- else
- if [ -x /usr/bin/memdiskfind ]
- then
- MEMDISK=$(/usr/bin/memdiskfind)
-
- if [ $? -eq 0 ]
- then
- # We found a memdisk, set up phram
- modprobe phram phram=memdisk,${MEMDISK}
-
- # Load mtdblock, the memdisk will be /dev/mtdblock0
- modprobe mtdblock
- fi
- fi
-
- # Scan local devices for the image
- i=0
- while [ "$i" -lt 60 ]
- do
- livefs_root=$(find_livefs ${i})
-
- if [ -n "${livefs_root}" ]
- then
- break
- fi
-
- sleep 1
- i="$(($i + 1))"
- done
- fi
- fi
-
- if [ -z "${livefs_root}" ]
- then
- panic "Unable to find a medium containing a live file system"
- fi
-
- case "${LIVE_VERIFY_CHECKSUMS}" in
- true)
- Verify_checksums "${livefs_root}"
- ;;
- esac
-
- if [ "${TORAM}" ]
- then
- live_dest="ram"
- elif [ "${TODISK}" ]
- then
- live_dest="${TODISK}"
- fi
-
- if [ "${live_dest}" ]
- then
- log_begin_msg "Copying live media to ${live_dest}"
- copy_live_to "${livefs_root}" "${live_dest}"
- log_end_msg
- fi
-
- # if we do not unmount the ISO we can't run "fsck /dev/ice" later on
- # because the mountpoint is left behind in /proc/mounts, so let's get
- # rid of it when running from RAM
- if [ -n "$FROMISO" ] && [ "${TORAM}" ]
- then
- losetup -d /dev/loop0
-
- if is_mountpoint /live/fromiso
- then
- umount /live/fromiso
- rmdir --ignore-fail-on-non-empty /live/fromiso \
- >/dev/null 2>&1 || true
- fi
- fi
-
- if [ -n "${MODULETORAMFILE}" ] || [ -n "${PLAIN_ROOT}" ]
- then
- setup_unionfs "${livefs_root}" "${rootmnt}"
- else
- mac="$(get_mac)"
- mac="$(echo ${mac} | sed 's/-//g')"
- mount_images_in_directory "${livefs_root}" "${rootmnt}" "${mac}"
- fi
-
-
- if [ -n "${ROOT_PID}" ] ; then
- echo "${ROOT_PID}" > "${rootmnt}"/live/root.pid
- fi
-
- log_end_msg
-
- # unionfs-fuse needs /dev to be bind-mounted for the duration of
- # live-bottom; udev's init script will take care of things after that
- if [ "${UNIONTYPE}" = unionfs-fuse ]
- then
- mount -n -o bind /dev "${rootmnt}/dev"
- fi
-
- # Move to the new root filesystem so that programs there can get at it.
- if [ ! -d /root/live/image ]
- then
- mkdir -p /root/live/image
- mount --move /live/image /root/live/image
- fi
-
- # aufs2 in kernel versions around 2.6.33 has a regression:
- # directories can't be accessed when read for the first the time,
- # causing a failure for example when accessing /var/lib/fai
- # when booting FAI, this simple workaround solves it
- ls /root/* >/dev/null 2>&1
-
- # Move findiso directory to the new root filesystem so that programs there can get at it.
- if [ -d /live/findiso ] && [ ! -d /root/live/findiso ]
- then
- mkdir -p /root/live/findiso
- mount -n --move /live/findiso /root/live/findiso
- fi
-
- # if we do not unmount the ISO we can't run "fsck /dev/ice" later on
- # because the mountpoint is left behind in /proc/mounts, so let's get
- # rid of it when running from RAM
- if [ -n "$FINDISO" ] && [ "${TORAM}" ]
- then
- losetup -d /dev/loop0
-
- if is_mountpoint /root/live/findiso
- then
- umount /root/live/findiso
- rmdir --ignore-fail-on-non-empty /root/live/findiso \
- >/dev/null 2>&1 || true
- fi
- fi
-
- # copy snapshot configuration if exists
- if [ -f snapshot.conf ]
- then
- log_begin_msg "Copying snapshot.conf to ${rootmnt}/etc/live/boot.d"
- if [ ! -d "${rootmnt}/etc/live/boot.d" ]
- then
- mkdir -p "${rootmnt}/etc/live/boot.d"
- fi
- cp snapshot.conf "${rootmnt}/etc/live/boot.d/"
- log_end_msg
- fi
-
- if [ -f /etc/resolv.conf ] && [ ! -s ${rootmnt}/etc/resolv.conf ]
- then
- log_begin_msg "Copying /etc/resolv.conf to ${rootmnt}/etc/resolv.conf"
- cp -v /etc/resolv.conf ${rootmnt}/etc/resolv.conf
- log_end_msg
- fi
-
- if ! [ -d "/root/usr/share/live-boot" ]
- then
- panic "A wrong rootfs was mounted."
- fi
-
- persistence_exclude
- fstab
- Netbase
-
- case "${LIVE_SWAPON}" in
- true)
- Swapon
- ;;
- esac
-
- if [ "${UNIONFS}" = unionfs-fuse ]
- then
- umount "${rootmnt}/dev"
- fi
-
- exec 1>&6 6>&-
- exec 2>&7 7>&-
- kill ${tailpid}
- [ -w "${rootmnt}/var/log/" ] && mkdir -p /var/log/live && cp boot.log "${rootmnt}/var/log/live" 2>/dev/null
-}
;;
ethdevice=*)
- DEVICE="${ARGUMENT#ethdevice=}"
+ DEVICE="${_PARAMETER#ethdevice=}"
ETHDEVICE="${DEVICE}"
export DEVICE ETHDEVICE
;;
ethdevice-timeout=*)
- ETHDEV_TIMEOUT="${ARGUMENT#ethdevice-timeout=}"
+ ETHDEV_TIMEOUT="${_PARAMETER#ethdevice-timeout=}"
export ETHDEV_TIMEOUT
;;
fetch=*)
- FETCH="${ARGUMENT#fetch=}"
+ FETCH="${_PARAMETER#fetch=}"
export FETCH
;;
findiso=*)
- FINDISO="${ARGUMENT#findiso=}"
+ FINDISO="${_PARAMETER#findiso=}"
export FINDISO
;;
ftpfs=*)
- FTPFS="${ARGUMENT#ftpfs=}"
+ FTPFS="${_PARAMETER#ftpfs=}"
export FTPFS
;;
httpfs=*)
- HTTPFS="${ARGUMENT#httpfs=}"
+ HTTPFS="${_PARAMETER#httpfs=}"
export HTTPFS
;;
iscsi=*)
- ISCSI="${ARGUMENT#iscsi=}"
+ ISCSI="${_PARAMETER#iscsi=}"
#ip:port - separated by ;
ISCSI_PORTAL="${ISCSI%;*}"
if echo "${ISCSI_PORTAL}" | grep -q , ; then
;;
isofrom=*|fromiso=*)
- FROMISO="${ARGUMENT#*=}"
+ FROMISO="${_PARAMETER#*=}"
export FROMISO
;;
;;
ip=*)
- STATICIP="${ARGUMENT#ip=}"
+ STATICIP="${_PARAMETER#ip=}"
if [ -z "${STATICIP}" ]
then
;;
live-media=*|bootfrom=*)
- LIVE_MEDIA="${ARGUMENT#*=}"
+ LIVE_MEDIA="${_PARAMETER#*=}"
export LIVE_MEDIA
;;
live-media-encryption=*|encryption=*)
- LIVE_MEDIA_ENCRYPTION="${ARGUMENT#*=}"
+ LIVE_MEDIA_ENCRYPTION="${_PARAMETER#*=}"
export LIVE_MEDIA_ENCRYPTION
;;
live-media-offset=*)
- LIVE_MEDIA_OFFSET="${ARGUMENT#live-media-offset=}"
+ LIVE_MEDIA_OFFSET="${_PARAMETER#live-media-offset=}"
export LIVE_MEDIA_OFFSET
;;
live-media-path=*)
- LIVE_MEDIA_PATH="${ARGUMENT#live-media-path=}"
+ LIVE_MEDIA_PATH="${_PARAMETER#live-media-path=}"
export LIVE_MEDIA_PATH
;;
live-media-timeout=*)
- LIVE_MEDIA_TIMEOUT="${ARGUMENT#live-media-timeout=}"
+ LIVE_MEDIA_TIMEOUT="${_PARAMETER#live-media-timeout=}"
export LIVE_MEDIA_TIMEOUT
;;
module=*)
- MODULE="${ARGUMENT#module=}"
+ MODULE="${_PARAMETER#module=}"
export MODULE
;;
netboot=*)
- NETBOOT="${ARGUMENT#netboot=}"
+ NETBOOT="${_PARAMETER#netboot=}"
export NETBOOT
;;
nfsopts=*)
- NFSOPTS="${ARGUMENT#nfsopts=}"
+ NFSOPTS="${_PARAMETER#nfsopts=}"
export NFSOPTS
;;
nfsoverlay=*)
- NFS_COW="${ARGUMENT#nfsoverlay=}"
+ NFS_COW="${_PARAMETER#nfsoverlay=}"
export NFS_COW
;;
;;
ramdisk-size=*)
- ramdisk_size="${ARGUMENT#ramdisk-size=}"
+ ramdisk_size="${_PARAMETER#ramdisk-size=}"
;;
persistence)
;;
persistence-encryption=*)
- PERSISTENCE_ENCRYPTION="${ARGUMENT#*=}"
+ PERSISTENCE_ENCRYPTION="${_PARAMETER#*=}"
export PERSISTENCE_ENCRYPTION
;;
persistence-media=*)
- PERSISTENCE_MEDIA="${ARGUMENT#*=}"
+ PERSISTENCE_MEDIA="${_PARAMETER#*=}"
export PERSISTENCE_MEDIA
;;
persistence-method=*)
- PERSISTENCE_METHOD="${ARGUMENT#*=}"
+ PERSISTENCE_METHOD="${_PARAMETER#*=}"
export PERSISTENCE_METHOD
;;
persistence-path=*)
- PERSISTENCE_PATH="${ARGUMENT#persistence-path=}"
+ PERSISTENCE_PATH="${_PARAMETER#persistence-path=}"
export PERSISTENCE_PATH
;;
persistence-read-only)
;;
persistence-storage=*)
- PERSISTENCE_STORAGE="${ARGUMENT#persistence-storage=}"
+ PERSISTENCE_STORAGE="${_PARAMETER#persistence-storage=}"
export PERSISTENCE_STORAGE
;;
persistence-subtext=*)
- old_root_overlay_label="${old_root_overlay_label}-${ARGUMENT#persistence-subtext=}"
- old_home_overlay_label="${old_home_overlay_label}-${ARGUMENT#persistence-subtext=}"
- custom_overlay_label="${custom_overlay_label}-${ARGUMENT#persistence-subtext=}"
- root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
- old_root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
- home_snapshot_label="${home_snapshot_label}-${ARGUMENT#persistence-subtext=}"
+ old_root_overlay_label="${old_root_overlay_label}-${_PARAMETER#persistence-subtext=}"
+ old_home_overlay_label="${old_home_overlay_label}-${_PARAMETER#persistence-subtext=}"
+ custom_overlay_label="${custom_overlay_label}-${_PARAMETER#persistence-subtext=}"
+ root_snapshot_label="${root_snapshot_label}-${_PARAMETER#persistence-subtext=}"
+ old_root_snapshot_label="${root_snapshot_label}-${_PARAMETER#persistence-subtext=}"
+ home_snapshot_label="${home_snapshot_label}-${_PARAMETER#persistence-subtext=}"
;;
nopersistence)
;;
noprompt=*)
- NOPROMPT="${ARGUMENT#noprompt=}"
+ NOPROMPT="${_PARAMETER#noprompt=}"
export NOPROMPT
;;
;;
todisk=*)
- TODISK="${ARGUMENT#todisk=}"
+ TODISK="${_PARAMETER#todisk=}"
export TODISK
;;
toram=*)
TORAM="true"
- MODULETORAM="${ARGUMENT#toram=}"
+ MODULETORAM="${_PARAMETER#toram=}"
export TORAM MODULETORAM
;;
;;
root=*)
- ROOT="${ARGUMENT#root=}"
+ ROOT="${_PARAMETER#root=}"
export ROOT
;;
union=*)
- UNIONTYPE="${ARGUMENT#union=}"
+ UNIONTYPE="${_PARAMETER#union=}"
export UNIONTYPE
;;
esac
#set -e
+is_live_path ()
+{
+ DIRECTORY="${1}"
+
+ if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ]
+ then
+ for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs2
+ do
+ if [ "$(echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM})" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ]
+ then
+ return 0
+ fi
+ done
+ fi
+
+ return 1
+}
+
+matches_uuid ()
+{
+ if [ "${IGNORE_UUID}" ] || [ ! -e /conf/uuid.conf ]
+ then
+ return 0
+ fi
+
+ path="${1}"
+ uuid="$(cat /conf/uuid.conf)"
+
+ for try_uuid_file in "${path}/.disk/live-uuid"*
+ do
+ [ -e "${try_uuid_file}" ] || continue
+
+ try_uuid="$(cat "${try_uuid_file}")"
+
+ if [ "${uuid}" = "${try_uuid}" ]
+ then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+get_backing_device ()
+{
+ case "${1}" in
+ *.squashfs|*.ext2|*.ext3|*.ext4|*.jffs2)
+ echo $(setup_loop "${1}" "loop" "/sys/block/loop*" '0' "${LIVE_MEDIA_ENCRYPTION}" "${2}")
+ ;;
+
+ *.dir)
+ echo "directory"
+ ;;
+
+ *)
+ panic "Unrecognized live filesystem: ${1}"
+ ;;
+ esac
+}
+
+match_files_in_dir ()
+{
+ # Does any files match pattern ${1} ?
+ local pattern="${1}"
+
+ if [ "$(echo ${pattern})" != "${pattern}" ]
+ then
+ return 0
+ fi
+
+ return 1
+}
+
+mount_images_in_directory ()
+{
+ directory="${1}"
+ rootmnt="${2}"
+ mac="${3}"
+
+
+ if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" ||
+ match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext2" ||
+ match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext3" ||
+ match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext4" ||
+ match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.jffs2" ||
+ match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.dir"
+ then
+ [ -n "${mac}" ] && adddirectory="${directory}/${LIVE_MEDIA_PATH}/${mac}"
+ setup_unionfs "${directory}/${LIVE_MEDIA_PATH}" "${rootmnt}" "${adddirectory}"
+ else
+ panic "No supported filesystem images found at /${LIVE_MEDIA_PATH}."
+ fi
+}
+
+is_nice_device ()
+{
+ sysfs_path="${1#/sys}"
+
+ 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]$'
+ then
+ return 0
+ elif echo ${sysfs_path} | grep -q "^/block/dm-"
+ then
+ return 0
+ elif echo ${sysfs_path} | grep -q "^/block/mtdblock"
+ then
+ return 0
+ fi
+
+ return 1
+}
+
+check_dev ()
+{
+ sysdev="${1}"
+ devname="${2}"
+ skip_uuid_check="${3}"
+
+ # support for fromiso=.../isofrom=....
+ if [ -n "$FROMISO" ]
+ then
+ ISO_DEVICE=$(dirname $FROMISO)
+ if ! [ -b $ISO_DEVICE ]
+ then
+ # to support unusual device names like /dev/cciss/c0d0p1
+ # as well we have to identify the block device name, let's
+ # do that for up to 15 levels
+ i=15
+ while [ -n "$ISO_DEVICE" ] && [ "$i" -gt 0 ]
+ do
+ ISO_DEVICE=$(dirname ${ISO_DEVICE})
+ [ -b "$ISO_DEVICE" ] && break
+ i=$(($i -1))
+ done
+ fi
+
+ if [ "$ISO_DEVICE" = "/" ]
+ then
+ echo "Warning: device for bootoption fromiso= ($FROMISO) not found.">>/boot.log
+ else
+ fs_type=$(get_fstype "${ISO_DEVICE}")
+ if is_supported_fs ${fs_type}
+ then
+ mkdir /live/fromiso
+ mount -t $fs_type "$ISO_DEVICE" /live/fromiso
+ ISO_NAME="$(echo $FROMISO | sed "s|$ISO_DEVICE||")"
+ loopdevname=$(setup_loop "/live/fromiso/${ISO_NAME}" "loop" "/sys/block/loop*" "" '')
+ devname="${loopdevname}"
+ else
+ echo "Warning: unable to mount $ISO_DEVICE." >>/boot.log
+ fi
+ fi
+ fi
+
+ if [ -z "${devname}" ]
+ then
+ devname=$(sys2dev "${sysdev}")
+ fi
+
+ if [ -d "${devname}" ]
+ then
+ mount -o bind "${devname}" $mountpoint || continue
+
+ if is_live_path $mountpoint
+ then
+ echo $mountpoint
+ return 0
+ else
+ 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}" ]
+ then
+ loopdevname=$(setup_loop "${devname}" "loop" "/sys/block/loop*" "${LIVE_MEDIA_OFFSET}" '')
+ devname="${loopdevname}"
+ fi
+
+ fstype=$(get_fstype "${devname}")
+
+ if is_supported_fs ${fstype}
+ then
+ devuid=$(blkid -o value -s UUID "$devname")
+ [ -n "$devuid" ] && grep -qs "\<$devuid\>" $tried && continue
+ mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue
+ [ -n "$devuid" ] && echo "$devuid" >> $tried
+
+ if [ -n "${FINDISO}" ]
+ then
+ if [ -f ${mountpoint}/${FINDISO} ]
+ then
+ umount ${mountpoint}
+ mkdir -p /live/findiso
+ mount -t ${fstype} -o ro,noatime "${devname}" /live/findiso
+ loopdevname=$(setup_loop "/live/findiso/${FINDISO}" "loop" "/sys/block/loop*" 0 "")
+ devname="${loopdevname}"
+ mount -t iso9660 -o ro,noatime "${devname}" ${mountpoint}
+ else
+ umount ${mountpoint}
+ fi
+ fi
+
+ if is_live_path ${mountpoint} && \
+ ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint})
+ then
+ echo ${mountpoint}
+ return 0
+ else
+ umount ${mountpoint} 2>/dev/null
+ fi
+ fi
+
+ if [ -n "${LIVE_MEDIA_OFFSET}" ]
+ then
+ losetup -d "${loopdevname}"
+ fi
+
+ return 1
+}
+
+find_livefs ()
+{
+ timeout="${1}"
+
+ # don't start autodetection before timeout has expired
+ if [ -n "${LIVE_MEDIA_TIMEOUT}" ]
+ then
+ if [ "${timeout}" -lt "${LIVE_MEDIA_TIMEOUT}" ]
+ then
+ return 1
+ fi
+ fi
+
+ # first look at the one specified in the command line
+ case "${LIVE_MEDIA}" in
+ removable-usb)
+ for sysblock in $(removable_usb_dev "sys")
+ do
+ for dev in $(subdevices "${sysblock}")
+ do
+ if check_dev "${dev}"
+ then
+ return 0
+ fi
+ done
+ done
+ return 1
+ ;;
+
+ removable)
+ for sysblock in $(removable_dev "sys")
+ do
+ for dev in $(subdevices "${sysblock}")
+ do
+ if check_dev "${dev}"
+ then
+ return 0
+ fi
+ done
+ done
+ return 1
+ ;;
+
+ *)
+ if [ ! -z "${LIVE_MEDIA}" ]
+ then
+ if check_dev "null" "${LIVE_MEDIA}" "skip_uuid_check"
+ then
+ return 0
+ fi
+ fi
+ ;;
+ esac
+
+ # or do the scan of block devices
+ # prefer removable devices over non-removable devices, so scan them first
+ devices_to_scan="$(removable_dev 'sys') $(non_removable_dev 'sys')"
+
+ for sysblock in $devices_to_scan
+ do
+ devname=$(sys2dev "${sysblock}")
+ [ -e "$devname" ] || continue
+ fstype=$(get_fstype "${devname}")
+
+ if /lib/udev/cdrom_id ${devname} > /dev/null
+ then
+ if check_dev "null" "${devname}"
+ then
+ return 0
+ fi
+ elif is_nice_device "${sysblock}"
+ then
+ for dev in $(subdevices "${sysblock}")
+ do
+ if check_dev "${dev}"
+ then
+ return 0
+ fi
+ done
+ elif [ "${fstype}" = "squashfs" -o \
+ "${fstype}" = "btrfs" -o \
+ "${fstype}" = "ext2" -o \
+ "${fstype}" = "ext3" -o \
+ "${fstype}" = "ext4" -o \
+ "${fstype}" = "jffs2" ]
+ then
+ # This is an ugly hack situation, the block device has
+ # an image directly on it. It's hopefully
+ # live-boot, so take it and run with it.
+ ln -s "${devname}" "${devname}.${fstype}"
+ echo "${devname}.${fstype}"
+ return 0
+ fi
+ done
+
+ return 1
+}
+
really_export ()
{
STRING="${1}"
--- /dev/null
+#!/bin/sh
+
+# set -e
+
+mountroot ()
+{
+ if [ -x /scripts/local-top/cryptroot ]; then
+ /scripts/local-top/cryptroot
+ fi
+
+ exec 6>&1
+ exec 7>&2
+ exec > boot.log
+ exec 2>&1
+ tail -f boot.log >&7 &
+ tailpid="${!}"
+
+ . /live.vars
+
+ _CMDLINE="$(cat /proc/cmdline)"
+ Cmdline
+
+ case "${LIVE_DEBUG}" in
+ true)
+ set -x
+ ;;
+ esac
+
+ case "${LIVE_READ_ONLY}" in
+ true)
+ Read_only
+ ;;
+ esac
+
+ Select_eth_device
+
+ # Needed here too because some things (*cough* udev *cough*)
+ # changes the timeout
+
+ if [ ! -z "${NETBOOT}" ] || [ ! -z "${FETCH}" ] || [ ! -z "${HTTPFS}" ] || [ ! -z "${FTPFS}" ]
+ then
+ if do_netmount
+ then
+ livefs_root="${mountpoint}"
+ else
+ panic "Unable to find a live file system on the network"
+ fi
+ else
+ if [ -n "${ISCSI_PORTAL}" ]
+ then
+ do_iscsi && livefs_root="${mountpoint}"
+ elif [ -n "${PLAIN_ROOT}" ] && [ -n "${ROOT}" ]
+ then
+ # Do a local boot from hd
+ livefs_root=${ROOT}
+ else
+ if [ -x /usr/bin/memdiskfind ]
+ then
+ MEMDISK=$(/usr/bin/memdiskfind)
+
+ if [ $? -eq 0 ]
+ then
+ # We found a memdisk, set up phram
+ modprobe phram phram=memdisk,${MEMDISK}
+
+ # Load mtdblock, the memdisk will be /dev/mtdblock0
+ modprobe mtdblock
+ fi
+ fi
+
+ # Scan local devices for the image
+ i=0
+ while [ "$i" -lt 60 ]
+ do
+ livefs_root=$(find_livefs ${i})
+
+ if [ -n "${livefs_root}" ]
+ then
+ break
+ fi
+
+ sleep 1
+ i="$(($i + 1))"
+ done
+ fi
+ fi
+
+ if [ -z "${livefs_root}" ]
+ then
+ panic "Unable to find a medium containing a live file system"
+ fi
+
+ case "${LIVE_VERIFY_CHECKSUMS}" in
+ true)
+ Verify_checksums "${livefs_root}"
+ ;;
+ esac
+
+ if [ "${TORAM}" ]
+ then
+ live_dest="ram"
+ elif [ "${TODISK}" ]
+ then
+ live_dest="${TODISK}"
+ fi
+
+ if [ "${live_dest}" ]
+ then
+ log_begin_msg "Copying live media to ${live_dest}"
+ copy_live_to "${livefs_root}" "${live_dest}"
+ log_end_msg
+ fi
+
+ # if we do not unmount the ISO we can't run "fsck /dev/ice" later on
+ # because the mountpoint is left behind in /proc/mounts, so let's get
+ # rid of it when running from RAM
+ if [ -n "$FROMISO" ] && [ "${TORAM}" ]
+ then
+ losetup -d /dev/loop0
+
+ if is_mountpoint /live/fromiso
+ then
+ umount /live/fromiso
+ rmdir --ignore-fail-on-non-empty /live/fromiso \
+ >/dev/null 2>&1 || true
+ fi
+ fi
+
+ if [ -n "${MODULETORAMFILE}" ] || [ -n "${PLAIN_ROOT}" ]
+ then
+ setup_unionfs "${livefs_root}" "${rootmnt}"
+ else
+ mac="$(get_mac)"
+ mac="$(echo ${mac} | sed 's/-//g')"
+ mount_images_in_directory "${livefs_root}" "${rootmnt}" "${mac}"
+ fi
+
+
+ if [ -n "${ROOT_PID}" ] ; then
+ echo "${ROOT_PID}" > "${rootmnt}"/live/root.pid
+ fi
+
+ log_end_msg
+
+ # unionfs-fuse needs /dev to be bind-mounted for the duration of
+ # live-bottom; udev's init script will take care of things after that
+ if [ "${UNIONTYPE}" = unionfs-fuse ]
+ then
+ mount -n -o bind /dev "${rootmnt}/dev"
+ fi
+
+ # Move to the new root filesystem so that programs there can get at it.
+ if [ ! -d /root/live/image ]
+ then
+ mkdir -p /root/live/image
+ mount --move /live/image /root/live/image
+ fi
+
+ # aufs2 in kernel versions around 2.6.33 has a regression:
+ # directories can't be accessed when read for the first the time,
+ # causing a failure for example when accessing /var/lib/fai
+ # when booting FAI, this simple workaround solves it
+ ls /root/* >/dev/null 2>&1
+
+ # Move findiso directory to the new root filesystem so that programs there can get at it.
+ if [ -d /live/findiso ] && [ ! -d /root/live/findiso ]
+ then
+ mkdir -p /root/live/findiso
+ mount -n --move /live/findiso /root/live/findiso
+ fi
+
+ # if we do not unmount the ISO we can't run "fsck /dev/ice" later on
+ # because the mountpoint is left behind in /proc/mounts, so let's get
+ # rid of it when running from RAM
+ if [ -n "$FINDISO" ] && [ "${TORAM}" ]
+ then
+ losetup -d /dev/loop0
+
+ if is_mountpoint /root/live/findiso
+ then
+ umount /root/live/findiso
+ rmdir --ignore-fail-on-non-empty /root/live/findiso \
+ >/dev/null 2>&1 || true
+ fi
+ fi
+
+ # copy snapshot configuration if exists
+ if [ -f snapshot.conf ]
+ then
+ log_begin_msg "Copying snapshot.conf to ${rootmnt}/etc/live/boot.d"
+ if [ ! -d "${rootmnt}/etc/live/boot.d" ]
+ then
+ mkdir -p "${rootmnt}/etc/live/boot.d"
+ fi
+ cp snapshot.conf "${rootmnt}/etc/live/boot.d/"
+ log_end_msg
+ fi
+
+ if [ -f /etc/resolv.conf ] && [ ! -s ${rootmnt}/etc/resolv.conf ]
+ then
+ log_begin_msg "Copying /etc/resolv.conf to ${rootmnt}/etc/resolv.conf"
+ cp -v /etc/resolv.conf ${rootmnt}/etc/resolv.conf
+ log_end_msg
+ fi
+
+ if ! [ -d "/lib/live/boot" ]
+ then
+ panic "A wrong rootfs was mounted."
+ fi
+
+ persistence_exclude
+ fstab
+ Netbase
+
+ case "${LIVE_SWAPON}" in
+ true)
+ Swapon
+ ;;
+ esac
+
+ if [ "${UNIONFS}" = unionfs-fuse ]
+ then
+ umount "${rootmnt}/dev"
+ fi
+
+ exec 1>&6 6>&-
+ exec 2>&7 7>&-
+ kill ${tailpid}
+ [ -w "${rootmnt}/var/log/" ] && mkdir -p /var/log/live && cp boot.log "${rootmnt}/var/log/live" 2>/dev/null
+}