X-Git-Url: https://git.grml.org/?p=grml2usb.git;a=blobdiff_plain;f=grml2usb;h=44de706dc71a310c8454b3a15a02e159f030339f;hp=f6815efa87c04086e94e0db6a1d21e4f79718157;hb=bdbc9e12407fbd6e617494ea290697b46296d93f;hpb=0b7e7606d03618626d51e31652521307c8267720 diff --git a/grml2usb b/grml2usb index f6815ef..44de706 100755 --- a/grml2usb +++ b/grml2usb @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Mon Nov 06 23:48:26 CET 2006 [mika] +# Latest change: Fre Mär 16 16:04:18 CET 2007 [mika] ################################################################################ # colors {{{ @@ -24,13 +24,13 @@ echo 1>&2 "${RED}Error: syslinux is not available. Please install it before running this script.${NORMAL}" ; exit 2 fi - if [ "$UID" != 0 ]; then + if [ "$(id -u)" != 0 ]; then echo 1>&2 "${RED}Error: please run this script with uid 0 (root).${NORMAL}" ; exit 1 fi # }}} # set variables {{{ - if [[ $DEBUG -gt 0 ]]; then + if [ -n "$DEBUG" ]; then # set -x debugit(){ echo $* @@ -41,7 +41,7 @@ } fi - if [ "$1" == "uninstall" ] ; then + if [ "$1" = "uninstall" ] ; then UNINSTALL=1 fi @@ -49,7 +49,7 @@ LANGUAGE='C' LC_ALL='C' PROGRAMNAME=${0##*/} - VERSION='0.7' + VERSION='0.7.4' ISO="$1" DEVICE="$2" [ -n "$TMPMNT" ] || TMPMNT='/mnt/test' @@ -82,6 +82,9 @@ Usage: Usage example - install grml-small to usb-device on /mnt/external1: $PROGRAMNAME grml_small_0.2.iso /mnt/external1 +Usage example - using grml2usb on a live grml system: + $PROGRAMNAME /cdrom /mnt/external1 + Usage example - delete grml-installation from /mnt/external1: $PROGRAMNAME uninstall /mnt/external1 @@ -134,8 +137,14 @@ mount_device(){ mount_iso(){ echo -n "Mounting ${ISO} to ${TMPMNT}: " - debugit "debug: mount -o loop ${ISO} ${TMPMNT}" - if mount -o loop "${ISO}" ${TMPMNT} ; then + local mount_opts_="-o loop" + if [ -d $ISO ]; then + mount_opts_="--bind" + elif [ -b $ISO ]; then + mount_opts_="" + fi + debugit "debug: mount $mount_opts_ ${ISO} ${TMPMNT}" + if mount $mount_opts_ "${ISO}" ${TMPMNT} ; then echo "${WHITE}done${NORMAL}" else echo 1>&2 "${RED}Problem? You got an error saying 'mount: could not find any free loop device'? @@ -183,7 +192,7 @@ Try to call it manually via 'syslinux /dev/sda1' if you installed grml to /dev/s # main program {{{ trap bailout 1 2 3 15 -if [[ $# != 2 ]]; then +if [ "$#" != 2 ]; then usage ; exit 4 fi