All right I came across the original scripts that were used by Klaus Knopper to build the original Knoppix CD. These are from April 2003 so they are old but maybe someone can help me modify these so they suit Knoppix 3.4. Here are the scripts:

Code:
Attached.

WARNING: THESE SCRIPTS WILL DESTROY YOUR ENTIRE SYSTEM, MAKE YOUR
HARDDISK UNREADABLE, YOUR TV WILL EXPLODE, YOU WILL HAVE 7 YEARS OF BAD
LUCK, YOUR GIRLFRIEND WILL LEAVE YOU, AND THE WORLD AS WE KNOW IT
WILL COME TO A SUDDEN END. YOU HAVE BEEN WARNED. ;-)

Seriously, please don't run these scripts without reading them
carefully, understanding what they do and modifying them accordingly.

Regards
-Klaus Knopper

--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Knoppix.checklibs"

#!/bin/bash
# Knoppix.checklibs (C) 2003 Klaus Knopper
# Checks for missing libraries in binary files

DIRS="/bin /sbin /usr/bin /usr/sbin /usr/X11R6/bin /usr/games /usr/local/bin /usr/local/sbin /lib /usr/lib"

for d in $DIRS; do
ldd $d/* 2>&1 | while read line; do
case "$line" in
*:) CURRENT="${line%\:*}";;
*not\ found*) echo "ERROR: $CURRENT: $line";;
esac
done
done

--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Knoppix.clean"

#!/bin/bash
# Restore initial system state, clean all temporary files

umask 022

# echo "Updating package lists..."
# pump; sleep 2
# perl -pi -e 's/^deb/#deb/g' /etc/apt/sources.list
# apt-get update >/dev/null 2>&1
# perl -pi -e 's/^#deb/deb/g' /etc/apt/sources.list


/etc/init.d/autofs stop
[ -x /etc/init.d/knoppix-terminalserver ] && /etc/init.d/knoppix-terminalserver deconfigure

# remove only "temporary" or saved files in the given directories
nuke(){
for i in `find "$@" -name \*.gz -o -name \*.bz2 -o -name \*.0 -o -name \*.0.log -o -name browse.dat -o -name \*.\*pk 2>/dev/null`; do
rm -f "$i"
done
}

# set all files in the given directories to a length of zero
zero(){
for i in `find "$@" -type f -size +0 -not -name \*.ini 2>/dev/null`; do
:> "$i"
done
}

rmdir /mnt/cdrom?* /mnt/hd?* /mnt/sd?* 2>/dev/null
rm -f /etc/ifstate /etc/X11/XF86Config /etc/X11/XF86Config-4 \
      /etc/XF86Config /etc/XF86Config-4 /etc/sysconfig/* \
      /etc/ssh/*key* \
      /etc/samba/*.SID /var/lib/samba/* /var/cache/samba/* /etc/samba/*.tdb \
      /dev/mouse* /dev/cdrom* /dev/cdwriter* \
      /var/run/*/* /var/run/* /var/log/ksymoops/* /var/lock/*/* /var/lock/* \
      /var/state/*/* /var/state/* /var/log/nessus/* /var/lib/nessus/* \
      /halt /reboot /ash.static /etc/dhcpc/*.info /etc/dhcpc/resolv* \
      /etc/resolv.conf /etc/*passwd- /etc/*shadow- /etc/*group- 2>/dev/null
mkdir -p /etc/sysconfig/network-scripts /etc/sysconfig/provider
cat >/etc/dhcpc/resolv.conf <<EOT
# insert nameservers here
# nameserver 127.0.0.1
EOT
chmod 644 /etc/dhcpc/resolv.conf
ln -s /etc/dhcpc/resolv.conf /etc/
rm -rf /tmp/* /var/tmp/* /var/backups/* /root/.??* /.??* /home/root/.??* \
	/home/*/.ssh /home/*/.bash_history \
       /home/knoppix/* /home/knoppix/.??* /var/lib/texmf/ls-R \
       /var/spool/texmf/ls-R /var/run/screen/* /var/spool/squid/* \
       /usr/share/applnk/System/Nessus.desktop
nuke /var/log /var/cache /var/spool/texmf 
zero /var/local /var/log /var/spool /var/mail \
     /var/lib/games /var/cache/man /var/lib/wine \
     /var/lib/nfs /var/lib/xkb

for i in `find /usr/*/man -name \*.\[0-9ln\]` ; do
[ -f "$i".gz -o -f "$i".bz2 ] && rm -f "$i"
done

# delete old dowloaded packages
apt-get clean

# Strip X11 Libs
strip --strip-unneeded `find /usr/X11R6/lib/modules -name \*.so -o -name \*.o`

# Recreate empty utmp and wtmp
:>/var/run/utmp
:>/var/run/wtmp
# regenerate module dependencies and ls.so.cache
echo -n "Updating ld.so.cache..."
ldconfig
echo "	Done."
echo -n "Updating modules.dep..."
depmod -a 2>/dev/null
echo "	Done."
echo -n "Updating texhash..."
mktexlsr
echo "	Done."
echo -n "Updating mandb..."
mandb -c
man doesnotexist >/dev/null 2>&1
echo "	Done."
echo -n "Updating menus..."
/usr/sbin/mkmenusfromkde
echo "	Done."
echo -n "Updating locate-database..."
updatedb --prunepaths="/KNOPPIX.build /mnt/hd /mnt/cdrom /tmp /usr/tmp /var/tmp"
update-dlocatedb
echo "	Done."

echo -n "Fixing permissions in /dev/..."
chown root.root /dev/ttyp*
chmod 666 /dev/ttyp* /dev/sg* /dev/audio* /dev/dsp* /dev/mixer* /dev/sequencer*
echo "  Done".

echo -n "Fixing permissions in /etc/ppp/..."
chown root.dip /etc/ppp/*secrets /etc/ppp/ppp_* /etc/ppp/peers/*provider /etc/ppp/peers /etc/ppp /etc/chatscripts /etc/chatscripts/*
chmod g+rwX    /etc/ppp/*secrets /etc/ppp/ppp_* /etc/ppp/peers/*provider /etc/ppp/peers /etc/ppp /etc/chatscripts /etc/chatscripts/* 
echo "  Done".

echo -n "Removing unused architecture Kernel sources: "
for i in `ls -1 /usr/src/linux/arch/ | grep -v i386`; do
	echo -n "$i "; rm -rf /usr/src/linux/arch/"$i" /usr/src/linux/include/asm-"$i"
done
echo "	Done."

# Remove obsolete bluetooth module
rm -f /lib/modules/*/kernel/drivers/usb/bluetooth.o

echo -n "Creating auto.mnt..."
cat >/etc/auto.mnt <<EOT
# Knoppix automounter file for Directory /mnt/auto
# umask=000 only works for msdos/vfat floppies, but otherwise the floppy is read-only.
floppy	-fstype=auto,user,exec,umask=000	:/dev/fd0
cdrom	-fstype=auto,user,exec,ro	:/dev/cdrom
# The following entries (if any) are auto-generated by knoppix-autoconfig
EOT
echo "  Done".
# echo "Setting OpenOffice Link to default EN"
# rm -f /etc/alternatives/soffice.resource ; ln -sf /opt/openoffice/program/resource-en /etc/alternatives/soffice.resource
# rm -f /etc/alternatives/soffice.help ; ln -sf /opt/openoffice/help/help-en /etc/alternatives/soffice.help
echo -n "Zeoring available Package lists ..."
for i in $(find /var/lib/apt/lists -type f \( -name \*Packages -o -name \*Sources \) 2>/dev/null); do  :>"$i"; done
dpkg --clear-avail
rm -f /var/cache/apt/*.bin
apt-cache gencaches
echo "Done."

--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Knoppix.findorphans"

#!/bin/sh
find /usr /bin /lib /etc | xargs -n 20 dpkg -S | egrep -e '(not found|nicht gefunden)'

--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Knoppix.mkcompressed"

#!/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 <<EOT
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback

EOT

cat >/etc/dhcpc/resolv.conf <<EOT
# Insert nameservers here
# nameserver 127.0.0.1
EOT

# Mount root read-only, so no files change while generating image
mount -o ro,remount / || { echo "Error: Cannot mount / read-only" >&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 ja be da dk zh"
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 \
	-no-split-symlink-components -no-split-symlink-fields \
	-V "KNOPPIX_FS" \
	-P "KNOPPER.NET" \
	-p "www.knopper.net" \
	-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/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\*/arch \
        -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\*/stamp-\* \
	-m /usr/src/linux\*/C\* \
	-m /usr/src/linux\*/M\* \
	-m /usr/src/linux\*/R\* \
	-m /usr/src/linux\*/debian \
	-m /usr/src/linux\*/kernel \
	-m /usr/src/linux\*/kdb \
	-m /usr/src/linux\*/lib \
	-m /usr/src/linux\*/scripts \
	-m /usr/src/linux\*/conf.vars \
	-m /usr/src/linux\*/.*depend \
	-m /usr/src/linux\*/.*old \
	$HIDELOCALE / \
	| /usr/bin/create_compressed_fs - $BLOCKSIZE >"$DEST"/KNOPPIX/KNOPPIX || exit 1
#	-o "$DEST"-tmp.iso / && \
#	/usr/bin/compressloop -v -v -c 9 -b $BLOCKSIZE "$DEST"-tmp.iso "$DEST"/KNOPPIX/KNOPPIX && rm -f "$DEST"-tmp.iso || 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 LIVE LINUX CD' \
        -P "KNOPPER.NET" \
        -p "www.knopper.net" \
        -b KNOPPIX/boot.img -c KNOPPIX/boot.cat \
        -m "$DEST"/KNOPPIX/boot-\*.img \
        -hide-rr-moved \
        -o "$TARGET" "$DEST"
}

echo -n "Recreate KNOPPIX-DE isofile '$DEST.iso'? "
read answer
if [ "$answer" = "y" ]; then
# Make sure that the boot floppy file AND the boot catalog are at the beginning of the image.
# Some controllers seem to depend on this.
rm -f /tmp/knoppix.sort
echo "$DEST/KNOPPIX/boot.cat 100003"    >/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
mkfinal "$DEST"

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
cdrecord -v -dao -pad -eject driveropts=burnfree dev=0,1,0 speed=12 fs=24M "$DEST.iso"
fi

# Clean up
find /var/lib/apt/lists/ -type f -exec rm -f {} \;

--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Knoppix.mksortlist"

#!/bin/sh
find / -anewer /KNOPPIX.build/mkisofs.timestamp -not \( -type d -o -path /KNOPPIX.build\* -o -path /tmp\* -o -path /proc/\* -o -path /mnt/\* \) -printf '%p	%A@\n' | sort -rn +1 -t'	' | awk -F'	' '{print $1 "	" ++i}' > /KNOPPIX.build/mkisofs.sort

echo "/bin/mkdir	10090" >> /KNOPPIX.build/mkisofs.sort
echo "/bin/chown	10080" >> /KNOPPIX.build/mkisofs.sort
echo "/bin/cp	10070" >> /KNOPPIX.build/mkisofs.sort
echo "/bin/ln	10060" >> /KNOPPIX.build/mkisofs.sort
echo "/bin/rm	10050" >> /KNOPPIX.build/mkisofs.sort
echo "/dev/*	20000" >> /KNOPPIX.build/mkisofs.sort
echo "/etc/*	30000" >> /KNOPPIX.build/mkisofs.sort

--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Knoppix.postupgrade"

#!/bin/sh
# Remove unwanted init scripts and KDE-autostart files

STOP=""
for i in `ls -d1 /etc/rc?.d/* | egrep -v -e '(README|knoppix|xsession)'`; do
BASE=`basename $i`
BASE=${BASE##[KS]??}
case "$STOP" in *${BASE}*) ;; *) STOP="$STOP $BASE"; ;; esac
rm -vf $i
done

for i in $STOP; do
/etc/init.d/$i stop
done


for i in `ls -d1 /usr/share/autostart/* | egrep -v -e '(panel|kdesktop|khotkeys)\.desktop'`; do
rm -vf $i
done

chmod u+s /usr/bin/cdrecord /usr/bin/cdrdao
# /usr/bin/cdparanoia

# Some GTK programs HAVE to run as root. :-/

for i in `egrep -q -l -r -e '(xcdroast|ethereal)' /usr/share/applnk/.`; do
	perl -pi -e 's|Exec=/|Exec=sudo /|g' "$i"
done

# Replace kdesu (needs password) by sudo (doesn't)
for i in `grep -q -l -r 'Exec=.*kdesu' /usr/share/applnk/.`; do
	perl -pi -e 's|Exec=.*kdesu |Exec=sudo -H |g' "$i"
done

# Remove -ncp in xboard startup file
for i in `grep -q -l -r 'Exec=.*xboard.*-ncp' /usr/share/applnk/.`; do
	perl -pi -e 's| -ncp||g' "$i"
done

# Almost everything is wrong in this menu file
rm -f /usr/lib/menu/evolution1.3

# Change Debians OpenOffice settings to default font Helmet
#for i in `find /usr/lib/openoffice -name Writer.xml`; do
# for j in Standard Heading List Caption Index; do
#  perl -pi -e 's|<'"$j"' cfg:type="string" xsi:null="true"/>|<'"$j"' cfg:type="string">Helmet</'"$j"'>|g' $i
# done
#done

for i in "alias net-pf-17 af_packet" "alias ide_cs ide-cs" "alias usbcore off" "alias autofs autofs4"; do
grep -q "$i" /etc/modutils/aliases || { echo "$i" >> /etc/modutils/aliases; update-modules; }
done

# Make acrobat the default PDF viewer, if present.
for i in `find /usr/share/applnk -iname Acrobat_Reader.desktop`; do
egrep 'MimeType=application/pdf' "$i" >/dev/null ||
echo "InitialPreference=4
MimeType=application/pdf;Application" >> "$i"
done

# Change desktop icon for Mozilla
for i in /usr/share/applnk/*/*/Mozilla_Browser.desktop; do
	perl -pi -e 's|Icon=.*$|Icon=mozilla|g' "$i"
done

#for i in "vendor 0x055d product 0x9001 module pwc"; do
#grep -q "$i" /etc/usbmgr/usbmgr.conf || echo "$i" >> /etc/usbmgr/usbmgr.conf
#done

# Euro font stuff
perl -pi -e 's/iso8859-1( |$)/iso8859-15$1/g' /etc/X11/fonts/misc/xfonts-base.alias && update-fonts-alias /usr/lib/X11/fonts/misc

--PuGuTyElPB9bOcsM--