Inhaltsverzeichnis

~~SLIDESHOW~~

Linux Live CDs selbst anpassen

Wie kam ich dazu?

Aufgabe

Ubuntu Live-CD Übersicht

uck Übersicht

uck Übersicht 2

uck Voraussetzungen

uck Installation

uck Vorbereitung

uck Start

uck Wizard

Fasten seatbelts… (nach Passwortabfrage).

uck Ordnerstruktur

uck "manually"-Script 1/3

uck durchläuft Phase 1 und wartet auf manuelle Anpassungen.

Beispiel:

#!/bin/sh
# (c) 2009 Klaus.Franken@StrukturPunkt.de
# Customize Ubuntu-Root unter `pwd`/tmp/remaster-new-files
# Quelldaten von:
#    `pwd`/uck/
#    /home/ubuntu/

UCKDIR=`pwd`/tmp/
ZIEL=`pwd`/tmp/remaster-root
QUELLE=`pwd`/uck
LIVE=vorlage

cp -a /home/$LIVE/. $ZIEL/etc/skel/. || exit 2
rm -f $ZIEL/etc/skel/.bash_history || exit 2
rm -rf $ZIEL/etc/skel/.local/share/Trash/ || exit 2
rm -rf $ZIEL/etc/skel/.xsession-error || exit 2
rm -rf $ZIEL/etc/skel/.mozilla/firefox/*/urlclassifier3.sqlite || exit 2
rm -rf $ZIEL/etc/skel/.mozilla/firefox/*/Cache/* || exit 2

...

uck "manually"-Script 2/3

Fortsetzung:

...
## Live-Root erweitern
cp -a $QUELLE/rootfs/. $ZIEL/. || exit 2

## iso-Image erweitern
echo -n "KNF Live CD, Version " > $ZIEL/../remaster-iso/VERSION
date +"%Y.%m.%d-%H:%M" >> $ZIEL/../remaster-iso/VERSION
...
## updates
chroot $ZIEL apt-get update || exit 2
chroot $ZIEL apt-get -y --purge remove 'gimp*' || exit 2
chroot $ZIEL apt-get -y --purge remove 'openoffice*' || exit 2
chroot $ZIEL apt-get -y install 'abiword' || exit 2
chroot $ZIEL apt-get install udev || exit 2
chroot $ZIEL apt-get install acpid || exit 2
chroot $ZIEL apt-get install hal || exit 2
chroot $ZIEL apt-get install checkbox checkbox-gtk || exit 2
chroot $ZIEL apt-get -y upgrade || exit 2

...

uck "manually"-Script 3/3

Fortsetzung:

...
# Kernel Update und alte löschen
chroot $ZIEL apt-get -y dist-upgrade || exit 2

# von http://kanotix.com/index.php?module=pnWikka&tag=OldKernelEntsorgen
echo "KERNEL=\$(dpkg -l| \
  awk \
  '/linux-image|linux-headers|linux-restricted-modules/{print \$2}' \
  | grep -v $(uname -r|sed 's/\([^-]*-[^-]*\)-.*/\1/')); \
  [ \"\$KERNEL\" ] && apt-get remove --yes --purge \$KERNEL" \
  > $ZIEL/tmp/remove_old_kernels.sh
chroot $ZIEL sh -x /tmp/remove_old_kernels.sh || exit 2
rm $ZIEL/tmp/remove_old_kernels.sh

chroot $ZIEL apt-get -y autoremove || exit 2

exit 0

exit 0

Tipps & Tricks

Sprachanpassung ISO-Image Boot (Grub)

echo "cat \$ISO_REMASTER_DIR/isolinux/de.tr | 
	perl -ne '\$_ =~ s/Tastaturbelegung/Tastatur/; print;' |
	perl -ne '\$_ =~ s/Weitere Optionen/Mehr Optionen/; print;' |
	perl -ne '\$_ =~ s/Barrierefreiheit/Barrierefrei/; print;' |
	perl -ne '\$_ =~ s/Ubuntu \^ausprobieren \(Rechner bleibt unverändert\)/Mac Life Ubuntu \^Rettungssystem/; print;' > \$ISO_REMASTER_DIR/isolinux/de.tr-NEU || exit 2" >> $UCKDIR/customization-scripts/customize_iso || exit 2
echo "mv \$ISO_REMASTER_DIR/isolinux/de.tr-NEU \$ISO_REMASTER_DIR/isolinux/de.tr || exit 2" >> $UCKDIR/customization-scripts/customize_iso || exit 2

Timezone

/etc/rc.local (in rootfs)

# Zeitzone
mv /etc/localtime /etc/localtime.ORIG
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime