#!/bin/bash DEST="$1" [ -z "$DEST" -o ! -d "$DEST" ] && { echo "Usage: $0 DESTINATIONDIR" >&2 ; exit 1; } [ ! -x /usr/bin/create_compressed_fs ] && { echo "Need /usr/bin/create_compressed_fs." ; exit 1; } # Compression blocksize (must be multiple of 512) # All block headers must fit into a kmalloc segment (ca. 130000 bytes) BLOCKSIZE=65536 # BLOCKSIZE=53248 # BLOCKSIZE=102400 echo -n "Update Bootfloppy file(s)? " read answer if [ "$answer" = "y" ]; then cp -uv /KNOPPIX.build/Knoppix.System/bootdisk/Knoppix/boot-*.img "$DEST"/KNOPPIX/ ( cd "$DEST"/KNOPPIX && ln -f -v boot-de.img boot.img ) || exit 1 fi [ ! -f "$DEST"/KNOPPIX/boot.img ] && { echo "Missing required file $DEST/KNOPPIX/boot.img" >&2 ; exit 1; } echo -n "Recreate KNOPPIX compressed FS? " read answer if [ "$answer" = "y" ] then rm -f "$DEST"/KNOPPIX/KNOPPIX # Remove files that need to be autogenerated from source dir! echo -n "Sweep/Clean system before remastering? " read answer [ "$answer" = "y" ] && { . /KNOPPIX.build/Knoppix.postupgrade; . /KNOPPIX.build/Knoppix.clean; } cat >/etc/network/interfaces </etc/dhcpc/resolv.conf <&2 ; exit 0; } # Hide unwanted LOCALEs. HIDELOCALE="" HIDEMAN="" MYLOCALE=$(awk -F'[="_]' '/^(LANG|LANGUAGE)=/{if(!/[$]/){x=x" "$3}}END{print x}' /etc/init.d/knoppix-autoconfig) MYLOCALE="$MYLOCALE C en uk fi ja be" LOCALEDIR=/usr/share/locale MANPAGEDIR=/usr/share/man for LOCALE in `/bin/ls -1 $LOCALEDIR`; do [ -d "$LOCALEDIR/$LOCALE/LC_MESSAGES" ] || continue FOUND="" for l in $MYLOCALE; do case "$LOCALE" in $l*) FOUND="yes" ;; esac done if [ -z "$FOUND" ]; then HIDELOCALE="$HIDELOCALE -m $LOCALEDIR/$LOCALE" [ -d "$MANPAGEDIR/$LOCALE" ] && HIDELOCALE="$HIDELOCALE -m $MANPAGEDIR/$LOCALE" fi done # -U implies: -d, -l, -L, -N, -relaxed-filenames, -allow-lowercase, # -allow-multidot and -no-iso-translate # -iso-level 3 -U -cache-inodes -no-bak -pad \ # -hide-rr-moved \ # -m /var/lib/dpkg/available\* \ SORT="" [ -e /KNOPPIX.build/mkisofs.sort ] && SORT="-sort /KNOPPIX.build/mkisofs.sort" # mkisofs -pad -R -l -v $SORT \ mkisofs -R -U -v $SORT \ -V "KNOPPIX ISO9660 Filesystem" \ -P "Knopper.Net http://www.knopper.net/" \ -p "Klaus Knopper " \ -hide-rr-moved -cache-inodes -no-bak -pad \ -m /proc/\* -m /tmp/\* -m /var/tmp/\* -m /home/\* -m /initrd/\* \ -m /KNOPPIX.build -m /mnt/\*/\* -m \*.dpkg-\* \ -m /mnt/hd/\* -m /mnt/hd\* -m /mnt/cdrom\* -m /etc/fstab\* \ -m /etc/sysconfig/\* -m /etc/exports -m /etc/dhcpc/dhcpcd\* \ -m /var/spool/mail/\* -m /var/spool/mqueue/\* \ -m /etc/driveprm -m .ssh -m .bash_history \ -m /etc/printcap\* -m /var/spool/cups/tmp/\* \ -m /etc/cups/certs/\* -m /etc/cups/\*.O -m /etc/cups/ppd/\* \ -m /etc/gpm.conf -m /etc/isapnp.\* -m /etc/minirc.dfl \ -m /var/cache/debconf/\*-old -m /var/lib/\*/\*- \ -m /var/lib/\*/\*-old -m /var/log/XFree86.\* \ -m /var/samba/\*.pid -m /var/lib/samba/\* -m /var/cache/samba/\* \ -m /var/mail/\* -m /var/apt/cache/archives/lock \ -m /var/log/ksymoops\* -m /var/spool/exim/db/\* -m /etc/\*.old \ -m /etc/\*.save -m /etc/ssl/certs/\* -m \*.preserved \ -m .viminfo -m .\*.swp -m lost+found \ -m /.\?\?\* -m /root/.\?\?\* -m /etc/.\?\?\* \ -m /boot/map -m /boot/boot.0\* \ -m /usr/src/kernel\*.deb -m /usr/src/kernel\*.dsc -m /usr/src/kernel\*.changes -m /usr/src/kernel\*.tar.gz \ -m /usr/src/modules/pcmcia\* \ -m /usr/src/linux\*/drivers \ -m /usr/src/linux\*/fs \ -m /usr/src/linux\*/init \ -m /usr/src/linux\*/mm \ -m /usr/src/linux\*/net \ -m /usr/src/linux\*/vmlinu\* \ -m /usr/src/linux\*/System.map \ -m /usr/src/linux\*/ipc \ -m /usr/src/linux\*/kernel \ -m /usr/src/linux\*/lib \ -m /usr/src/linux\*/Rules.make \ -m /usr/src/linux\*/scripts \ $HIDELOCALE \ / \ | nice -5 /usr/bin/create_compressed_fs - $BLOCKSIZE \ >"$DEST"/KNOPPIX/KNOPPIX || exit 1 mount -o rw,remount / chmod 444 "$DEST"/KNOPPIX/KNOPPIX # swapoff /dev/hdc2 2>/dev/null fi mkfinal(){ TARGET="$1.iso" # Alternate boot record # -eltorito-alt-boot \ # -b KNOPPIX/boot-en.img -c KNOPPIX/boot.cat \ mkisofs -pad -l -r -J -v \ -sort /tmp/knoppix.sort \ -V 'KNOPPIX' -A 'KNOPPIX CD-ROM' \ -P "KNOPPER.NET http://www.knopper.net/" \ -p "KNOPPIX CD-ROM Taskforce " \ -b KNOPPIX/boot.img -c KNOPPIX/boot.cat \ -hide-rr-moved \ -o "$TARGET" "$DEST" } #blivius# echo -n "Recreate KNOPPIX-DE isofile '$DEST.iso'? " echo -n "Skipping over german version" #blivius# read answer answer=y if [ "$answer" = "y" ]; then # Make sure that the boot floppy file is at the beginning of the image. # Some controllers seem to depend on this. rm -f /tmp/knoppix.sort echo "$DEST/KNOPPIX/boot.img 100002" >/tmp/knoppix.sort echo "$DEST/KNOPPIX/KNOPPIX 100001" >>/tmp/knoppix.sort echo "$DEST/Demos/Audio/*.mp3 -100000" >>/tmp/knoppix.sort echo "$DEST/Demos/Audio/*.ogg -100000" >>/tmp/knoppix.sort # Make final CD Image ## echo mkfinal "$DEST" ## echo added by blivius to disable echo -n "Recreate KNOPPIX-EN isofile '$DEST-EN.iso'? " read answer if [ "$answer" = "y" ]; then ( cd "$DEST"/KNOPPIX && ln -f -v boot-en.img boot.img ) || exit 1 mkfinal "$DEST-EN" ( cd "$DEST"/KNOPPIX && ln -f -v boot-de.img boot.img ) || exit 1 fi rm -f /tmp/knoppix.sort fi echo -n "BURN german CD version? " read answer if [ "$answer" = "y" ]; then echo disabled by blivius, it wants to do... echo cdrecord -v -pad -eject dev=0,1,0 speed=16 fs=24M "$DEST.iso" fi