doku:knf2009-linux-live-uck
Inhaltsverzeichnis
~~SLIDESHOW~~
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
- /etc/apt/sources.list aktivieren:
- deb http://archive.ubuntu.com/ubuntu jaunty universe
- deb-src http://archive.ubuntu.com/ubuntu jaunty universe
- apt-get update
- apt-get install uck
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
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: 2009-11-22 13:25 von 127.0.0.1