Adding upstream version 3.0~a30. upstream/3.0_a30
authorDaniel Baumann <daniel@debian.org>
Tue, 5 Jun 2012 17:39:48 +0000 (19:39 +0200)
committerDaniel Baumann <daniel@debian.org>
Tue, 5 Jun 2012 17:39:48 +0000 (19:39 +0200)
40 files changed:
Makefile
VERSION
backends/initramfs-tools/live.hook [moved from initramfs-tools/hooks/live with 96% similarity]
backends/initramfs-tools/live.script [moved from initramfs-tools/scripts/live with 100% similarity]
bin/live-snapshot
initramfs-tools/scripts/live-bottom/08persistence_excludes [deleted file]
initramfs-tools/scripts/live-bottom/10validateroot [deleted file]
initramfs-tools/scripts/live-bottom/12fstab [deleted file]
initramfs-tools/scripts/live-bottom/23networking [deleted file]
initramfs-tools/scripts/live-premount/select_eth_device [deleted file]
local/languagelist [deleted file]
manpages/de/live-boot.de.7
manpages/de/live-persistence.conf.de.5
manpages/de/live-snapshot.de.1
manpages/en/live-boot.7
manpages/en/live-persistence.conf.5
manpages/en/live-snapshot.1
manpages/es/live-boot.es.7
manpages/es/live-persistence.conf.es.5
manpages/es/live-snapshot.es.1
manpages/po/de/live-boot.7.po
manpages/po/de/live-persistence.conf.5.po
manpages/po/de/live-snapshot.1.po
manpages/po/es/live-boot.7.po
manpages/po/es/live-persistence.conf.5.po
manpages/po/es/live-snapshot.1.po
manpages/pot/live-boot.7.pot
manpages/pot/live-persistence.conf.5.pot
manpages/pot/live-snapshot.1.pot
scripts/boot.sh
scripts/boot/cmdline.sh [moved from scripts/boot/arguments.sh with 78% similarity]
scripts/boot/fstab.sh [new file with mode: 0755]
scripts/boot/misc-helpers.sh
scripts/boot/mount-iscsi.sh
scripts/boot/netbase.sh [new file with mode: 0755]
scripts/boot/persistence-excludes.sh [new file with mode: 0755]
scripts/boot/read-only.sh
scripts/boot/select-eth-device.sh [new file with mode: 0755]
scripts/boot/swapon.sh [new file with mode: 0755]
scripts/boot/verify-checksums.sh [new file with mode: 0755]

index e202f85..4aac9bc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ SHELL := sh -e
 
 LANGUAGES = $(shell cd manpages/po && ls)
 
-SCRIPTS = bin/* initramfs-tools/hooks/* initramfs-tools/scripts/live initramfs-tools/scripts/*/* scripts/*.sh scripts/*/*
+SCRIPTS = bin/* backends/initramfs-tools/* scripts/*.sh scripts/*/*
 
 all: build
 
@@ -50,10 +50,12 @@ install:
        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 local/languagelist $(DESTDIR)/usr/share/live-boot
+       cp bin/live-preseed bin/live-reconfigure $(DESTDIR)/usr/share/live-boot
 
-       mkdir -p $(DESTDIR)/usr/share/initramfs-tools
-       cp -r initramfs-tools/* $(DESTDIR)/usr/share/initramfs-tools
+       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 backends/initramfs-tools/live.script $(DESTDIR)/usr/share/initramfs-tools/scripts/live
 
        # Installing docs
        mkdir -p $(DESTDIR)/usr/share/doc/live-boot
@@ -87,11 +89,9 @@ uninstall:
        rm -rf $(DESTDIR)/usr/share/live-boot
 
        rm -f $(DESTDIR)/usr/share/initramfs-tools/hooks/live
-       rm -rf $(DESTDIR)/usr/share/initramfs-tools/scripts/live*
-       rm -f $(DESTDIR)/usr/share/initramfs-tools/scripts/local-top/live
+       rm -f $(DESTDIR)/usr/share/initramfs-tools/scripts/live
 
        rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/hooks > /dev/null 2>&1 || true
-       rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/scripts/local-top > /dev/null 2>&1 || true
        rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools/scripts > /dev/null 2>&1 || true
        rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/initramfs-tools > /dev/null 2>&1 || true
        rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true
diff --git a/VERSION b/VERSION
index 791dbb4..d056a44 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.0~a29-1
+3.0~a30-1
similarity index 96%
rename from initramfs-tools/hooks/live
rename to backends/initramfs-tools/live.hook
index cfe1534..5fc01ec 100755 (executable)
@@ -54,13 +54,6 @@ fi
 mkdir -p "${DESTDIR}/lib/live"
 cp -a /lib/live/boot.sh /lib/live/boot "${DESTDIR}/lib/live"
 
-# Configuration
-if [ -e /usr/share/live-boot/languagelist ]
-then
-       mkdir -p "${DESTDIR}"/usr/share/live-boot
-       cp /usr/share/live-boot/languagelist "${DESTDIR}"/usr/share/live-boot
-fi
-
 # Directories
 mkdir -p "${DESTDIR}"/lib/live-boot
 
@@ -182,7 +175,9 @@ then
 fi
 
 [ "${QUIET}" ] || echo -n " "utils
-# Program: md5sum
+
+# Feature: Verify Checksums
+copy_exec /usr/bin/sha256sum /bin
 copy_exec /usr/bin/md5sum /bin
 
 # Program: memdisk
index e684824..46ae597 100755 (executable)
@@ -187,12 +187,12 @@ Try_refresh ()
        FOUND=""
        if [ -n "${ROOTSNAP}" ]; then
                "${EXECUTABLE}" --resync-string="${ROOTSNAP}"
-               FOUND="Yes"
+               FOUND="true"
        fi
 
        if [ -n "${HOMESNAP}" ]; then
                "${EXECUTABLE}" --resync-string="${HOMESNAP}"
-               FOUND="Yes"
+               FOUND="true"
        fi
 
        if [ -z "${FOUND}" ]
diff --git a/initramfs-tools/scripts/live-bottom/08persistence_excludes b/initramfs-tools/scripts/live-bottom/08persistence_excludes
deleted file mode 100755 (executable)
index 04c685d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-# Persistence enhancer script
-# This script saves precious time on slow persistence devices/image files
-# and writes on flash based device.
-# a tmpfs on $PERSTMP is mounted and directories listed in
-# /etc/live-persistence.binds will be copied there and then bind mounted back.
-
-#set -e
-
-# initramfs-tools header
-
-PREREQ=""
-
-prereqs()
-{
-       echo "${PREREQ}"
-}
-
-case "${1}" in
-       prereqs)
-               prereqs
-               exit 0
-               ;;
-esac
-
-# live-boot header
-
-if [ -z "${PERSISTENCE}" ] || [ -n "${NOPERSISTENCE}" ] || [ -z "${PERSISTENCE_IS_ON}" ] || [ ! -f /root/etc/live-persistence.binds ]
-then
-       exit 0
-fi
-
-# FIXME: stop hardcoding overloading of initramfs-tools functions
-. /scripts/functions
-. /lib/live/boot/initramfs-tools.sh
-
-# live-boot script
-
-dirs="$(sed -e '/^ *$/d' -e '/^#.*$/d' /root/etc/live-persistence.binds | tr '\n' '\0')"
-if [ -z "${dirs}" ]
-then
-       exit 0
-fi
-
-log_begin_msg "Moving persistence bind mounts"
-
-PERSTMP="/root/live/persistence-binds"
-CPIO="/bin/cpio"
-
-if [ ! -d "${PERSTMP}" ]
-then
-       mkdir -p "${PERSTMP}"
-fi
-
-mount -t tmpfs tmpfs "${PERSTMP}"
-
-for dir in $(echo "${dirs}" | tr '\0' '\n')
-do
-       if [ ! -e "/root/${dir}" ] && [ ! -L "/root/${dir}" ]
-       then
-               # directory do not exists, create it
-               mkdir -p "/root/${dir}"
-       elif [ ! -d "/root/${dir}" ]
-       then
-               # it is not a directory, skip it
-               break
-       fi
-
-       # Copy previous content if any
-       cd "/root/${dir}"
-       find . -print0 | ${CPIO} -pumd0 "${PERSTMP}/${dir}"
-       cd "${OLDPWD}"
-
-       # Bind mount it to origin
-       mount -o bind "${PERSTMP}/${dir}" "/root/${dir}"
-done
-
-log_end_msg
diff --git a/initramfs-tools/scripts/live-bottom/10validateroot b/initramfs-tools/scripts/live-bottom/10validateroot
deleted file mode 100755 (executable)
index 3946306..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-# Error out in case a "wrong" file system was chosen.
-
-#set -e
-
-# initramfs-tools header
-
-PREREQ=""
-
-prereqs()
-{
-       echo "${PREREQ}"
-}
-
-case "${1}" in
-       prereqs)
-               prereqs
-               exit 0
-               ;;
-esac
-
-# FIXME: stop hardcoding overloading of initramfs-tools functions
-. /scripts/functions
-. /lib/live/boot/initramfs-tools.sh
-
-if ! [ -d "/root/usr/share/live-boot" ]
-then
-       panic "A wrong rootfs was mounted."
-fi
diff --git a/initramfs-tools/scripts/live-bottom/12fstab b/initramfs-tools/scripts/live-bottom/12fstab
deleted file mode 100755 (executable)
index 89f6e1e..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/sh
-
-#set -e
-
-# initramfs-tools header
-
-PREREQ=""
-FSTAB=/root/etc/fstab
-
-prereqs()
-{
-       echo "${PREREQ}"
-}
-
-case "${1}" in
-       prereqs)
-               prereqs
-               exit 0
-               ;;
-esac
-
-# live-boot header
-
-# FIXME: stop hardcoding overloading of initramfs-tools functions
-. /scripts/functions
-. /lib/live/boot/initramfs-tools.sh
-
-if [ -n "${NOFSTAB}" ]
-then
-       exit 0
-fi
-
-log_begin_msg "Configuring fstab"
-
-# live-boot script
-
-if ! grep -qs  "^${UNIONTYPE}" "${FSTAB}"
-then
-       echo "${UNIONTYPE} / ${UNIONTYPE} rw 0 0" >> "${FSTAB}"
-fi
-
-if ! grep -qs "^tmpfs /tmp" "${FSTAB}"
-then
-       echo "tmpfs /tmp tmpfs nosuid,nodev 0 0" >> "${FSTAB}"
-fi
-
-if [ -n "${SWAPON}" ]
-then
-       devices=""
-
-       for device in /dev/[hs]d[a-z][0-9]*
-       do
-               if ! [ -b "${device}" ]
-               then
-                       continue
-               fi
-
-               /sbin/blkid -o udev -p ${device%%[0-9]*} | grep -q "^ID_FS_USAGE=raid" && continue
-
-               magic=$(/bin/dd if="${device}" bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null) || continue
-
-               if [ "${magic}" = "SWAPSPACE2" -o "${magic}" = "SWAP-SPACE" ]
-               then
-                       #log "Found ${device}"
-                       devices="${devices} ${device}"
-               fi
-       done
-
-       # Remove all auto swap entries
-       if grep -qs  "swap swap" "${FSTAB}"
-       then
-               grep -v "swap swap" "${FSTAB}" > "${FSTAB}".tmp
-               mv "${FSTAB}".tmp "${FSTAB}"
-       fi
-
-       # Add new swap entries
-       for device in ${devices}
-       do
-               echo "${device} swap swap defaults 0 0" >> "${FSTAB}"
-       done
-fi
-
-# disabled for now
-#rm -f /root/etc/rcS.d/S*checkroot.sh
-
-if [ "${NOFASTBOOT}" != "Yes" ]
-then
-       touch root/fastboot
-fi
-
-log_end_msg
diff --git a/initramfs-tools/scripts/live-bottom/23networking b/initramfs-tools/scripts/live-bottom/23networking
deleted file mode 100755 (executable)
index 7fca6ff..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/bin/sh
-
-#set -e
-
-# initramfs-tools header
-
-PREREQ=""
-
-prereqs()
-{
-       echo "${PREREQ}"
-}
-
-case "${1}" in
-       prereqs)
-               prereqs
-               exit 0
-               ;;
-esac
-
-# live-boot header
-
-if [ -n "${NONETWORKING}" ]
-then
-       exit 0
-fi
-
-# FIXME: stop hardcoding overloading of initramfs-tools functions
-. /scripts/functions
-. /lib/live/boot/initramfs-tools.sh
-
-log_begin_msg "Preconfiguring networking"
-
-# live-boot script
-
-IFFILE="/root/etc/network/interfaces"
-
-if [ "${STATICIP}" = "frommedia" -a -e  "${IFFILE}" ]
-then
-       # will use existent /etc/network/interfaces
-       log_end_msg
-       exit 0
-fi
-
-cat > "${IFFILE}" << EOF
-auto lo
-iface lo inet loopback
-
-EOF
-
-udevadm trigger
-udevadm settle
-
-if [ -z "${NETBOOT}" -a -n "${STATICIP}" -a "${STATICIP}" != "frommedia" ]
-then
-       parsed=$(echo "${STATICIP}" | sed -e 's/,/ /g')
-
-       for ifline in ${parsed}
-       do
-               ifname="$(echo ${ifline} | cut -f1 -d ':')"
-               ifaddress="$(echo ${ifline} | cut -f2 -d ':')"
-               ifnetmask="$(echo ${ifline} | cut -f3 -d ':')"
-               ifgateway="$(echo ${ifline} | cut -f4 -d ':')"
-
-cat >> "${IFFILE}" << EOF
-allow-hotplug ${ifname}
-iface ${ifname} inet static
-    address ${ifaddress}
-    netmask ${ifnetmask}
-EOF
-
-if [ -n "${ifgateway}" ]
-then
-
-cat >> "${IFFILE}" << EOF
-    gateway ${ifgateway}
-
-EOF
-
-fi
-
-       done
-else
-       if [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
-       then
-               # default, dhcp assigned
-               method="dhcp"
-       else
-               # make sure that the preconfigured interface would not get reassigned by dhcp
-               # on startup by ifup script - otherwise our root fs might be disconnected!
-               method="manual"
-       fi
-
-       # iterate the physical interfaces and add them to the interfaces list and also add when ethdevice= called on cmdline
-       if [ "${method}" != dhcp ] || ([ ! -x /root/usr/sbin/NetworkManager ] && [ ! -x /root/usr/sbin/wicd ]) || [ ! -z "${ETHDEVICE}" ]
-       then
-               for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*
-               do
-                       [ -e ${interface} ] || continue
-                       i="$(basename ${interface})"
-
-cat >> "${IFFILE}" << EOF
-allow-hotplug ${i}
-iface ${i} inet ${method}
-
-EOF
-
-               done
-       fi
-
-       if [ ! -f /root/etc/resolv.conf ] || [ -z "$(cat /root/etc/resolv.conf)" ]
-       then
-               if [ -f /netboot.config ]
-               then
-                       # create a resolv.conf if it is not present or empty
-                       cp /netboot.config /root/var/log/netboot.config
-
-                       rc_search=$(cat netboot.config | awk '/domain/{print $3}')
-                       rc_server0=$(cat netboot.config | awk '/dns0/{print $5}')
-                       rc_server1=$(cat netboot.config | awk '/dns0/{print $8}')
-                       rc_server0="nameserver ${rc_server0}"
-
-                       if [ "${rc_server1}" = "0.0.0.0" ]
-                       then
-                               rc_server1=""
-                       else
-                               rc_server1="nameserver ${rc_server1}"
-                       fi
-
-cat > /root/etc/resolv.conf << EOF
-# /etc/resolv.conf
-# Autogenerated by live-boot
-search ${rc_search}
-domain ${rc_search}
-${rc_server0}
-${rc_server1}
-EOF
-
-                       cat /root/etc/resolv.conf >> /root/var/log/netboot.config
-               fi
-       fi
-fi
-
-#if [ ! -x /root/usr/sbin/NetworkManager ]
-#then
-#      for i in eth0 eth1 eth2 ath0 wlan0
-#      do
-#              grep -q "iface ${i}" ${IFFILE} && continue
-#
-#cat >> "${IFFILE}" << EOF
-#allow-hotplug ${i}
-#iface ${i} inet dhcp
-#
-#EOF
-#
-#      done
-#fi
-
-log_end_msg
diff --git a/initramfs-tools/scripts/live-premount/select_eth_device b/initramfs-tools/scripts/live-premount/select_eth_device
deleted file mode 100755 (executable)
index fe86313..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-# Original script by Andreas Teuchert <ant+dl@hsg-kl.de>
-# Modified by Frédéric Boiteux <fboiteux@calistel.com>
-
-PREREQ="blacklist udev"
-
-prereqs()
-{
-       echo "$PREREQ"
-}
-
-case $1 in
-# get pre-requisites
-prereqs)
-       prereqs
-       exit 0
-       ;;
-esac
-
-# Boot type in initramfs's config
-bootconf=$(egrep '^BOOT=' /conf/initramfs.conf | tail -1)
-
-# can be superseded by command line (used by Debian-Live's netboot for example)
-for ARGUMENT in $(cat /proc/cmdline); do
-       case "${ARGUMENT}" in
-               netboot=*)
-                       NETBOOT="${ARGUMENT#netboot=}"
-                       ;;
-       esac
-done
-
-if [ "$bootconf" != "BOOT=nfs" ] &&
-   [ "$NETBOOT" = "" ] &&
-   [ "$FETCH" = "" ] &&
-   [ "$FTPFS" = "" ] &&
-   [ "$HTTPFS" = "" ]
-then
-    # Not a net boot : nothing to do
-    exit 0
-fi
-
-# we want to do some basic IP
-modprobe -q af_packet
-
-# Available Ethernet interfaces ?
-l_interfaces=""
-echo "Waiting for ethernet card(s) up... If this fails, maybe the ethernet card is not supported by the kernel `uname -r`?"
-while [ -z "$l_interfaces" ]; do
-  l_interfaces="$(cd /sys/class/net/ && ls -d eth* 2>/dev/null)"
-done
-
-if [ $(echo $l_interfaces | wc -w) -lt 2 ]; then
-       # only one interface : no choice
-       echo "DEVICE=$l_interfaces" >> /conf/param.conf
-       exit 0
-fi
-
-# If user force to use specific device, write it
-for ARGUMENT in $(cat /proc/cmdline); do
-    case "${ARGUMENT}" in
-        live-netdev=*)
-        NETDEV="${ARGUMENT#live-netdev=}"
-        echo "DEVICE=$NETDEV" >> /conf/param.conf
-       echo "Found live-netdev parameter in /proc/cmdline. Force to use network device $NETDEV."
-        exit 0
-        ;;
-    esac
-done
-
-found_eth_dev=""
-while true; do
-       echo -n "Looking for a connected Ethernet interface ..."
-
-       for interface in $l_interfaces; do
-               # ATTR{carrier} is not set if this is not done
-               echo -n " $interface ?"
-               ipconfig -c none -d $interface -t 1 >/dev/null 2>&1
-       done
-
-       echo ''
-
-       for step in 1 2 3 4 5; do
-               for interface in $l_interfaces; do
-                       carrier=$(cat /sys/class/net/$interface/carrier \
-                               2>/dev/null)
-                       # link detected
-                       if [ "$carrier" = 1 ]; then
-                               echo "Connected $interface found"
-                               # inform initrd's init script :
-                               found_eth_dev="$found_eth_dev $interface"
-                       fi
-               done
-               if [ -n "$found_eth_dev" ]; then
-                       echo "DEVICE='$found_eth_dev'" >> /conf/param.conf
-                       exit 0
-               else
-                       # wait a bit
-                       sleep 1
-               fi
-       done
-done
diff --git a/local/languagelist b/local/languagelist
deleted file mode 100644 (file)
index cd973ed..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#
-# This is the complete list of languages (locales) to choose from.
-# langcode;language (en);language (orig);supported_environments;countrycode;fallbacklocale;langlist;console-setup
-sq;Albanian;Shqip;2;AL;sq_AL.UTF-8;;console-setup
-am;Amharic;አማርኛ;4;ET;am_ET;;
-ar;Arabic;عربي;3;EG;ar_EG.UTF-8;;console-setup
-ast;Asturian;Asturianu;2;ES;ast_ES.UTF-8;;console-setup
-eu;Basque;Euskara;1;ES;eu_ES.UTF-8;;console-setup
-be;Belarusian;Беларуская;2;BY;be_BY.UTF-8;;console-setup
-bn;Bengali;বাংলা;4;BD;bn_BD;;
-bs;Bosnian;Bosanski;2;BA;bs_BA.UTF-8;;console-setup
-#X br;Breton;Brezhoneg;2;FR;br_FR.UTF-8;;console-setup
-bg;Bulgarian;Български;2;BG;bg_BG.UTF-8;;console-setup
-# For C locale, set language to 'en' to make sure questions are "translated"
-# to English instead of showing codes.
-C;C;No localization;0;;C;en;
-ca;Catalan;Català;1;ES;ca_ES.UTF-8;;console-setup
-# Special case for Chinese as the two flavours share the same ISO 639 code
-# Both will trigger countrychooser. Each will be the backup for the other
-# one
-zh_CN;Chinese (Simplified);中文(简体);3;CN;zh_CN.UTF-8;zh_CN:zh;
-zh_TW;Chinese (Traditional);中文(繁體);3;TW;zh_TW.UTF-8;zh_TW:zh;
-hr;Croatian;Hrvatski;2;HR;hr_HR.UTF-8;;console-setup
-cs;Czech;Čeština;2;CZ;cs_CZ.UTF-8;;console-setup
-da;Danish;Dansk;1;DK;da_DK.UTF-8;;console-setup
-nl;Dutch;Nederlands;1;NL;nl_NL.UTF-8;;console-setup
-dz;Dzongkha;རྫོང་ཁ།;4;BT;dz_BT;;
-en;English;English;0;US;en_US.UTF-8;;console-setup
-# The Esperanto locale is eo.UTF-8
-# so no country on purpose. The default country is Antarctica because...
-# ...why not..:-)
-eo;Esperanto;Esperanto;2;AQ;eo.UTF-8;;console-setup
-et;Estonian;Eesti;2;EE;et_EE.UTF-8;;console-setup
-fi;Finnish;Suomi;1;FI;fi_FI.UTF-8;;console-setup
-fr;French;Français;1;FR;fr_FR.UTF-8;;console-setup
-gl;Galician;Galego;1;ES;gl_ES.UTF-8;;console-setup
-ka;Georgian;ქართული;4;GE;ka_GE.UTF-8;;console-setup
-de;German;Deutsch;1;DE;de_DE.UTF-8;;console-setup
-el;Greek;Ελληνικά;2;GR;el_GR.UTF-8;;console-setup
-gu;Gujarati;ગુજરાતી;4;IN;gu_IN;;
-he;Hebrew;עברית;3;IL;he_IL.UTF-8;;console-setup
-hi;Hindi;हिन्दी ;4;IN;hi_IN;;
-hu;Hungarian;Magyar;2;HU;hu_HU.UTF-8;;console-setup
-#X is;Icelandic;Íslenska;1;IS;is_IS.UTF-8;;console-setup
-id;Indonesian;Bahasa Indonesia;1;ID;id_ID.UTF-8;;console-setup
-ga;Irish;Gaeilge;1;IE;ga_IE.UTF-8;;console-setup
-it;Italian;Italiano;1;IT;it_IT.UTF-8;;console-setup
-ja;Japanese;日本語;3;JP;ja_JP.UTF-8;;
-#X kn;Kannada;ಕನ್ನಡ;4;IN;kn_IN;;
-#X ks;Kashmiri;कोशुर;4;IN;ks_IN;;
-kk;Kazakh;Қазақ;2;KZ;kk_KZ.UTF-8;;console-setup
-km;Khmer;ខ្មែរ;4;KH;km_KH;;
-kn;Kannada;ಕನ್ನಡ;4;IN;kn_IN;;
-ko;Korean;한국어;3;KR;ko_KR.UTF-8;;
-ku;Kurdish;Kurdî;2;TR;ku_TR.UTF-8;;console-setup
-#X ky;Kirghiz;Кыргызча;2;KG;ky_KG;;console-setup
-#X lo;Lao;ລາວ;4;LA;lo_LA;;console-setup
-lv;Latvian;Latviski;2;LV;lv_LV.UTF-8;;console-setup
-lt;Lithuanian;Lietuviškai;2;LT;lt_LT.UTF-8;;console-setup
-#X mg;Malagasy;Malagasy;1;MG;mg_MG.UTF-8;mg_MG:fr_FR:fr:en;console-setup
-#X ms;Malay;Bahasa Malaysia;1;MY;ms_MY.UTF-8;;console-setup
-ml;Malayalam;മലയാളം;4;IN;ml_IN;;
-mr;Marathi;मराठी;4;IN;mr_IN;;
-mk;Macedonian;Македонски;2;MK;mk_MK.UTF-8;;console-setup
-ne;Nepali;नेपाली ;4;NP;ne_NP;;
-# The Sami translation is really incomplete. We however keep Sami on request
-# of Skolelinux as a kind of reward to them..:-). They need to be able to
-# choose Sami as an option so that the Sami locale is set as default
-se_NO;Northern Sami;Sámegillii;1;NO;se_NO.UTF-8;se_NO:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en;console-setup
-nb_NO;Norwegian Bokmaal;Norsk bokmål;1;NO;nb_NO.UTF-8;nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en;console-setup
-nn_NO;Norwegian Nynorsk;Norsk nynorsk;1;NO;nn_NO.UTF-8;nn_NO:nn:no_NO:no:nb_NO:nb:da:sv:en;console-setup
-fa;Persian;فارسی;3;IR;fa_IR;;console-setup
-pl;Polish;Polski;2;PL;pl_PL.UTF-8;;console-setup
-pt;Portuguese;Português;1;PT;pt_PT.UTF-8;pt:pt_BR:en;console-setup
-pt_BR;Portuguese (Brazil);Português do Brasil;1;BR;pt_BR.UTF-8;pt_BR:pt:en;console-setup
-pa;Punjabi (Gurmukhi);ਪੰਜਾਬੀ;4;IN;pa_IN;;
-ro;Romanian;Română;2;RO;ro_RO.UTF-8;;console-setup
-ru;Russian;Русский;2;RU;ru_RU.UTF-8;;console-setup
-#X sa;Sanskrit;संस्कृत;4;IN;sa_IN;;
-#X si;Sinhala;සිංහල;4;IN;si_IN;;
-sr;Serbian (Cyrillic);Српски;2;RS;sr_RS;;console-setup
-sr@latin;Serbian (Latin);Srpski;2;RS;sr_RS@latin;;console-setup
-sk;Slovak;Slovenčina;2;SK;sk_SK.UTF-8;;console-setup
-sl;Slovenian;Slovenščina;2;SI;sl_SI.UTF-8;;console-setup
-es;Spanish;Español;1;ES;es_ES.UTF-8;;console-setup
-sv;Swedish;Svenska;1;SE;sv_SE.UTF-8;;console-setup
-tl;Tagalog;Tagalog;1;PH;tl_PH.UTF-8;;console-setup
-ta;Tamil;தமிழ்;4;IN;ta_IN;;
-te;Telugu;తెలుగు;4;IN;te_IN;;
-th;Thai;ภาษาไทย;3;TH;th_TH.UTF-8;;console-setup
-tr;Turkish;Türkçe;2;TR;tr_TR.UTF-8;;console-setup
-uk;Ukrainian;Українська;2;UA;uk_UA.UTF-8;;console-setup
-#X ur;Urdu;اردو;3;PK;ur_PK.UTF-8;;console-setup
-#X ca@valencia;Valencian-Catalan;Valencià-Català;1;ES;ca_ES.UTF-8@valencia;;console-setup
-vi;Vietnamese;Tiếng Việt;3;VN;vi_VN;;console-setup
-#X cy;Welsh;Cymraeg;2;GB;cy_GB.UTF-8;;console-setup
-#X wo;Wolof;Wolof;2;SN;wo_SN;wo:fr:en;
-#X xh;Xhosa;Xhosa;2;ZA;xh_ZA.UTF-8;;console-setup
index 2bf2986..fe38748 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 7 05.06.2012 3.0~a29\-1 "Debian Live Project"
+.TH LIVE\-BOOT 7 05.06.2012 3.0~a30\-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-boot\fP \- System Boot Scripts
@@ -106,7 +106,7 @@ live\-media.
 Do not check that any UUID embedded in the initramfs matches the discovered
 medium. live\-boot may be told to generate a UUID by setting
 LIVE_GENERATE_UUID=1 when building the initramfs.
-.IP \fBintegrity\-check\fP 4
+.IP \fBverify\-checksums\fP 4
 If specified, an MD5 sum is calculated on the live media during boot and
 compared to the value found in md5sum.txt found in the root directory of the
 live media.
index 873a5fc..9045999 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT conf 05.06.2012 3.0~a29\-1 "Debian Live Project"
+.TH LIVE\-BOOT conf 05.06.2012 3.0~a30\-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-persistence.conf\fP \- Configuration file for persistence media in
index b984c8f..8518b3f 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 1 05.06.2012 3.0~a29\-1 "Debian Live Project"
+.TH LIVE\-BOOT 1 05.06.2012 3.0~a30\-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-snapshot\fP \- simple script to ease persistence usage
index 82450cd..7863439 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT 7 2012\-06\-05 3.0~a29-1 "Debian Live Project"
+.TH LIVE\-BOOT 7 2012\-06\-05 3.0~a30-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-boot\fR \- System Boot Scripts
@@ -72,7 +72,7 @@ Look for the specified ISO file on all disks where it usually looks for the .squ
 Allows to use a filesystem from within an iso image that's available on live-media.
 .IP "\fBignore_uuid\fR" 4
 Do not check that any UUID embedded in the initramfs matches the discovered medium. live\-boot may be told to generate a UUID by setting LIVE_GENERATE_UUID=1 when building the initramfs.
-.IP "\fBintegrity\-check\fR" 4
+.IP "\fBverify\-checksums\fR" 4
 If specified, an MD5 sum is calculated on the live media during boot and compared to the value found in md5sum.txt found in the root directory of the live media.
 .IP "\fBip\fR=[\fIDEVICE\fR]:[\fICLIENT_IP\fR]:[\fISERVER_IP\fR]:[\fIGATEWAY_IP\fR]:[\fINETMASK\fR]:[\fIHOSTNAME\fR]:[\fIAUTOCONF\fR] [,[\fIDEVICE\fR]:[\fICLIENT_IP\fR]:[\fISERVER_IP\fR]:[\fIGATEWAY_IP\fR]:[\fINETMASK\fR]:[\fIHOSTNAME\fR]:[\fIAUTOCONF\fR]]" 4
 Let you specify the name(s) and the options of the interface(s) that should be configured at boot time. Do not specify this if you want to use dhcp (default). It will be changed in a future release to mimick official kernel boot param specification (e.g. ip=10.0.0.1::10.0.0.254:255.255.255.0::eth0,:::::eth1:dhcp).
index ecf703c..bdc8116 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT conf 2012\-06\-05 3.0~a29-1 "Debian Live Project"
+.TH LIVE\-BOOT conf 2012\-06\-05 3.0~a30-1 "Debian Live Project"
 
 .SH NAME
 \fBlive-persistence.conf\fR \- Configuration file for persistence media in
index 8e13ae9..94046e0 100644 (file)
@@ -1,4 +1,4 @@
-.TH LIVE\-BOOT 1 2012\-06\-05 3.0~a29-1 "Debian Live Project"
+.TH LIVE\-BOOT 1 2012\-06\-05 3.0~a30-1 "Debian Live Project"
 
 .SH NAME
 \fBlive\-snapshot\fR \- simple script to ease persistence usage
index fc83f88..28a0374 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 7 05.06.2012 3.0~a29\-1 "Proyecto Debian Live"
+.TH LIVE\-BOOT 7 05.06.2012 3.0~a30\-1 "Proyecto Debian Live"
 
 .SH NOMBRE
 \fBlive\-boot\fP \- Scripts de Arranque del Sistema
@@ -110,7 +110,7 @@ está disponible en los medios en vivo.
 No comprobar que cualquier UUID integrado en el initramfs coincida con el
 medio encontrado. Se puede especificar a live\-boot que genere un UUID
 configurando LIVE_GENERATE_UUID=1 en el momento de crear el initramfs.
-.IP \fBintegrity\-check\fP 4
+.IP \fBverify\-checksums\fP 4
 Si se especifica, se calcula una suma MD5 sobre los medios en vivo durante
 el arranque y se compara con el valor md5sum.txt que se encuentra en el
 directorio raíz de los medios en vivo.
index 58dcca2..7a7eed2 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT conf 05.06.2012 3.0~a29\-1 "Proyecto Debian Live"
+.TH LIVE\-BOOT conf 05.06.2012 3.0~a30\-1 "Proyecto Debian Live"
 
 .SH NOMBRE
 \fBlive\-persistence.conf\fP \- Fichero para configurar medios de almacenamiento
index fa155a1..26db71f 100644 (file)
@@ -3,7 +3,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LIVE\-BOOT 1 05.06.2012 3.0~a29\-1 "Proyecto Debian Live"
+.TH LIVE\-BOOT 1 05.06.2012 3.0~a30\-1 "Proyecto Debian Live"
 
 .SH NOMBRE
 \fBlive\-snapshot\fP \- sencillo script para facilitar el uso de la persistencia
index 583c785..71f84e9 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+0300\n"
 "PO-Revision-Date: 2012-04-08 22:48+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -30,7 +30,7 @@ msgstr "05.06.2012"
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr ""
 
 #. type: TH
@@ -324,7 +324,7 @@ msgstr ""
 #. type: IP
 #: en/live-boot.7:75
 #, no-wrap
-msgid "B<integrity-check>"
+msgid "B<verify-checksums>"
 msgstr ""
 
 #. type: Plain text
index bb87060..6ac758f 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+0300\n"
 "PO-Revision-Date: 2012-04-08 22:48+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -30,7 +30,7 @@ msgstr "05.06.2012"
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr ""
 
 #. type: TH
index f9eff74..5f9676f 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+0300\n"
 "PO-Revision-Date: 2012-04-08 22:48+0300\n"
 "Last-Translator: Daniel Baumann <daniel@debian.org>\n"
 "Language-Team: none\n"
@@ -30,7 +30,7 @@ msgstr "05.06.2012"
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr ""
 
 #. type: TH
index edd098e..b96ee1a 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+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"
@@ -30,8 +30,7 @@ msgstr "05.06.2012"
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, fuzzy, no-wrap
-#| msgid "3.0~a28-1"
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr "3.0~a28-1"
 
 #. type: TH
@@ -399,8 +398,9 @@ msgstr ""
 
 #. type: IP
 #: en/live-boot.7:75
-#, no-wrap
-msgid "B<integrity-check>"
+#, fuzzy, no-wrap
+#| msgid "B<integrity-check>"
+msgid "B<verify-checksums>"
 msgstr "B<integrity-check>"
 
 #. type: Plain text
index 6456b3f..1f80837 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+0300\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Carlos Zuferri «chals» <chals@altorricon.com>\n"
 "Language-Team:  none\n"
@@ -29,8 +29,7 @@ msgstr "05.06.2012"
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, fuzzy, no-wrap
-#| msgid "3.0~a28-1"
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr "3.0~a28-1"
 
 #. type: TH
index 6b21dd3..8c64719 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot 3.0~a28-1\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+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"
@@ -29,8 +29,7 @@ msgstr "05.06.2012"
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, fuzzy, no-wrap
-#| msgid "3.0~a28-1"
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr "3.0~a28-1"
 
 #. type: TH
index 203a296..0c655f9 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+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"
@@ -31,7 +31,7 @@ msgstr ""
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr ""
 
 #. type: TH
@@ -325,7 +325,7 @@ msgstr ""
 #. type: IP
 #: en/live-boot.7:75
 #, no-wrap
-msgid "B<integrity-check>"
+msgid "B<verify-checksums>"
 msgstr ""
 
 #. type: Plain text
index 7b3e9a1..dd3d63a 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+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"
@@ -31,7 +31,7 @@ msgstr ""
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr ""
 
 #. type: TH
index f0e62b0..35dbcce 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: live-boot VERSION\n"
-"POT-Creation-Date: 2012-06-05 16:01+0300\n"
+"POT-Creation-Date: 2012-06-05 19:38+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"
@@ -31,7 +31,7 @@ msgstr ""
 #. type: TH
 #: en/live-boot.7:1 en/live-persistence.conf.5:1 en/live-snapshot.1:1
 #, no-wrap
-msgid "3.0~a29-1"
+msgid "3.0~a30-1"
 msgstr ""
 
 #. type: TH
index eeaa4dc..736e587 100755 (executable)
@@ -429,32 +429,6 @@ find_livefs ()
        return 1
 }
 
-integrity_check ()
-{
-       media_mountpoint="${1}"
-
-       log_begin_msg "Checking media integrity"
-
-       cd ${media_mountpoint}
-       /bin/md5sum -c md5sum.txt < /dev/tty8 > /dev/tty8
-       RC="${?}"
-
-       log_end_msg
-
-       if [ "${RC}" -eq 0 ]
-       then
-               log_success_msg "Everything ok, will reboot in 10 seconds."
-               sleep 10
-               cd /
-               umount ${media_mountpoint}
-               sync
-               echo u > /proc/sysrq-trigger
-               echo b > /proc/sysrq-trigger
-       else
-               panic "Not ok, a media defect is likely, switch to VT8 for details."
-       fi
-}
-
 mountroot ()
 {
        if [ -x /scripts/local-top/cryptroot ]; then
@@ -470,20 +444,22 @@ mountroot ()
 
        . /live.vars
 
-       Arguments
+       _CMDLINE="$(cat /proc/cmdline)"
+       Cmdline
+
+       case "${LIVE_DEBUG}" in
+               true)
+                       set -x
+                       ;;
+       esac
 
-       # make sure all harddisk devices are read-only
-       # this is important for forensic investigations
-       case "${READ_ONLY}" in
+       case "${LIVE_READ_ONLY}" in
                true)
                        Read_only
                        ;;
        esac
 
-       maybe_break live-premount
-       log_begin_msg "Running /scripts/live-premount"
-       run_scripts /scripts/live-premount
-       log_end_msg
+       Select_eth_device
 
        # Needed here too because some things (*cough* udev *cough*)
        # changes the timeout
@@ -541,10 +517,11 @@ mountroot ()
                panic "Unable to find a medium containing a live file system"
        fi
 
-       if [ "${INTEGRITY_CHECK}" ]
-       then
-               integrity_check "${livefs_root}"
-       fi
+       case "${LIVE_VERIFY_CHECKSUMS}" in
+               true)
+                       Verify_checksums "${livefs_root}"
+                       ;;
+       esac
 
        if [ "${TORAM}" ]
        then
@@ -653,11 +630,20 @@ mountroot ()
                log_end_msg
        fi
 
-       maybe_break live-bottom
-       log_begin_msg "Running /scripts/live-bottom\n"
+       if ! [ -d "/root/usr/share/live-boot" ]
+       then
+               panic "A wrong rootfs was mounted."
+       fi
 
-       run_scripts /scripts/live-bottom
-       log_end_msg
+       persistence_exclude
+       fstab
+       Netbase
+
+       case "${LIVE_SWAPON}" in
+               true)
+                       Swapon
+                       ;;
+       esac
 
        if [ "${UNIONFS}" = unionfs-fuse ]
        then
similarity index 78%
rename from scripts/boot/arguments.sh
rename to scripts/boot/cmdline.sh
index c526b9a..fbfd3d6 100755 (executable)
@@ -2,57 +2,51 @@
 
 #set -e
 
-Arguments ()
+Cmdline ()
 {
-       PRESEEDS=""
-       LOCATIONS=""
-
-       for ARGUMENT in $(cat /proc/cmdline)
+       for _PARAMETER in ${_CMDLINE}
        do
-               case "${ARGUMENT}" in
-                       read-only)
-                               READ_ONLY="true"
+               case "${_PARAMETER}" in
+                       live-boot.read-only|read-only)
+                               LIVE_READ_ONLY="true"
                                ;;
 
-                       skipconfig)
-                               NOACCESSIBILITY="Yes"
-                               NOFASTBOOT="Yes"
-                               NOFSTAB="Yes"
-                               NONETWORKING="Yes"
+                       live-boot.swapon)
+                               LIVE_SWAPON="true"
+                               ;;
 
-                               export NOACCESSIBILITY NOFASTBOOT NOFSTAB NONETWORKING
+                       live-boot.verify-checksums|verify-checksums)
+                               LIVE_VERIFY_CHECKSUMS="true"
                                ;;
 
-                       access=*)
-                               ACCESS="${ARGUMENT#access=}"
-                               export ACCESS
+                       # Special options
+                       live-boot.debug|debug)
+                               LIVE_DEBUG="true"
                                ;;
 
-                       console=*)
-                               DEFCONSOLE="${ARGUMENT#*=}"
-                               export DEFCONSOLE
+
+                       # parameters below need review (FIXME)
+                       skipconfig)
+                               NOFSTAB="true"
+                               NONETWORKING="true"
+
+                               export NOFSTAB NONETWORKING
                                ;;
 
                        BOOTIF=*)
                                BOOTIF="${x#BOOTIF=}"
                                ;;
 
-                       debug)
-                               DEBUG="Yes"
-                               export DEBUG
-
-                               set -x
-                               ;;
-
                        dhcp)
                                # Force dhcp even while netbooting
                                # Use for debugging in case somebody works on fixing dhclient
-                               DHCP="Force";
+                               DHCP="true";
                                export DHCP
                                ;;
 
                        nodhcp)
-                               unset DHCP
+                               DHCP=""
+                               export DHCP
                                ;;
 
                        ethdevice=*)
@@ -76,11 +70,6 @@ Arguments ()
                                export FINDISO
                                ;;
 
-                       forcepersistencefsck)
-                               FORCEPERSISTENCEFSCK="Yes"
-                               export FORCEPERSISTENCEFSCK
-                               ;;
-
                        ftpfs=*)
                                FTPFS="${ARGUMENT#ftpfs=}"
                                export FTPFS
@@ -110,15 +99,10 @@ Arguments ()
                                ;;
 
                        ignore_uuid)
-                               IGNORE_UUID="Yes"
+                               IGNORE_UUID="true"
                                export IGNORE_UUID
                                ;;
 
-                       integrity-check)
-                               INTEGRITY_CHECK="Yes"
-                               export INTEGRITY_CHECK
-                               ;;
-
                        ip=*)
                                STATICIP="${ARGUMENT#ip=}"
 
@@ -130,11 +114,6 @@ Arguments ()
                                export STATICIP
                                ;;
 
-                       live-getty)
-                               LIVE_GETTY="1"
-                               export LIVE_GETTY
-                               ;;
-
                        live-media=*|bootfrom=*)
                                LIVE_MEDIA="${ARGUMENT#*=}"
                                export LIVE_MEDIA
@@ -180,23 +159,13 @@ Arguments ()
                                export NFS_COW
                                ;;
 
-                       noaccessibility)
-                               NOACCESSIBILITY="Yes"
-                               export NOACCESSIBILITY
-                               ;;
-
-                       nofastboot)
-                               NOFASTBOOT="Yes"
-                               export NOFASTBOOT
-                               ;;
-
                        nofstab)
-                               NOFSTAB="Yes"
+                               NOFSTAB="true"
                                export NOFSTAB
                                ;;
 
                        nonetworking)
-                               NONETWORKING="Yes"
+                               NONETWORKING="true"
                                export NONETWORKING
                                ;;
 
@@ -204,13 +173,8 @@ Arguments ()
                                ramdisk_size="${ARGUMENT#ramdisk-size=}"
                                ;;
 
-                       swapon)
-                               SWAPON="Yes"
-                               export SWAPON
-                               ;;
-
                        persistence)
-                               PERSISTENCE="Yes"
+                               PERSISTENCE="true"
                                export PERSISTENCE
                                ;;
 
@@ -233,7 +197,7 @@ Arguments ()
                                export PERSISTENCE_PATH
                                ;;
                        persistence-read-only)
-                               PERSISTENCE_READONLY="Yes"
+                               PERSISTENCE_READONLY="true"
                                export PERSISTENCE_READONLY
                                ;;
 
@@ -252,12 +216,12 @@ Arguments ()
                                ;;
 
                        nopersistence)
-                               NOPERSISTENCE="Yes"
+                               NOPERSISTENCE="true"
                                export NOPERSISTENCE
                                ;;
 
                        noprompt)
-                               NOPROMPT="Yes"
+                               NOPROMPT="true"
                                export NOPROMPT
                                ;;
 
@@ -267,34 +231,17 @@ Arguments ()
                                ;;
 
                        quickusbmodules)
-                               QUICKUSBMODULES="Yes"
+                               QUICKUSBMODULES="true"
                                export QUICKUSBMODULES
                                ;;
 
-                       preseed/file=*|file=*)
-                               LOCATIONS="${ARGUMENT#*=} ${LOCATIONS}"
-                               export LOCATIONS
-                               ;;
-
-                       nopreseed)
-                               NOPRESEED="Yes"
-                               export NOPRESEED
-                               ;;
-
-                       */*=*)
-                               question="${ARGUMENT%%=*}"
-                               value="${ARGUMENT#*=}"
-                               PRESEEDS="${PRESEEDS}\"${question}=${value}\" "
-                               export PRESEEDS
-                               ;;
-
                        showmounts)
-                               SHOWMOUNTS="Yes"
+                               SHOWMOUNTS="true"
                                export SHOWMOUNTS
                                ;;
 
                        silent)
-                               SILENT="Yes"
+                               SILENT="true"
                                export SILENT
                                ;;
 
@@ -304,28 +251,28 @@ Arguments ()
                                ;;
 
                        toram)
-                               TORAM="Yes"
+                               TORAM="true"
                                export TORAM
                                ;;
 
                        toram=*)
-                               TORAM="Yes"
+                               TORAM="true"
                                MODULETORAM="${ARGUMENT#toram=}"
                                export TORAM MODULETORAM
                                ;;
 
                        exposedroot)
-                               EXPOSED_ROOT="Yes"
+                               EXPOSED_ROOT="true"
                                export EXPOSED_ROOT
                                ;;
 
                        plainroot)
-                               PLAIN_ROOT="Yes"
+                               PLAIN_ROOT="true"
                                export PLAIN_ROOT
                                ;;
 
                        skipunion)
-                               SKIP_UNION_MOUNTS="Yes"
+                               SKIP_UNION_MOUNTS="true"
                                export SKIP_UNION_MOUNTS
                                ;;
 
diff --git a/scripts/boot/fstab.sh b/scripts/boot/fstab.sh
new file mode 100755 (executable)
index 0000000..7f5459f
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+#set -e
+
+Fstab ()
+{
+       # FIXME: stop hardcoding overloading of initramfs-tools functions
+       . /scripts/functions
+       . /lib/live/boot/initramfs-tools.sh
+
+       if [ -n "${NOFSTAB}" ]
+       then
+               return
+       fi
+
+       if [ -e /run ]
+       then
+               # wheezy
+               _FSTAB="/root/etc/fstab.d/live"
+       else
+               # squeeze
+               _FSTAB="/root/etc/fstab"
+       fi
+
+       log_begin_msg "Configuring fstab"
+
+       if ! grep -qs  "^${UNIONTYPE}" "${_FSTAB}"
+       then
+               echo "${UNIONTYPE} / ${UNIONTYPE} rw 0 0" >> "${_FSTAB}"
+       fi
+
+       if ! grep -qs "^tmpfs /tmp" "${_FSTAB}"
+       then
+               echo "tmpfs /tmp tmpfs nosuid,nodev 0 0" >> "${_FSTAB}"
+       fi
+
+       log_end_msg
+}
index 3f2d7fb..856a023 100755 (executable)
@@ -17,35 +17,6 @@ really_export ()
        eval export "${STRING}"="${VALUE}"
 }
 
-lang2locale() {
-       langpart="${1%%_*}"
-       if [ "$1" != "C" ]; then
-               # Match the language code with 3rd field in languagelist
-               line=$(grep -v "^#" /usr/share/live-boot/languagelist | cut -f1,3,6 -d\; | grep -v ';C$' | grep "^$langpart;")
-               if [ -n "$line" ]; then
-                       if [ "$(echo "$line" | grep -c '')" -gt 1 ]; then
-                               # More than one match; try matching the
-                               # country as well.
-                               countrypart="${1#*_}"
-                               if [ "$countrypart" = "$1" ]; then
-                                       countryline="$(echo "$line" | head -n1)"
-                                       echo "${countryline##*;}"
-                                       return
-                               fi
-                               countrypart="${countrypart%%[@.]*}"
-                               countryline="$(echo "$line" | grep ";$countrypart;" | head -n1 || true)"
-                               if [ "$countryline" ]; then
-                                       echo "${countryline##*;}"
-                                       return
-                               fi
-                       fi
-                       echo "${line##*;}"
-               fi
-       else
-               echo "C"
-       fi
-}
-
 is_in_list_separator_helper () {
        local sep=${1}
        shift
@@ -741,16 +712,16 @@ removable_dev ()
                then
                        if [ -z "${want_usb}" ]
                        then
-                               dev_ok="yes"
+                               dev_ok="true"
                        else
                                if readlink ${sysblock} | grep -q usb
                                then
-                                       dev_ok="yes"
+                                       dev_ok="true"
                                fi
                        fi
                fi
 
-               if [ "${dev_ok}" = "yes" ]
+               if [ "${dev_ok}" = "true" ]
                then
                        case "${output_format}" in
                                sys)
@@ -969,7 +940,7 @@ get_custom_mounts ()
                                                opt_source=${opt#source=}
                                                ;;
                                        link)
-                                               opt_link="yes"
+                                               opt_link="true"
                                                ;;
                                        union|bind)
                                                ;;
@@ -1037,22 +1008,22 @@ activate_custom_mounts ()
 
        while read device source dest options # < ${custom_mounts}
        do
-               local opt_bind="yes"
+               local opt_bind="true"
                local opt_link=""
                local opt_union=""
                for opt in $(echo ${options} | tr ',' ' ');
                do
                        case "${opt}" in
                                bind)
-                                       opt_bind="yes"
+                                       opt_bind="true"
                                        unset opt_link opt_union
                                        ;;
                                link)
-                                       opt_link="yes"
+                                       opt_link="true"
                                        unset opt_bind opt_union
                                        ;;
                                union)
-                                       opt_union="yes"
+                                       opt_union="true"
                                        unset opt_bind opt_link
                                        ;;
                        esac
index 35e2b46..fd29d91 100755 (executable)
@@ -8,7 +8,7 @@ do_iscsi()
        #modprobe ib_iser
        modprobe iscsi_tcp
        local debugopt=""
-       [ "${DEBUG}" = "Yes" ] && debugopt="-d 8"
+       [ "${DEBUG}" = "true" ] && debugopt="-d 8"
        #FIXME this name is supposed to be unique - some date + ifconfig hash?
        ISCSI_INITIATORNAME="iqn.1993-08.org.debian.live:01:$(echo "${HWADDR}" | sed -e s/://g)"
        export ISCSI_INITIATORNAME
diff --git a/scripts/boot/netbase.sh b/scripts/boot/netbase.sh
new file mode 100755 (executable)
index 0000000..0528817
--- /dev/null
@@ -0,0 +1,141 @@
+#!/bin/sh
+
+#set -e
+
+Netbase ()
+{
+       if [ -n "${NONETWORKING}" ]
+       then
+               return
+       fi
+
+       # FIXME: stop hardcoding overloading of initramfs-tools functions
+       . /scripts/functions
+       . /lib/live/boot/initramfs-tools.sh
+
+       log_begin_msg "Preconfiguring networking"
+
+       IFFILE="/root/etc/network/interfaces"
+
+       if [ "${STATICIP}" = "frommedia" -a -e  "${IFFILE}" ]
+       then
+               # will use existent /etc/network/interfaces
+               log_end_msg
+               return
+       fi
+
+cat > "${IFFILE}" << EOF
+auto lo
+iface lo inet loopback
+
+EOF
+
+       udevadm trigger
+       udevadm settle
+
+       if [ -z "${NETBOOT}" -a -n "${STATICIP}" -a "${STATICIP}" != "frommedia" ]
+       then
+               parsed=$(echo "${STATICIP}" | sed -e 's/,/ /g')
+
+               for ifline in ${parsed}
+               do
+                       ifname="$(echo ${ifline} | cut -f1 -d ':')"
+                       ifaddress="$(echo ${ifline} | cut -f2 -d ':')"
+                       ifnetmask="$(echo ${ifline} | cut -f3 -d ':')"
+                       ifgateway="$(echo ${ifline} | cut -f4 -d ':')"
+
+cat >> "${IFFILE}" << EOF
+allow-hotplug ${ifname}
+iface ${ifname} inet static
+    address ${ifaddress}
+    netmask ${ifnetmask}
+EOF
+
+                       if [ -n "${ifgateway}" ]
+                       then
+
+cat >> "${IFFILE}" << EOF
+    gateway ${ifgateway}
+
+EOF
+
+                       fi
+               done
+       else
+               if [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
+               then
+                       # default, dhcp assigned
+                       method="dhcp"
+               else
+                       # make sure that the preconfigured interface would not get reassigned by dhcp
+                       # on startup by ifup script - otherwise our root fs might be disconnected!
+                       method="manual"
+               fi
+
+               # iterate the physical interfaces and add them to the interfaces list and also add when ethdevice= called on cmdline
+               if [ "${method}" != dhcp ] || ([ ! -x /root/usr/sbin/NetworkManager ] && [ ! -x /root/usr/sbin/wicd ]) || [ ! -z "${ETHDEVICE}" ]
+               then
+                       for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*
+                       do
+                               [ -e ${interface} ] || continue
+                               i="$(basename ${interface})"
+
+cat >> "${IFFILE}" << EOF
+allow-hotplug ${i}
+iface ${i} inet ${method}
+
+EOF
+
+                       done
+               fi
+
+               if [ ! -f /root/etc/resolv.conf ] || [ -z "$(cat /root/etc/resolv.conf)" ]
+               then
+                       if [ -f /netboot.config ]
+                       then
+                               # create a resolv.conf if it is not present or empty
+                               cp /netboot.config /root/var/log/netboot.config
+
+                               rc_search=$(cat netboot.config | awk '/domain/{print $3}')
+                               rc_server0=$(cat netboot.config | awk '/dns0/{print $5}')
+                               rc_server1=$(cat netboot.config | awk '/dns0/{print $8}')
+                               rc_server0="nameserver ${rc_server0}"
+
+                               if [ "${rc_server1}" = "0.0.0.0" ]
+                               then
+                                       rc_server1=""
+                               else
+                                       rc_server1="nameserver ${rc_server1}"
+                               fi
+
+cat > /root/etc/resolv.conf << EOF
+# /etc/resolv.conf
+# Autogenerated by live-boot
+search ${rc_search}
+domain ${rc_search}
+${rc_server0}
+${rc_server1}
+EOF
+
+                               cat /root/etc/resolv.conf >> /root/var/log/netboot.config
+                       fi
+               fi
+       fi
+
+       #if [ ! -x /root/usr/sbin/NetworkManager ]
+       #then
+       #       for i in eth0 eth1 eth2 ath0 wlan0
+       #       do
+       #               grep -q "iface ${i}" ${IFFILE} && continue
+       #
+       #cat >> "${IFFILE}" << EOF
+       #allow-hotplug ${i}
+       #iface ${i} inet dhcp
+       #
+       #EOF
+       #
+       #       done
+       #fi
+
+       log_end_msg
+}
diff --git a/scripts/boot/persistence-excludes.sh b/scripts/boot/persistence-excludes.sh
new file mode 100755 (executable)
index 0000000..ee9521e
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+#set -e
+
+persistence_exclude ()
+{
+       # Persistence enhancer script
+       # This script saves precious time on slow persistence devices/image files
+       # and writes on flash based device.
+       # a tmpfs on $PERSTMP is mounted and directories listed in
+       # /etc/live-persistence.binds will be copied there and then bind mounted back.
+
+       if [ -z "${PERSISTENCE}" ] || [ -n "${NOPERSISTENCE}" ] || [ -z "${PERSISTENCE_IS_ON}" ] || [ ! -f /root/etc/live-persistence.binds ]
+       then
+               return
+       fi
+
+       # FIXME: stop hardcoding overloading of initramfs-tools functions
+       . /scripts/functions
+       . /lib/live/boot/initramfs-tools.sh
+
+       dirs="$(sed -e '/^ *$/d' -e '/^#.*$/d' /root/etc/live-persistence.binds | tr '\n' '\0')"
+       if [ -z "${dirs}" ]
+       then
+               return
+       fi
+
+       log_begin_msg "Moving persistence bind mounts"
+
+       PERSTMP="/root/live/persistence-binds"
+       CPIO="/bin/cpio"
+
+       if [ ! -d "${PERSTMP}" ]
+       then
+               mkdir -p "${PERSTMP}"
+       fi
+
+       mount -t tmpfs tmpfs "${PERSTMP}"
+
+       for dir in $(echo "${dirs}" | tr '\0' '\n')
+       do
+               if [ ! -e "/root/${dir}" ] && [ ! -L "/root/${dir}" ]
+               then
+                       # directory do not exists, create it
+                       mkdir -p "/root/${dir}"
+               elif [ ! -d "/root/${dir}" ]
+               then
+                       # it is not a directory, skip it
+                       break
+               fi
+
+               # Copy previous content if any
+               cd "/root/${dir}"
+               find . -print0 | ${CPIO} -pumd0 "${PERSTMP}/${dir}"
+               cd "${OLDPWD}"
+
+               # Bind mount it to origin
+               mount -o bind "${PERSTMP}/${dir}" "/root/${dir}"
+       done
+
+       log_end_msg
+}
index c8990df..48aa06c 100755 (executable)
@@ -4,14 +4,30 @@
 
 Read_only ()
 {
-       # Marking the usual block devices for harddisks read-only
-       for _DEVICE in /dev/sd* /dev/vd*
+       # Marking some block devices as read-only to ensure that nothing
+       # gets written as linux still writes to 'only' read-only mounted filesystems.
+       _DEVICES="/dev/sd* /dev/vd*"
+
+       for _DEVICE in ${_DEVICES}
        do
-               if [ -b "${_DEVICE}" ]
+               if [ -b "${_DEVICE}" ]
                then
-                       printf "Setting device %-9s to read-only mode:" ${_DEVICE} > /dev/console
-
-                       blockdev --setro ${_DEVICE} && printf " done [ execute \"blockdev --setrw %-9s\" to unlock]\n" ${_DEVICE} > /dev/console || printf "failed\n" > /dev/console
+                       continue
                fi
+
+               echo -n "Setting ${_DEVICE} read-only..." > /dev/console
+
+               blockdev --setro ${_DEVICE}
+               _RETURN="${?}"
+
+               case "${_RETURN}" in
+                       0)
+                               echo " done, use 'blockdev --setrw ${_DEVICE}' to set read-write." > /dev/console
+                               ;;
+
+                       *)
+                               echo " failed." > /dev/console
+                               ;;
+               esac
        done
 }
diff --git a/scripts/boot/select-eth-device.sh b/scripts/boot/select-eth-device.sh
new file mode 100755 (executable)
index 0000000..924b8bc
--- /dev/null
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+Select_eth_device ()
+{
+       # Boot type in initramfs's config
+       bootconf=$(egrep '^BOOT=' /conf/initramfs.conf | tail -1)
+
+       # can be superseded by command line (used by Debian-Live's netboot for example)
+       for ARGUMENT in $(cat /proc/cmdline); do
+               case "${ARGUMENT}" in
+                       netboot=*)
+                               NETBOOT="${ARGUMENT#netboot=}"
+                               ;;
+               esac
+       done
+
+       if [ "$bootconf" != "BOOT=nfs" ] &&
+          [ "$NETBOOT" = "" ] &&
+          [ "$FETCH" = "" ] &&
+          [ "$FTPFS" = "" ] &&
+          [ "$HTTPFS" = "" ]
+       then
+           # Not a net boot : nothing to do
+           return
+       fi
+
+       # we want to do some basic IP
+       modprobe -q af_packet
+
+       # Available Ethernet interfaces ?
+       l_interfaces=""
+       echo "Waiting for ethernet card(s) up... If this fails, maybe the ethernet card is not supported by the kernel `uname -r`?"
+       while [ -z "$l_interfaces" ]; do
+         l_interfaces="$(cd /sys/class/net/ && ls -d eth* 2>/dev/null)"
+       done
+
+       if [ $(echo $l_interfaces | wc -w) -lt 2 ]; then
+               # only one interface : no choice
+               echo "DEVICE=$l_interfaces" >> /conf/param.conf
+               return
+       fi
+
+       # If user force to use specific device, write it
+       for ARGUMENT in $(cat /proc/cmdline); do
+           case "${ARGUMENT}" in
+               live-netdev=*)
+               NETDEV="${ARGUMENT#live-netdev=}"
+               echo "DEVICE=$NETDEV" >> /conf/param.conf
+               echo "Found live-netdev parameter in /proc/cmdline. Force to use network device $NETDEV."
+               return
+               ;;
+           esac
+       done
+
+       found_eth_dev=""
+       while true; do
+               echo -n "Looking for a connected Ethernet interface ..."
+
+               for interface in $l_interfaces; do
+                       # ATTR{carrier} is not set if this is not done
+                       echo -n " $interface ?"
+                       ipconfig -c none -d $interface -t 1 >/dev/null 2>&1
+               done
+
+               echo ''
+
+               for step in 1 2 3 4 5; do
+                       for interface in $l_interfaces; do
+                               carrier=$(cat /sys/class/net/$interface/carrier \
+                                       2>/dev/null)
+                               # link detected
+                               if [ "$carrier" = 1 ]; then
+                                       echo "Connected $interface found"
+                                       # inform initrd's init script :
+                                       found_eth_dev="$found_eth_dev $interface"
+                               fi
+                       done
+                       if [ -n "$found_eth_dev" ]; then
+                               echo "DEVICE='$found_eth_dev'" >> /conf/param.conf
+                               return
+                       else
+                               # wait a bit
+                               sleep 1
+                       fi
+               done
+       done
+}
diff --git a/scripts/boot/swapon.sh b/scripts/boot/swapon.sh
new file mode 100755 (executable)
index 0000000..158d81b
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+#set -e
+
+Swapon ()
+{
+       _DEVICES="/dev/sd* /dev/vd*"
+
+       if [ -e /run ]
+       then
+               # wheezy
+               _FSTAB="/root/etc/fstab.d/swap"
+       else
+               # squeeze
+               _FSTAB="/root/etc/fstab"
+       fi
+
+       for _DEVICE in ${_DEVICES}
+       do
+               if [ ! -b "${_DEVICE}" ]
+               then
+                       continue
+               fi
+
+               blkid -o udev -p ${_DEVICE%%[0-9]*} | grep -q "^ID_FS_USAGE=raid" && continue
+
+               _MAGIC="$(/bin/dd if=${_DEVICE} bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null)" || continue
+
+               case "${_MAGIC}" in
+                       SWAPSPACE2|SWAP-SPACE)
+                               _SWAP_DEVICES="${_SWAP_DEVICES} ${_DEVICE}"
+                               ;;
+               esac
+       done
+
+       # Remove all auto swap entries
+       if grep -qs "swap swap" "${_FSTAB}"
+       then
+               grep -v "swap swap" "${_FSTAB}" > "${_FSTAB}".tmp
+               mv "${_FSTAB}".tmp "${_FSTAB}"
+       fi
+
+       # Add new swap entries
+       for _DEVICE in _SWAP_DEVICES
+       do
+               echo "${_DEVICE} swap swap defaults 0 0" >> "${_FSTAB}"
+       done
+}
diff --git a/scripts/boot/verify-checksums.sh b/scripts/boot/verify-checksums.sh
new file mode 100755 (executable)
index 0000000..7dd5da3
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+#set -e
+
+Verify_checksums ()
+{
+       _MOUNTPOINT="${1}"
+
+       _DIGESTS="sha512 sha384 sha256 sha224 sha1 md5"
+       _TTY="/dev/tty8"
+
+       log_begin_msg "Verifying checksums"
+
+       cd "${_MOUNTPOINT}"
+
+       for _DIGEST in ${_DIGESTS}
+       do
+               _CHECKSUMS="$(echo ${_DIGEST} | tr [a-z] [A-Z])SUMS"
+
+               if [ -e "${_CHECKSUMS}" ]
+               then
+                       echo "Found ${_CHECKSUMS}..." > "${_TTY}"
+
+                       if [ -e "/bin/${_DIGEST}sum" ]
+                       then
+                               echo "Checking ${_CHECKSUMS}..." > "${_TTY}"
+
+                               # Verify checksums
+                               /bin/${_DIGEST}sum -c "${_CHECKSUMS}" < "${_TTY}" > "${_TTY}"
+                               _RETURN="${?}"
+
+                               # Stop after first verification
+                               break
+                       else
+                               echo "Not found /bin/${_DIGEST}sum..." > "${_TTY}"
+                       fi
+               fi
+       done
+
+       log_end_msg
+
+       case "${_RETURN}" in
+               0)
+                       log_success_msg "Verification successfull, rebooting in 10 seconds."
+                       sleep 10
+
+                       # Unmount live-media
+                       cd /
+                       umount -f ${_MOUNTPOINT} > /dev/null 2>&1
+                       sync
+
+                       # Attempt to remount all mounted filesystems read-only
+                       echo u > /proc/sysrq-trigger
+
+                       # Immediately reboot the system without syncing or unmounting filesystems
+                       echo b > /proc/sysrq-trigger
+                       ;;
+
+               *)
+                       panic "Verification failed, $(basename ${_TTY}) for more information."
+                       ;;
+       esac
+}