X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=remaster%2Fgrml-live-remaster;h=a340592d3cc84f9791136d2f42a8182e2060ff58;hp=ba5f749f702182fa17e9f80c1485076741986498;hb=07fe8f21ee5a3a8f9ff6de022cf1f60d5c097d30;hpb=2def18e419f1474c3904672ce297babbb4b9b501 diff --git a/remaster/grml-live-remaster b/remaster/grml-live-remaster index ba5f749..a340592 100755 --- a/remaster/grml-live-remaster +++ b/remaster/grml-live-remaster @@ -1,7 +1,10 @@ #!/bin/sh # Filename: grml-live-remaster # Purpose: remaster a grml from the live cd -# Authors: grml-team (grml.org), (c) Michael Schierl , (c) Michael Prokop +# Authors: grml-team (grml.org), +# (c) Michael Schierl , +# (c) Michael Prokop , +# (c) Thorsten Glaser # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. ################################################################################ @@ -9,9 +12,17 @@ # this script currently lacks LOTS of error checking code... any help welcome... ################################################################################ +# define function getfilesize before "set -e" +if stat --help >/dev/null 2>&1; then + getfilesize='stat -c %s' # GNU stat +else + getfilesize='stat -f %z' # BSD stat +fi + set -e # exit on any error VERSION='0.0.2' +GRML_LIVE_EDITOR=${VISUAL:-${EDITOR:-vi}} # source core functions {{{ . /etc/grml/lsb-functions @@ -19,7 +30,7 @@ VERSION='0.0.2' # }}} # make sure we have what we need {{{ -check4progs mkisofs mksquashfs || exit 1 +check4progs mkisofs mksquashfs stat || exit 1 check4root || exit 1 # }}} @@ -68,7 +79,7 @@ for i in dev proc root sys tmp; do umount /remaster/chroot/$i done -$EDITOR /remaster/msg +${GRML_LIVE_EDITOR} /remaster/msg [ -d /remaster/iso ] || mkdir /remaster/iso @@ -108,9 +119,17 @@ else fi mkisofs -b $ISOLINUX -no-emul-boot -c $ISOLINUX_BOOTCAT \ - -boot-info-table -l -r -J -o "$1" /remaster/iso + -boot-info-table -boot-load-size 4 -no-pad \ + -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 +dd if=/dev/zero bs=1 count=1 seek=$((siz - 1)) of="$1" 2>/dev/null rm -R /remaster/iso +# here is the place where we could apply bootgrub.mksh + echo "" echo "ISO generation complete:" ls --color -l "$1"