X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=remaster%2Fgrml-live-remaster;h=d4eb695d3ecb75f0935fdad60d2036e08f6041fb;hp=c480f03ca2b46a2703bfc22b31ad975dc505ed2b;hb=40b0557155a1203823d820af0b7bef21af037cd2;hpb=5e5258375d0b2d006c44c65afbd48f398f0de6e4 diff --git a/remaster/grml-live-remaster b/remaster/grml-live-remaster index c480f03..d4eb695 100755 --- a/remaster/grml-live-remaster +++ b/remaster/grml-live-remaster @@ -21,6 +21,14 @@ fi set -e # exit on any error +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}} @@ -74,26 +82,27 @@ if [ -z "$1" ]; then 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. + first, because grml-live-remaster will need a lot of RAM. Please report bugs and feature requests: http://grml.org/bugs/" >&2 exit 1 fi -if [ ! -d /remaster ]; then - mkdir -p /remaster/chroot /remaster/tmp /remaster/cdrom - mount -t tmpfs tmpfs /remaster/tmp - 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 - fi +if [ ! -r /remaster ]; then + echo "Please create /remaster (e.g. link it to a harddrive)." >&2 + echo "Exiting to avoid running out of space on the live system." >&2 + exit 1 +fi + +mkdir -p /remaster/chroot /remaster/tmp /remaster/cdrom +mount -t tmpfs tmpfs /remaster/tmp +echo "#:# edit the following two lines to change the boot message" >/remaster/msg +echo "#:#" >>/remaster/msg +if [ -r ${LIVE_PATH_BOOT}/isolinux/boot.msg ] ; then + sed 1,2d ${LIVE_PATH_BOOT}/isolinux/boot.msg >>/remaster/msg 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 @@ -102,14 +111,14 @@ if ! grep -q "aufs /remaster/chroot" /proc/mounts ; then mount -t aufs aufs /remaster/chroot -o br:/remaster/tmp=rw:/remaster/cdrom=rr fi -for i in dev proc root sys tmp; do +for i in run dev dev/pts proc root sys tmp; do mount --bind /$i /remaster/chroot/$i done echo "Now edit the contents of the live CD in this chrooted shell:" chroot /remaster/chroot -for i in dev proc root sys tmp; do +for i in run dev/pts dev proc root sys tmp; do umount /remaster/chroot/$i done @@ -117,8 +126,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 @@ -128,10 +137,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 @@ -140,8 +149,11 @@ sed 3,4d "${BOOTSTUFF}"/boot.msg \ >/remaster/iso/boot/isolinux/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)" +SQUASHFS_FQNAME=/remaster/iso/${SQUASHFS_FILE##$LIVE_PATH_MAIN} +mkdir -p $(dirname $SQUASHFS_FQNAME) +# the next line is necessary for grml2usb to work on the destination image +echo $(basename $SQUASHFS_FQNAME) > $(dirname $SQUASHFS_FQNAME)/filesystem.module +$MKSQUASHFS /remaster/chroot $SQUASHFS_FQNAME umount /remaster/chroot /remaster/cdrom if [ -f /remaster/iso/boot/isolinux/isolinux.bin ] ; then