Opalix 2007:Opalix erstellen: Unterschied zwischen den Versionen
(spam comment removed in database) |
Mutax (Diskussion | Beiträge) K (Änderungen von 89.148.19.192 (Diskussion) rückgängig gemacht und letzte Version von 10.23.42.141 wiederhergestellt) |
||
Zeile 1: | Zeile 1: | ||
− | + | Diese Anleitung basiert zu großen Teilen auf der [[Opalix 2006:Opalix erstellen|Anleitung aus dem Vorjahr]], wurde aber in mehrere Richtungen (KDE-Aussehen, VirtualBox) erweitert. Eine hilfreiche Sammlung an Tipps zum Remastern von Knoppix findet man hier: http://www.knoppix.net/wiki/Category:Remastering_Knoppix | |
+ | |||
+ | == 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 <code>md5sum</code> die Korrektheit des ISOs sicherstellen. | ||
+ | ** Für Opalix 2007 wurde <code>KNOPPIX_V5.1.1CD-2007-01-04-DE.iso</code> verwendet. | ||
+ | |||
+ | * Knoppix-CD brennen (siehe [[Opalix 2006:Opalix erstellen|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 <code>/media/sda1</code> eingehängt | ||
+ | <nowiki>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] . </nowiki> | ||
+ | |||
+ | * Knoppix und VM beenden | ||
+ | * externe Platte unter dem eigentlichen Linux mounten und Daten auf die freie Partition kopieren: | ||
+ | <nowiki>sudo su # Root-Shell aufmachen | ||
+ | cd /home/<username> | ||
+ | cp -pR /media/sda1/opalix . # Dauert wieder... </nowiki> | ||
+ | |||
+ | == 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 | ||
+ | <nowiki>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 | ||
+ | </nowiki> | ||
+ | |||
+ | === OCS installieren === | ||
+ | nano /etc/apt/sources.list | ||
+ | * sources.list ist nun in nano geöffnet. Ans Ende gehen und folgende Zeilen eintragen: | ||
+ | <nowiki> | ||
+ | # Opalix-Repository der Freitagsrunde | ||
+ | deb http://opalix.freitagsrunde.org/debian-rep ./ | ||
+ | deb-src http://opalix.freitagsrunde.org/debian-rep ./ | ||
+ | </nowiki> | ||
+ | * Datei speichern, nano beenden. | ||
+ | <nowiki>apt-get update # Laden der hinzugefügten Pakete | ||
+ | apt-get install ocs</nowiki> | ||
+ | |||
+ | * Dokumentation kopieren. Aktuelle Doku findet man gepackt [http://uebb.cs.tu-berlin.de/~opal/opal-system.html auf der OPAL-Seite] - also wget-Link aktualisieren! | ||
+ | <nowiki>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</nowiki> | ||
+ | |||
+ | === 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. Mit folgendem Befehl kann man sich die installierten Pakete nach Größe sortiert anzeigen: | ||
+ | |||
+ | 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 <code><Pakete></code> durch die Pakete in der Spalte "Deinstallierte Pakete" ersetzt werden muss. | ||
+ | |||
+ | <div align="center"> | ||
+ | {| class="wikitable" | ||
+ | ! Programm | ||
+ | ! Deinstallierte Pakete | ||
+ | ! Gewonnener Speicher | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | Apache | ||
+ | | style="text-align: center; padding: 1em" | apache2 apache2-common apache2-mpm-prefork apache2-utils libapache2-mod-php4 libzzip-0-12 | ||
+ | | style="text-align: center; padding: 1em" | 7,2 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | Audacity | ||
+ | | style="text-align: center; padding: 1em" | audacity libwxgtk2.4-1 | ||
+ | | style="text-align: center; padding: 1em" | 9,3 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | KDE Internationalisierung | ||
+ | | style="text-align: center; padding: 1em" | kde-i18n-es kde-i18n-fr kde-i18n-it kde-i18n-ja kde-i18n-nl kde-i18n-pl kde-i18n-ru kde-i18n-tr | ||
+ | | style="text-align: center; padding: 1em" | 217 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | MySQL | ||
+ | | style="text-align: center; padding: 1em" | mysql-client mysql-common mysql-server php4-mysql libmysqlclient15off libdbd-mysql-perl | ||
+ | | style="text-align: center; padding: 1em" | 67,5 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | Wine | ||
+ | | style="text-align: center; padding: 1em" | wine winetools | ||
+ | | style="text-align: center; padding: 1em" | 50,4 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | Frozen Bubble | ||
+ | | style="text-align: center; padding: 1em" | frozen-bubble frozen-bubble-data | ||
+ | | style="text-align: center; padding: 1em" | 33,9 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | Nessus | ||
+ | | style="text-align: center; padding: 1em" | startnessus-knoppix nessusd nessus-plugins nessus libnessus2 libnasl2 libgdchart-gd2-noxpm libgd2-xpm | ||
+ | | style="text-align: center; padding: 1em" | 17,6 MB | ||
+ | |- | ||
+ | | style="text-align: center; padding: 1em" | NX | ||
+ | | style="text-align: center; padding: 1em" | freenx nxagent nxclient nxtunnel-server libnxcomp0<br>libnxcompext0 nxdesktop nxlibs nxproxy nxsetup-knoppix nxssh nxtunnel-client nxviewer | ||
+ | | style="text-align: center; padding: 1em" | 14,7 MB | ||
+ | |} | ||
+ | </div> | ||
+ | |||
+ | * Am Ende empfiehlt sich der Aufruf von <code>deborphan</code>, um zu prüfen, ob es nicht benötigte Abhängigkeiten gibt. Mit <code>deborphan | xargs apt-get -y remove</code> kann man die nicht benötigten Pakete dann direkt entfernen. | ||
+ | |||
+ | |||
+ | == OPALIX-Branding == | ||
+ | Die folgenden Befehle beziehen sich auf das Opalix-Verzeichnis. Darin sollte ein Ordner 'branding' enthalten sein, den man [http://intern.freitagsrunde.org/Opalix/2007/ 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. | ||
+ | <nowiki>mv knx-master/index{.html,_knoppix.html} | ||
+ | cp -r branding/html-content/* master/ | ||
+ | cp branding/gfx_export/opalix_2007_splash.png master/</nowiki> | ||
+ | |||
+ | === 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 <code>source/KNOPPIX/etc/X11/Xsession.d/45xsession</code> 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_2007_splash_framed.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_top.png | ||
+ | cp branding/gfx_export/splash_active_bar.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_active_bar.png | ||
+ | cp branding/gfx_export/splash_bottom.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_bottom.png | ||
+ | cp branding/gfx_export/splash_inactive_bar.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_inactive_bar.png | ||
+ | cp branding/gfx_export/opalix_2007_background.jpg source/KNOPPIX/usr/local/lib/knoppix.jpg | ||
+ | cp branding/gfx_export/opalix_2007_background.jpg master/KNOPPIX/background.jpg | ||
+ | |||
+ | Anpassung der Desktop-Links | ||
+ | mkdir knx-source/var/local/gfx source/KNOPPIX/etc/skel/.kde/share/apps/kdesktop | ||
+ | cp -r branding/gfx_orig/* source/KNOPPIX/var/local/gfx | ||
+ | cp branding/desktop/*.desktop source/KNOPPIX/etc/skel/Desktop/ | ||
+ | cp branding/desktop/IconPositions source/KNOPPIX/etc/skel/.kde/share/apps/kdesktop/ | ||
+ | |||
+ | ==== Anpassungen des Kickers und sonstiger KDE-Komponenten ==== | ||
+ | |||
+ | Um beliebige Eigenschaften von KDE anzupassen, bootet man das neu erstellte Opalix und geht dann folgendermaßen vor: | ||
+ | touch /tmp/zeipunkt1 #Erstellen eines Zeitpunktes | ||
+ | |||
+ | Nun nimmt man die gewünschten Änderungen vor und lässt sich mit | ||
+ | find /home/knoppix -newer /tmp/zeitpunkt -print | ||
+ | |||
+ | alle geänderten KDE-Konfigurationsdateien anzeigen. Die genannten Dateien sichert man auf USB-Stick und kopiert sie später nach <code>source/KNOPPIX/etc/skel</code>. | ||
+ | Unter Umständen muss man die Dateien/Ordner auch noch in <code>/etc/X11/Xsession.d/45xsession</code> (ca. Zeile 64) | ||
+ | eintragen(s.o.). | ||
+ | |||
+ | Die Grafiken für den Kicker(Startleiste) liegen in <code>source/Knoppix/usr/share/apps/kicker/</code>. | ||
+ | Die K-Menü Icons liegen in <code>source/Knoppix/usr/share/icons/</code>. Diese kann man ebenfalls einfach überschreiben. | ||
+ | |||
+ | === Bookmarks === | ||
+ | Ersetzen der bookmark-files für Firefox und Konqueror | ||
+ | cp branding/bookmarks/firefox/* source/KNOPPIX/etc/skel/.mozilla/firefox/3d4ef4xp.default/ | ||
+ | cp branding/bookmarks/konqueror/* source/KNOPPIX/etc/skel/.kde/share/apps/konqueror/ | ||
+ | |||
+ | === Syntax-Highlighting === | ||
+ | Installation von Dateien zum [[Opal Syntax-Highlighting]] für kate, nano und vim. | ||
+ | <nowiki> | ||
+ | cat branding/highlighter/nanorc_pt >> source/KNOPPIX/etc/nanorc | ||
+ | cp branding/highlighter/opal_kate.xml source/KNOPPIX/usr/share/apps/katepart/syntax/ | ||
+ | mkdir -p source/KNOPPIX/etc/skel/.vim/syntax | ||
+ | cp branding/highlighter/filetype.vim source/KNOPPIX/etc/skel/.vim/ | ||
+ | cp source/KNOPPIX/usr/lib/ocs/ocs/lib/vim/opal.vim source/KNOPPIX/etc/skel/.vim/syntax/</nowiki> | ||
+ | |||
+ | === ISOLINUX Bootloader === | ||
+ | Anpassen der Datei <code>master/boot/isolinux/boot.msg</code> | ||
+ | <nowiki>OPALIX 2007 http://www.freitagsrunde.org/ RELEASE: 2007-10-10 </nowiki> | ||
+ | |||
+ | 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: | ||
+ | <nowiki>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 </nowiki>[http://lists.debian.org/debian-knoppix/2006/09/msg00008.html hier]<nowiki> | ||
+ | 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 | ||
+ | </nowiki> | ||
+ | |||
+ | == VirtualBox und das Autostartskript hinzufügen == | ||
+ | Die VirtualBox_1.5.0_Win_x86.msi wurde ins /VBOX - Verzeichnis auf der CD extrahiert. | ||
+ | Die Dateien SUPInstall.exe und SUPUninstall.exe wurden aus dem SVN von VirtualBox kompiliert und dem Verzeichnis /VBOX beigefügt. | ||
+ | |||
+ | Der Autostarteintrag in der autorun.inf wurde auf die index.exe verbogen. Die index.exe zeigt das neue Opalix-Logo an, bietet 2 Links (freitagsrunde.org und knoppix.de?) und einen Button zum Starten von VirtualBox mit Opalix in einer VM. (ACHTUNG: eine index.html bietet keine - funktionierende - Möglichkeit unter Firefox oder InternetExplorer eine *.exe zu starten!) | ||
+ | |||
+ | Beim betätigen des "OPALIX in VM starten" wird die vboxinstall.exe ausgeführt. Diese prüft zunächst, ob alle Systemvorraussetzungen (Windows 2000,XP,2003;32-bit) erfüllt sind. Wenn dies der Fall ist, wird der VBOX-Ordner von der CD nach %usertemp% (meist c:/Dokumente und Einstellungen/%user%/Lokale Einstellungen/Temp) kopiert. | ||
+ | |||
+ | Danach wird die vboxrun.exe (aus dem jetzt lokal liegenden VBOX Verzeichnis) gestartet. | ||
+ | Diese fuehrt die SUPInstall.exe aus, registriert 'ne dll, etc. (details siehe Quellcode). | ||
+ | Und startet schliesslich VirtualBox, welches von der eingelegten OPALIX-CD (der Laufwerksbuchstaben wird von der vboxinstall.exe per Parameter übergeben) bootet. | ||
+ | Wenn die VM geschlossen wird oder der "STOP VM"-Button gedrückt wird, dann werden/wird versucht alle vorher gesetzte Einstellungen rückgängig zu machen. | ||
+ | |||
+ | == VirtualBox mit Shared Folders == | ||
+ | |||
+ | Um das Shared Folders Feature von VirtualBox nutzen können, werden zwei Kernelmodule im Gast benötigt, die die Kommunikation zwischen Gast und Host steuern. | ||
+ | Zuerst wird die VBoxLinuxAdditions.sh aus dem VBoxGuestAdditions.iso extrahiert. Anschliessend wird der Inhalt der Datein mit "sh VBoxLinuxAddtions.run --noexec --keep" entpackt. | ||
+ | Der Quellcode der Module wird danach in den Verzeichnisbaum des neuen Knoppix kopiert. Nach betreten des Root Verzeichnisses mit chroot und der Installation der kernel header können die Module mit "make" kompiliert werden. Die zwei benötigten Dateien sind vboxadd.ko und vboxvfs.ko, welche in das Verzeichnis, in dem sich auch die anderen Module befinden kopiert werden. Die Module müssen zum Schluss noch mit einem Aufruf von "depmod -aq" eingefügt werden. | ||
+ | Zur Vereinfachung der Nutzung wurden zwei Skripte entwickelt. Das erste lädt die Module beim booten sofern Opalix in einer VM läuft. Das zweite führt den Nutzer durch die Einrichtung eines Shared Folder. Das erste wird nach /etc/init.d kopiert. Das zweite kann in ein Verzeichniss, welches sich in $PATH befindet kopiert werden. | ||
+ | |||
+ | == Image erstellen == | ||
+ | |||
+ | Führt man folgendes Skript im <code>${PROJECTDIR}</code> 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 (<code>CONFIG_ZLIB_INFLATE=y</code>). | ||
+ | |||
+ | <nowiki> | ||
+ | #!/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 | ||
+ | </nowiki> | ||
+ | |||
+ | == 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! | ||
+ | |||
+ | [[Kategorie:Opal]] | ||
+ | [[Kategorie: Opalix]] |
Aktuelle Version vom 2. November 2011, 19:38 Uhr
Diese Anleitung basiert zu großen Teilen auf der Anleitung aus dem Vorjahr, wurde aber in mehrere Richtungen (KDE-Aussehen, VirtualBox) erweitert. Eine hilfreiche Sammlung an Tipps zum Remastern von Knoppix findet man hier: http://www.knoppix.net/wiki/Category:Remastering_Knoppix
Inhaltsverzeichnis
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.
- WICHTIG: Mit dem Programm
- 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. Mit folgendem Befehl kann man sich die installierten Pakete nach Größe sortiert anzeigen:
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. Mitdeborphan | xargs apt-get -y remove
kann man die nicht benötigten Pakete dann direkt entfernen.
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 source/KNOPPIX/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_2007_splash_framed.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_top.png cp branding/gfx_export/splash_active_bar.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_active_bar.png cp branding/gfx_export/splash_bottom.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_bottom.png cp branding/gfx_export/splash_inactive_bar.png source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/splash_inactive_bar.png cp branding/gfx_export/opalix_2007_background.jpg source/KNOPPIX/usr/local/lib/knoppix.jpg cp branding/gfx_export/opalix_2007_background.jpg master/KNOPPIX/background.jpg
Anpassung der Desktop-Links
mkdir knx-source/var/local/gfx source/KNOPPIX/etc/skel/.kde/share/apps/kdesktop cp -r branding/gfx_orig/* source/KNOPPIX/var/local/gfx cp branding/desktop/*.desktop source/KNOPPIX/etc/skel/Desktop/ cp branding/desktop/IconPositions source/KNOPPIX/etc/skel/.kde/share/apps/kdesktop/
Anpassungen des Kickers und sonstiger KDE-Komponenten
Um beliebige Eigenschaften von KDE anzupassen, bootet man das neu erstellte Opalix und geht dann folgendermaßen vor:
touch /tmp/zeipunkt1 #Erstellen eines Zeitpunktes
Nun nimmt man die gewünschten Änderungen vor und lässt sich mit
find /home/knoppix -newer /tmp/zeitpunkt -print
alle geänderten KDE-Konfigurationsdateien anzeigen. Die genannten Dateien sichert man auf USB-Stick und kopiert sie später nach source/KNOPPIX/etc/skel
.
Unter Umständen muss man die Dateien/Ordner auch noch in /etc/X11/Xsession.d/45xsession
(ca. Zeile 64)
eintragen(s.o.).
Die Grafiken für den Kicker(Startleiste) liegen in source/Knoppix/usr/share/apps/kicker/
.
Die K-Menü Icons liegen in source/Knoppix/usr/share/icons/
. Diese kann man ebenfalls einfach überschreiben.
Bookmarks
Ersetzen der bookmark-files für Firefox und Konqueror
cp branding/bookmarks/firefox/* source/KNOPPIX/etc/skel/.mozilla/firefox/3d4ef4xp.default/ cp branding/bookmarks/konqueror/* source/KNOPPIX/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 >> source/KNOPPIX/etc/nanorc cp branding/highlighter/opal_kate.xml source/KNOPPIX/usr/share/apps/katepart/syntax/ mkdir -p source/KNOPPIX/etc/skel/.vim/syntax cp branding/highlighter/filetype.vim source/KNOPPIX/etc/skel/.vim/ cp source/KNOPPIX/usr/lib/ocs/ocs/lib/vim/opal.vim source/KNOPPIX/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
VirtualBox und das Autostartskript hinzufügen
Die VirtualBox_1.5.0_Win_x86.msi wurde ins /VBOX - Verzeichnis auf der CD extrahiert. Die Dateien SUPInstall.exe und SUPUninstall.exe wurden aus dem SVN von VirtualBox kompiliert und dem Verzeichnis /VBOX beigefügt.
Der Autostarteintrag in der autorun.inf wurde auf die index.exe verbogen. Die index.exe zeigt das neue Opalix-Logo an, bietet 2 Links (freitagsrunde.org und knoppix.de?) und einen Button zum Starten von VirtualBox mit Opalix in einer VM. (ACHTUNG: eine index.html bietet keine - funktionierende - Möglichkeit unter Firefox oder InternetExplorer eine *.exe zu starten!)
Beim betätigen des "OPALIX in VM starten" wird die vboxinstall.exe ausgeführt. Diese prüft zunächst, ob alle Systemvorraussetzungen (Windows 2000,XP,2003;32-bit) erfüllt sind. Wenn dies der Fall ist, wird der VBOX-Ordner von der CD nach %usertemp% (meist c:/Dokumente und Einstellungen/%user%/Lokale Einstellungen/Temp) kopiert.
Danach wird die vboxrun.exe (aus dem jetzt lokal liegenden VBOX Verzeichnis) gestartet. Diese fuehrt die SUPInstall.exe aus, registriert 'ne dll, etc. (details siehe Quellcode). Und startet schliesslich VirtualBox, welches von der eingelegten OPALIX-CD (der Laufwerksbuchstaben wird von der vboxinstall.exe per Parameter übergeben) bootet. Wenn die VM geschlossen wird oder der "STOP VM"-Button gedrückt wird, dann werden/wird versucht alle vorher gesetzte Einstellungen rückgängig zu machen.
Um das Shared Folders Feature von VirtualBox nutzen können, werden zwei Kernelmodule im Gast benötigt, die die Kommunikation zwischen Gast und Host steuern. Zuerst wird die VBoxLinuxAdditions.sh aus dem VBoxGuestAdditions.iso extrahiert. Anschliessend wird der Inhalt der Datein mit "sh VBoxLinuxAddtions.run --noexec --keep" entpackt. Der Quellcode der Module wird danach in den Verzeichnisbaum des neuen Knoppix kopiert. Nach betreten des Root Verzeichnisses mit chroot und der Installation der kernel header können die Module mit "make" kompiliert werden. Die zwei benötigten Dateien sind vboxadd.ko und vboxvfs.ko, welche in das Verzeichnis, in dem sich auch die anderen Module befinden kopiert werden. Die Module müssen zum Schluss noch mit einem Aufruf von "depmod -aq" eingefügt werden. Zur Vereinfachung der Nutzung wurden zwei Skripte entwickelt. Das erste lädt die Module beim booten sofern Opalix in einer VM läuft. Das zweite führt den Nutzer durch die Einrichtung eines Shared Folder. Das erste wird nach /etc/init.d kopiert. Das zweite kann in ein Verzeichniss, welches sich in $PATH befindet kopiert werden.
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!