X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=07deb559fbc3eddf7226cb52ca1d7104ce5fca48;hb=a926b8a0e9ea6c89f3e94611d1030bb203cbdc9e;hp=07226fad3f73b4d143ea6e3d891492d9c36c5040;hpb=483e667bb3f2bc582c7cf99d9c3d6f7799291d64;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 07226fa..07deb55 100755 --- a/scripts/live +++ b/scripts/live @@ -466,7 +466,7 @@ is_nice_device () { sysfs_path="${1#/sys}" - if /lib/udev/path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-|platform-orion-ehci|platform-mmc|platform-mxsdhci|)" + if /lib/udev/path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci|)" then return 0 elif echo "${sysfs_path}" | grep -q '^/block/vd[a-z]$' @@ -957,6 +957,8 @@ do_snap_copy () if [ -b "${fromdev}" ] then + log_success_msg "Copying snapshot ${fromdev} to ${todir}..." + # look for free mem if [ -n "${HOMEMOUNTED}" -a "${snap_type}" = "HOME" ] then @@ -994,9 +996,8 @@ do_snap_copy () return 0 else - return 1 - log_warning_msg "Unable to find the snapshot ${snap_type} medium" + return 1 fi } @@ -1026,6 +1027,16 @@ try_snap () snapdata="${1}" snap_mount="${2}" snap_type="${3}" + snap_relpath="${4}" + + if [ -z "${snap_relpath}" ] + then + # root snapshot, default usage + snap_relpath="/" + else + # relative snapshot (actually used just for "/home" snapshots) + snap_mount="${2}${snap_relpath}" + fi if [ -n "${snapdata}" ] && [ ! -b "${snapdata}" ] then @@ -1096,7 +1107,7 @@ try_snap () if ! do_snap_copy "${dev}" "${snap_mount}" "${snap_type}" then - log_warning_msg "Impossible to include the ${snap_type} Snapshot" + log_warning_msg "Impossible to include the ${snap_type} Snapshot (i)" return 1 else if [ -n "${snapfile}" ] @@ -1106,11 +1117,11 @@ try_snap () fi fi else - log_warning_msg "Impossible to include the ${snap_type} Snapshot" + log_warning_msg "Impossible to include the ${snap_type} Snapshot (o)" return 1 fi - echo "export ${snap_type}SNAP="/cow${snap_mount#$rootmnt}":${snapdev}:${snapfile}" >> /etc/live.conf # for resync on reboot/halt + echo "export ${snap_type}SNAP=${snap_relpath}:${snapdev}:${snapfile}" >> snapshot.conf # for resync on reboot/halt return 0 } @@ -1448,7 +1459,7 @@ setup_unionfs () # Look for other snapshots to copy in try_snap "${root_snapdata}" "${rootmnt}" "ROOT" # This second type should be removed when snapshot grow smarter - try_snap "${home_snapdata}" "${rootmnt}/home" "HOME" + try_snap "${home_snapdata}" "${rootmnt}" "HOME" "/home" fi if [ -n "${SHOWMOUNTS}" ] @@ -1687,16 +1698,6 @@ find_livefs () return 1 } -set_usplash_timeout () -{ - if [ -x /sbin/usplash_write ] - then - /sbin/usplash_write "TIMEOUT 120" - else if [ -x /sbin/splashy_update ] ; then - /sbin/splashy_update "TIMEOUT 120" - fi ; fi -} - integrity_check () { media_mountpoint="${1}" @@ -1723,14 +1724,6 @@ integrity_check () fi } -start_usplash_pulse () -{ - if [ -x /sbin/usplash_write ] - then - /sbin/usplash_write "PULSELOGO" - fi -} - mountroot () { if [ -x /scripts/local-top/cryptroot ]; then @@ -1749,9 +1742,6 @@ mountroot () Arguments - set_usplash_timeout - start_usplash_pulse - maybe_break live-premount log_begin_msg "Running /scripts/live-premount" run_scripts /scripts/live-premount @@ -1760,8 +1750,6 @@ mountroot () # Needed here too because some things (*cough* udev *cough*) # changes the timeout - set_usplash_timeout - if [ ! -z "${NETBOOT}" ] || [ ! -z "${FETCH}" ] || [ ! -z "${HTTPFS}" ] || [ ! -z "${FTPFS}" ] then if do_netmount @@ -1874,6 +1862,24 @@ mountroot () 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 + + # 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 + maybe_break live-bottom log_begin_msg "Running /scripts/live-bottom\n"