Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Opalix 2007:Opalix erstellen

Version vom 20. Oktober 2007, 21:44 Uhr von 89.57.148.236 (Diskussion) (ISOLINUX Bootloader)

Diese Anleitung basiert zu großen Teilen auf der Anleitung aus dem Vorjahr, wurde aber in mehrere Richtungen (KDE-Aussehen, VirtualBox) erweitert.

Voraussetzungen

  • Eine vorhandene Linuxinstallation
  • 1 GB RAM (echter Speicher + Swap) vorhanden
  • 8 GB freier Festplattenspeicher auf einer Linux-Partition (Ext2/3, XFS, JFS, Reiser, o.ä., aber nicht FAT/NTFS)
  • optional externe Festplatte und virtuelle Maschine (VMWare, VirtualBox o.ä.)
  • Möglichst schneller Prozessor, auf einem Intel Pentium 4 mit 3GHz dauert das Komprimieren des CD-Images ca. 10-15 Minuten, auf einem Athlon 2500+ dauerte es etwa 15-20 Minuten.

Knoppix installieren und auf Festplatte speichern

  • Aktuelle Knoppix Version von http://www.knoppix.net/get.php herunterladen.
    • WICHTIG: Mit dem Programm md5sum die Korrektheit des ISOs sicherstellen.
    • Für Opalix 2007 wurde KNOPPIX_V5.1.1CD-2007-01-04-DE.iso verwendet.
  • Knoppix-CD brennen (siehe alten Artikel) oder in einer virtuellen Maschine starten. Im Weiteren wird die Variante in der virtuellen Maschine verwendet.
  • Knoppix in der VM starten: Dafür einfach eine neue Maschine anlegen oder in einer bestehenden Maschine das ISO-Image als CD-Rom-Laufwerk einstellen und von der CD booten.
  • Wenn das Knoppix gestartet ist, die externe Festplatte anschließen und über das VMWare-Menü für die CD freigeben oder "Shared Folders" einrichten. Wichtig: Die Platte nicht im eigentlichen Linux mounten!
  • Im Beispiel wurde die Patition in /media/sda1 eingehängt
sudo su # Root-Shell aufmachen

# Verzeichnisse anlegen und das entpackte Knoppix-Dateisystem kopieren

cd /media/sda1 # ins Verzeichnis des externen Speichers wechseln
mkdir -p ./opalix/master # Hierhin wird die echte CD kopiert
mkdir -p ./opalix/source # Hierhin kommt das entpackte komprimierte Dateisystem der CD
cp -pR /KNOPPIX source/ # Geduld! Dauert eine ganze Weile

# Artwork und Autostart-Krams kopieren. Die große (ca. 700Mb) KNOPPIX Datei können wir uns sparen

cd ./master
cp -p /cdrom/* .
cp -pr /cdrom/boot .
mkdir KNOPPIX
cd KNOPPIX
cp -pr /cdrom/KNOPPIX/*[^X] . 
  • Knoppix und VM beenden
  • externe Platte unter dem eigentlichen Linux mounten und Daten auf die freie Partition kopieren:
sudo su # Root-Shell aufmachen
cd /home/<username>
cp -pR /media/sda1/opalix . # Dauert wieder... 

Knoppix-Pakete bearbeiten

Im folgenden werden wir das OPAL Compilation System installieren und andere Applikationen entfernen, so dass am Ende alles wieder auf eine CD passt.

Chroot

  • weiter in der root-Shell
cd /home/<username>/opalix/source
cp -b /etc/resolv.conf ./etc/dhcpc/resolv.conf # Nameserver-Konfiguration aus dem akt. Linux zum Knoppix kopieren
chroot KNOPPIX
mount -t proc /proc proc # Für Internet-Zugang

OCS installieren

nano /etc/apt/sources.list
  • sources.list ist nun in nano geöffnet. Ans Ende gehen und folgende Zeilen eintragen:
# Opalix-Repository der Freitagsrunde
deb http://opalix.freitagsrunde.org/debian-rep ./
deb-src http://opalix.freitagsrunde.org/debian-rep ./

  • Datei speichern, nano beenden.
apt-get update # Laden der hinzugefügten Pakete
apt-get install ocs
  • Dokumentation kopieren. Aktuelle Doku findet man gepackt auf der OPAL-Seite - also wget-Link aktualisieren!
cd /usr/local/share/
wget http://uebb.cs.tu-berlin.de/~opal/ocs-2.3k-doc.tar.bz2
tar xjvf ocs-2.3j-doc.tar.bz2
mv ocs-2.3j ocs

LaTeX, Kile, Kdvi und Subversion installieren

Die LaTeX-Pakete und Subversion wurde bei Opalix 2007 aus Kompatibilitäts- und Platzgründen nicht installiert.

Andere Programme entfernen

  • Da wir nun viel neues installiert haben, müssen wir andere Dinge deinstallieren.

dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | grep -v deinstall | sort -n | awk '{print $1" "$2}'

  • Alle Programme können deinstalliert werden mittels
apt-get remove --purge <Pakete>
  • wobei <Pakete> durch die Pakete in der Spalte "Deinstallierte Pakete" ersetzt werden muss.
Programm Deinstallierte Pakete Gewonnener Speicher
Apache apache2 apache2-common apache2-mpm-prefork apache2-utils libapache2-mod-php4 libzzip-0-12 7,2 MB
Audacity audacity libwxgtk2.4-1 9,3 MB
KDE Internationalisierung kde-i18n-es kde-i18n-fr kde-i18n-it kde-i18n-ja kde-i18n-nl kde-i18n-pl kde-i18n-ru kde-i18n-tr 217 MB
MySQL mysql-client mysql-common mysql-server php4-mysql libmysqlclient15off libdbd-mysql-perl 67,5 MB
Wine wine winetools 50,4 MB
Frozen Bubble frozen-bubble frozen-bubble-data 33,9 MB
Nessus startnessus-knoppix nessusd nessus-plugins nessus libnessus2 libnasl2 libgdchart-gd2-noxpm libgd2-xpm 17,6 MB
NX freenx nxagent nxclient nxtunnel-server libnxcomp0
libnxcompext0 nxdesktop nxlibs nxproxy nxsetup-knoppix nxssh nxtunnel-client nxviewer
14,7 MB
  • Am Ende empfiehlt sich der Aufruf von deborphan, um zu prüfen, ob es nicht benötigte Abhängigkeiten gibt.

deborphan | xargs apt-get -y remove

OPALIX-Branding

Die folgenden Befehle beziehen sich auf das Opalix-Verzeichnis. Darin sollte ein Ordner 'branding' enthalten sein, den man hier bekommt.

cd /home/<username>/opalix

HTML-Dateien auf der CD ersetzen

Diese Dateien sind verfügbar, wenn man die CD nicht bootet, sondern in Windows oder Linux als Laufwerk einbindet.

mv knx-master/index{.html,_knoppix.html} 
cp -r branding/html-content/* master/
cp branding/gfx_export/opalix_2007_splash.png master/

Dokumentation

Es gibt eine Anleitung mit ersten Schritten und Beispiele, die man auf die CD kopieren kann und die vom Desktop aus verlinkt sind.

cp -r branding/beispiele source/KNOPPIX/etc/skel/
cp -r branding/doc source/KNOPPIX/var/local/


Damit die Beispiele und der VIM-Highlighter auch wirklich kopiert werden, muss noch die Datei knx-source/etc/X11/Xsession.d/45xsession angepasst werden. In Zeile 64 hinzufügen:

rsync -Ha --ignore-existing /etc/skel/{.acrorc,.Xdefaults,.gimp*,.gconf*,.bashrc,.nessus*,.links,.local,.lynx*,.qt,.vim,.xine,.xmms,tmp,beispiele} $HOME/ 2>/dev/null


KDE-Branding

Wir ersetzen den KDE Splash-Screen und das Desktop-Hintergrundbild. Außerdem werden Links für die Doku angelegt.

cp branding/gfx_export/opalix_2006_splash_framed.png knx-source/usr/share/apps/ksplash/Themes/Default/splash_top.png
cp branding/gfx_export/opalix_2006_background.jpg knx-source/usr/local/lib/knoppix.jpg
cp branding/gfx_export/opalix_2006_background.jpg knx-master/KNOPPIX/background.jpg

Anpassung der Desktop-Links

mkdir knx-source/var/local/gfx knx-source/etc/skel/.kde/share/apps/kdesktop
cp -r branding/gfx_orig/* knx-source/var/local/gfx
cp branding/desktop/*.desktop knx-source/etc/skel/Desktop/
cp branding/desktop/IconPositions knx-source/etc/skel/.kde/share/apps/kdesktop/

Bookmarks

Ersetzen der bookmark-files für Firefox und Konqueror

cp branding/bookmarks/firefox/* knx-source/etc/skel/.mozilla/firefox/3d4ef4xp.default/
cp branding/bookmarks/konqueror/* knx-source/etc/skel/.kde/share/apps/konqueror/

Syntax-Highlighting

Installation von Dateien zum Opal Syntax-Highlighting für kate, nano und vim.

cat branding/highlighter/nanorc_pt >> knx-source/etc/nanorc
cp branding/highlighter/opal_kate.xml knx-source/usr/share/apps/katepart/syntax/
mkdir -p knx-source/etc/skel/.vim/syntax
cp branding/highlighter/filetype.vim knx-source/etc/skel/.vim/
cp knx-source/usr/lib/ocs/ocs/lib/vim/opal.vim knx-source/etc/skel/.vim/syntax/

ISOLINUX Bootloader

Anpassen der Datei master/boot/isolinux/boot.msg

OPALIX 2007          http://www.freitagsrunde.org/         RELEASE: 2007-10-10 

Die Boot-Grafik kann man ersetzen, indem man ein BMP erzeugt mit folgenden Dimensionen:

  • 640x400px
  • 16 Farben (gimp:Image->Mode->Indexed)

Mit den Tools aus dem Paket syslinux und dem branding-Ordner macht man dann:

bmptoppm < opalix_2007_boot.bmp | ppmtolss16 > logo.16

Kopieren mit:

cp branding/gfx_export/logo.16 master/boot/isolinux/

Aufräumen und Spuren verwischen

  • Bevor man das Opalix-Image erstellt, sollte man folgende Schritte ausführen:
apt-get clean # Download-Cache leeren
umount /proc # Sonst gibts Probleme beim ISO-Erstellen
for i in /var/lib/apt/lists/*_{Release,Packages,Sources}; do >$i; touch -t 198103190000.00 $i; done # Paket-Cache aufs Minimum reduzieren, siehe hier
apt-get check 
dpkg --clear-avail
apt-cache gencaches
sync-available
rm -f /var/cache/apt/*.bin
exit # aus der chroot rausgehen
rm -f root/.bash_history root/.lesshst
mv etc/dhcpc/resolv.conf{~,} # originale resolv.conf wiederherstellen

Image erstellen

Führt man folgendes Skript im ${PROJECTDIR} aus, so wird eine "opalix.iso" gebacken, die das fertige Image enthält. Dafür braucht man das Linux-Paket cloop und enstsprechenden Support für komprimierte Dateisysteme im Kernel (CONFIG_ZLIB_INFLATE=y).

 #!/bin/bash

PROJECTDIR="/home/<username>/opalix"
ROOT="/home/<username>/opalix/source/KNOPPIX"
MASTER="/home/<username>/opalix/master"
TMPFILE="/home/<username>/knoppix-uc.iso"
PREPARER=""
SORT=""

CREATE_CFS=/usr/bin/create_compressed_fs

cd $PROJECTDIR
echo "Creating uncompressed ISO"
mkisofs $SORT -iso-level 4 -R -U -V "OPALIX filesystem" -publisher "freitagsrunde.org" \
    -hide-rr-moved -cache-inodes -no-bak -pad "$ROOT" > $TMPFILE

echo "Finished creating uncompressed ISO:"
du -sh "$TMPFILE"

nice -5 $CREATE_CFS -L 9 -B 131072 -v "$TMPFILE" "$MASTER/KNOPPIX/KNOPPIX"
echo "Finished compressing ISO:"
du -sh "$MASTER/KNOPPIX/KNOPPIX"

cd "$MASTER"
rm -f KNOPPIX/md5sums
find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums

cd $PROJECTDIR

mkisofs -volid "OPALIX 2007"  -appid "" -publisher "freitagsrunde.org" -preparer "$PREPARER" \
        -rational-rock -full-iso9660-filenames -eltorito-boot boot/isolinux/isolinux.bin -no-emul-boot \
        -boot-load-size 4 -boot-info-table  -eltorito-catalog boot/isolinux/boot.cat  -o opalix.iso -pad -v -hide-rr-moved $MASTER

#        -untranslated-filenames -joliet  -joliet-long  #zur Aenderung des Bootsektors

Probleme beim Booten

Manche Bios-Versionen überspringen einfach das Booten von der CD, wenn der Boot-Catalog in einem falschen Sektor auf der CD liegt. Leider weiß niemand so richtig, welche Sektoren funktionieren und welche nicht. Windows-CDs nutzen Sektoren zwischen 17 und 40 für den Katalog (NT-CDs immer 18), aber es gibt auch CDs mit dem Katalog in Sektor 1000+.

In welchem Sektor der Boot-Catalog liegt, findet man raus mit

isoinfo -d -i opalix.iso

Wie man den Katalog in einen anderen Sektor verschieben kann, kann ich nicht genau sagen: Manchmal hilft es, lange Dateinamen oder Joliet ein- oder auszuschalten, da die Liste mit Dateinamen VOR dem Boot-Katalog gespeichert wird. Genau genommen kann man auch Dummy-Dateien erstellen, um den Boot-Sektor nach hinten zu schieben.

Viel Spaß beim Trial-and-Error!