Benutzer-Werkzeuge

Webseiten-Werkzeuge

StrukturPunkt
Klaus Franken

doku:knf2009-linux-live-uck

View page as slide show

Linux Live CDs selbst anpassen

  • Das Ubuntu Customization Kit - uck
  • Klaus Franken, StrukturPunkt.de
  • KNF Kongress 22.11.2009

Wie kam ich dazu?

Aufgabe

  • Linux Live CD
  • Layout- und Sprachanpassung
  • schon möglichst viel dabei, z.B.
    • grafische Oberfläche
    • volle Netzwerkumgebung
    • Office-Programme
  • zusätzliche Programme
  • HFS+ Dateisystem
  • Mac Hardware Unterstützung (auf allen Intel Macs)

Ubuntu Live-CD Übersicht

    • basiert auf Debian, nur mehr GUI
  • benutzt SquashFS
    • komprimiertes read-only-Dateisystem
  • benutzt UnionsFS
    • verschiedener Dateisysteme werden zu einem einzigen logischen Dateisystem vereinigt
    • ⇒ im Live-System kann alles überschrieben werden, z.B. Updates
  • Live-System kann auch auf Festplatte und USB-Stick installiert werden

uck Übersicht

  • uck: Ubuntu Customization Kit
  • macht aus einer Ubuntu-CD eine neue CD
    • keine komplette Entwicklungsumgebung nötig

uck Übersicht 2

uck Voraussetzungen

  • Ubuntu-System (getestet mit 9.04)
  • Ubuntu Live-CD iso-Image
  • 5GB freien Plattenplatz
  • schnellen Internetzugang
  • RAM und Zeit

uck Installation

uck Vorbereitung

  • Benutzer für uck (!= root):
    • nicht auf Live-Platte, sondern echter Platte
    • 5GB Platz
  • Benutzer für Vorlage
    • wird später nach /etc/skel kopiert
    • Anpassung z.B. Firefox-Homepage etc.

uck Start

  • Grafisch: Anwendungen / Systemwerkzeuge / Ubuntu Customization Kit
  • Terminal: uck-gui

uck Wizard

  • language packs: de, …
  • language which will be used at boot of live CD: de
    • schon dafür lohnt sich der ganze Aufwand ;-)
  • desktop environments: gnome
  • choose an ISO Image to be used as the basis: meine-vorlage.iso
  • enter the name for the CD: KNF Live Live CD 2009
  • Do you want to customize during building? yes
  • Do you want to delete all windows-related files from the CD: yes/no

Fasten seatbelts… (nach Passwortabfrage).

uck Ordnerstruktur

  • /home/
    • benutzer/
      • tmp/
        • customizations-scripts/
          • Scripts für CD-Anpassung
          • wird automatisch angelegt und überschrieben :!:
        • iso-mount/
          • Mount-Point für Original-CD
        • squashfs-mount/
          • Mount-Point für Squash-FS
        • remaster-iso/
          • neues CD Abbild
        • remaster-root/
          • neues Root-Filesystem
          • unser Ort für weitere Anpassungen
        • remaster-new-files/
          • wird bei jedem Lauf gelöscht :!:
          • livecd.iso
            • unser Ziel :-)
        • build.log
  • /tmp/
    • .X11-unix
      • zwischen mehreren Läufen manuell löschen

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
doku/knf2009-linux-live-uck.txt · Zuletzt geändert: 22.11.2009 14:25 von kfr

oeffentlich