X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=6af14c38c6aef2a31e40eabbd0f32ba82d765b2d;hb=0ea72c7bbccfa3da69efdffc2dc464f5f4aadeae;hp=0fa3900c5e7af3d3891e3dbc380c21b271ab8d82;hpb=75340e130768563c2282806aaa3e80f5f7b97b32;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 0fa3900..6af14c3 100755 --- a/scripts/live +++ b/scripts/live @@ -66,6 +66,11 @@ Arguments () set -x ;; + ethdevice=*) + DEVICE="${ARGUMENT#ethdevice=}" + export DEVICE + ;; + fetch=*) FETCH="${ARGUMENT#fetch=}" export FETCH @@ -97,6 +102,11 @@ Arguments () export HOSTNAME LIVECONF ;; + isofrom=*|fromiso=*) + FROMISO="${ARGUMENT#*=}" + export FROMISO + ;; + username=*) USERNAME="${ARGUMENT#username=}" LIVECONF="changed" @@ -380,9 +390,9 @@ Arguments () mount -o bind /dev /root/dev mkdir -p /root/var/run/network - chroot /root dhclient eth0 + [ "${NETBOOT}" ] || chroot /root dhclient eth0 chroot /root wget -P /tmp "${location}" - chroot /root ifconfig eth0 down + [ "${NETBOOT}" ] || chroot /root ifconfig eth0 down umount /root/sys umount /root/proc @@ -611,7 +621,7 @@ is_nice_device () { sysfs_path="${1#/sys}" - if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-)" + if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-|platform-mmc)" then return 0 elif echo "${sysfs_path}" | grep -q '^/block/vd[a-z]$' @@ -1384,6 +1394,17 @@ check_dev () devname="${2}" skip_uuid_check="${3}" + # support for fromiso=.../isofrom=.... + if [ -n "$FROMISO" ] + then + mkdir /isofrom + ISO_DEVICE="$(echo $FROMISO | sed 's|\(/dev/[a-z]*[0-9]*\).*|\1|')" + mount "$ISO_DEVICE" /isofrom + ISO_NAME="$(echo $FROMISO | sed 's|/dev/[a-z]*[0-9]*/||')" + loopdevname=$(setup_loop "/isofrom/${ISO_NAME}" "loop" "/sys/block/loop*" "" '') + devname="${loopdevname}" + fi + if [ -z "${devname}" ] then devname=$(sys2dev "${sysdev}") @@ -1655,6 +1676,15 @@ mountroot () 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 + grep -q /isofrom /proc/mounts && umount /isofrom + fi + if [ -n "${MODULETORAMFILE}" ] || [ -n "${PLAIN_ROOT}" ] then setup_unionfs "${livefs_root}" "${rootmnt}"