X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=f79eaff2237d8415ec5d49cc7d6d9075518e0a44;hb=0290b848ec7ed705da40d58793cb67abbc256a3b;hp=26cd5cfa76c07a368e709d9bf655ef2a65333b80;hpb=9cb4d27aeffce3ea36b7af790ecc9f63f650dfd8;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 26cd5cf..f79eaff 100755 --- a/scripts/live +++ b/scripts/live @@ -401,6 +401,11 @@ Arguments () export NOPERSISTENT ;; + quickusbmodules) + QUICKUSBMODULES="Yes" + export QUICKUSBMODULES + ;; + preseed/file=*|file=*) LOCATION="${ARGUMENT#*=}" export LOCATION @@ -991,7 +996,7 @@ find_snap () if [ "${PERSISTENT}" != "nofiles" ] then # search for image files - snapdata=$(find_files "${snap_label}.squashfs ${snap_label}.cpio.gz ${snap_label}.ext2 ${snap_label}.ext3 ${snap_label}.ext4 ${snap_label}.jffs2") + snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2 ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2") fi if [ -z "${snapdata}" ] @@ -1101,15 +1106,10 @@ setup_unionfs () # Let's just mount the read-only file systems first rofsstring="" rofslist="" - minor_kernel_version=$(uname -r|cut -c 5-|sed 's/[^0-9].*//') - if [ "${NETBOOT}" = "nfs" ] && [ "${minor_kernel_version}" -lt 22 ] - then - # go aroung a bug in nfs-unionfs locking for unionfs <= 1.4 - roopt="nfsro" - elif [ "${UNIONTYPE}" = "aufs" ] + if [ "${UNIONTYPE}" = "aufs" ] then - roopt="rr" + roopt="rr,noxino" else roopt="ro" fi @@ -1223,37 +1223,40 @@ setup_unionfs () # Looking for "${root_persistence}" device or file if [ -n "${PERSISTENT}" ] && [ -z "${NOPERSISTENT}" ] then - # Load USB modules - num_block=$(ls -l /sys/block | wc -l) - for module in sd_mod uhci-hcd ehci-hcd ohci-hcd usb-storage - do - modprobe -q -b ${module} - done - - if [ -x /sbin/udevadm ] + if [ -z "${QUICKUSBMODULES}" ] then - # lenny - udevadm trigger - udevadm settle - else - # etch - udevtrigger - udevsettle - fi - - # For some reason, udevsettle does not block in this scenario, - # so we sleep for a little while. - # - # See https://bugs.launchpad.net/ubuntu/+source/casper/+bug/84591 - for timeout in 5 4 3 2 1 - do - sleep 1 + # Load USB modules + num_block=$(ls -l /sys/block | wc -l) + for module in sd_mod uhci-hcd ehci-hcd ohci-hcd usb-storage + do + modprobe -q -b ${module} + done - if [ $(ls -l /sys/block | wc -l) -gt ${num_block} ] + if [ -x /sbin/udevadm ] then - break + # lenny + udevadm trigger + udevadm settle + else + # etch + udevtrigger + udevsettle fi - done + + # For some reason, udevsettle does not block in this scenario, + # so we sleep for a little while. + # + # See https://bugs.launchpad.net/ubuntu/+source/casper/+bug/84591 + for timeout in 5 4 3 2 1 + do + sleep 1 + + if [ $(ls -l /sys/block | wc -l) -gt ${num_block} ] + then + break + fi + done + fi # search for label and files (this could be hugely optimized) cowprobe=$(find_cow_device "${root_persistence}")