X-Git-Url: http://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=remaster%2Fgrml-live-remaster;h=39cc81b28d0c172fb8b1ee0ac051b4be2ea7ff07;hp=15aec22bee3300c6bc1bcf2a5d63a39ba6347fe9;hb=27c41d72bd54e9f5334269a14a7232534061434f;hpb=82345f34a6fd3441ce4c65483c056e078370d6f9 diff --git a/remaster/grml-live-remaster b/remaster/grml-live-remaster index 15aec22..39cc81b 100755 --- a/remaster/grml-live-remaster +++ b/remaster/grml-live-remaster @@ -14,9 +14,9 @@ # define function getfilesize before "set -e" if stat --help >/dev/null 2>&1; then - getfilesize='stat -c %s' # GNU stat + getfilesize='stat -c %s' # GNU stat else - getfilesize='stat -f %z' # BSD stat + getfilesize='stat -f %z' # BSD stat fi set -e # exit on any error @@ -24,13 +24,30 @@ set -e # exit on any error VERSION='0.0.2' GRML_LIVE_EDITOR=${VISUAL:-${EDITOR:-vi}} +if [ ! -d /etc/grml -o ! -d /live ]; then + echo "Error: $0 has to be run from a Grml live session. Exiting." + exit 1 +fi + # source core functions {{{ . /etc/grml/lsb-functions . /etc/grml/script-functions # }}} # make sure we have what we need {{{ -check4progs mkisofs mksquashfs stat || exit 1 +check4progs mkisofs stat || exit 1 + +# allow overriding via environment: +if [ -z "$MKSQUASHFS" ] ; then + if which mksquashfs-lzma >/dev/null 2>&1 ; then + MKSQUASHFS=mksquashfs-lzma + elif which mksquashfs >/dev/null 2>&1 ; then + MKSQUASHFS=mksquashfs + else + echo "Error: neither mksquashfs-lzma nor mksquashfs present. Exiting." + exit 1 + fi +fi check4root || exit 1 # }}} @@ -43,7 +60,7 @@ if [ x"$1" == x ]; then echo " first, because grml-live-remaster will need a lot ot RAM." echo "" echo "Please report bugs and feature requests: http://grml.org/bugs/" - exit -1 + exit 1 fi if [ ! -d /remaster ]; then @@ -107,7 +124,7 @@ sed 3,4d "${BOOTSTUFF}"/boot.msg \ sed 1,2d /remaster/msg >>/remaster/iso/boot/isolinux/boot.msg mkdir /remaster/iso/live -mksquashfs /remaster/chroot /remaster/iso/live/"$(basename $SQUASHFS_FILE)" +$MKSQUASHFS /remaster/chroot /remaster/iso/live/"$(basename $SQUASHFS_FILE)" umount /remaster/chroot /remaster/cdrom if [ -f /remaster/iso/boot/isolinux/isolinux.bin ] ; then @@ -123,12 +140,12 @@ mkisofs -b $ISOLINUX -no-emul-boot -c $ISOLINUX_BOOTCAT \ -l -r -J -o "$1" /remaster/iso # pad for partition table siz=$($getfilesize "$1") -cyls=$((siz / 512 / 32 / 16 + 1)) # C=$cyls H=16 S=32 (= 256 KiB units) -siz=$((cyls * 16 * 32 * 512)) # size after padding +cyls=$((siz / 512 / 32 / 16 + 1)) # C=$cyls H=16 S=32 (= 256 KiB units) +siz=$((cyls * 16 * 32 * 512)) # size after padding dd if=/dev/zero bs=1 count=1 seek=$((siz - 1)) of="$1" 2>/dev/null rm -R /remaster/iso -# here is the place to apply bootgrub.mksh ☺ +# here is the place where we could apply bootgrub.mksh echo "" echo "ISO generation complete:"