X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=remaster%2Fgrml-live-remaster;h=f922f5aa56714a4e042964889c419d49fb129efa;hp=456dbab2f557e3f7283061d4e6981715067c1129;hb=7bd13c06b566d4cce521dfc005b0a5a74a08377e;hpb=f5b2bf83a696e5e9d625e867abd5a688ea56d5b2 diff --git a/remaster/grml-live-remaster b/remaster/grml-live-remaster index 456dbab..f922f5a 100755 --- a/remaster/grml-live-remaster +++ b/remaster/grml-live-remaster @@ -21,40 +21,70 @@ fi set -e # exit on any error -VERSION='0.0.2' +if [ -d /live/image/boot/ ] ; then # until Grml versions <=2012.XX + LIVE_PATH_MAIN='/live/image' + LIVE_PATH_BOOT='/live/image/boot/' +else # for Grml versions >=2013.XX + LIVE_PATH_MAIN='/lib/live/mount/medium/' + LIVE_PATH_BOOT='/lib/live/mount/medium/boot/' +fi + +VERSION='0.0.3' GRML_LIVE_EDITOR=${VISUAL:-${EDITOR:-vi}} # source core functions {{{ +if ! [ -r /etc/grml/lsb-functions ] || ! [ -r /etc/grml/script-functions ] ; then + echo "Error: could not read /etc/grml/lsb-functions and/or /etc/grml/script-functions." >&2 + echo "Error: $0 can run only in Grml live session. Exiting." >&2 + exit 1 +fi + . /etc/grml/lsb-functions . /etc/grml/script-functions # }}} +if ! isgrmlcd ; then + echo "Error: $0 can run only in Grml live session. Exiting." >&2 + exit 1 +fi + # make sure we have what we need {{{ -check4progs mkisofs stat || exit 1 +if check4progs mkisofs >/dev/null 2>&1 ; then + MKISO=mkisofs +fi + +if check4progs genisoimage >/dev/null 2>&1 ; then + MKISO=genisoimage +fi + +if [ -z "$MKISO" ] ; then + echo "Error: neither mkisofs nor genisoimage available. Exiting." >&2 + exit 1 +fi + +check4progs 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 + if which mksquashfs >/dev/null 2>&1 ; then MKSQUASHFS=mksquashfs else - echo "Error: neither mksquashfs-lzma nor mksquashfs present. Exiting." + echo "Error: mksquashfs is not available. Exiting." >&2 exit 1 fi fi check4root || exit 1 # }}} -if [ x"$1" == x ]; then - echo "$0 - version $VERSION" - echo "" - echo "Usage: $0 destination.iso" - echo " destination.iso should point to a path that is on a hard disk," - echo " you might want to mount some swap partitions or swap files" - echo " first, because grml-live-remaster will need a lot ot RAM." - echo "" - echo "Please report bugs and feature requests: http://grml.org/bugs/" +if [ -z "$1" ]; then + echo "$0 - version $VERSION + +Usage: $0 destination.iso + destination.iso should point to a path that is on a hard disk, + you might want to mount some swap partitions or swap files + first, because grml-live-remaster will need a lot ot RAM. + +Please report bugs and feature requests: http://grml.org/bugs/" >&2 exit 1 fi @@ -64,14 +94,12 @@ if [ ! -d /remaster ]; then echo "#:# edit the following two lines to change the boot message" \ >/remaster/msg echo "#:#" >>/remaster/msg - if [ -r /live/image/boot/isolinux/boot.msg ] ; then - sed 1,2d /live/image/boot/isolinux/boot.msg >>/remaster/msg - else - sed 1,2d /live/image/boot.msg >>/remaster/msg + if [ -r ${LIVE_PATH_BOOT}/isolinux/boot.msg ] ; then + sed 1,2d ${LIVE_PATH_BOOT}/isolinux/boot.msg >>/remaster/msg fi fi -SQUASHFS_FILE="$(find /live/image/live -name \*.squashfs | head -1)" +SQUASHFS_FILE="$(find ${LIVE_PATH_MAIN}/live -name \*.squashfs | head -1)" if ! grep -q "/remaster/cdrom squashfs" /proc/mounts ; then mount -t squashfs "$SQUASHFS_FILE" /remaster/cdrom -o ro,loop fi @@ -95,8 +123,8 @@ ${GRML_LIVE_EDITOR} /remaster/msg [ -d /remaster/iso ] || mkdir /remaster/iso -for i in /live/image/*; do - if [ ! $i == /live/image/live ]; then +for i in ${LIVE_PATH_MAIN}/*; do + if [ ! $i = ${LIVE_PATH_MAIN}/live ]; then cp -R $i /remaster/iso fi done @@ -106,10 +134,10 @@ if [ -r /remaster/iso/boot/isolinux/boot.msg ] ; then fi # make sure we support usb sticks as well: -if [ -d /live/image/boot/isolinux ] ; then - BOOTSTUFF=/live/image/boot/isolinux +if [ -d ${LIVE_PATH_BOOT}/isolinux ] ; then + BOOTSTUFF=${LIVE_PATH_BOOT}/isolinux else - BOOTSTUFF=/live/image + BOOTSTUFF=${LIVE_PATH_MAIN} fi [ -d /remaster/iso/boot/isolinux ] || mkdir -p /remaster/iso/boot/isolinux @@ -130,7 +158,7 @@ else ISOLINUX_BOOTCAT=boot.cat fi -mkisofs -b $ISOLINUX -no-emul-boot -c $ISOLINUX_BOOTCAT \ +$MKISO -b $ISOLINUX -no-emul-boot -c $ISOLINUX_BOOTCAT \ -boot-info-table -boot-load-size 4 -no-pad \ -l -r -J -o "$1" /remaster/iso # pad for partition table