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: Unterschied zwischen den Versionen

(VirtualBox mit Shared Folders)
(spam comment removed in database)
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
+
spamlinks administratively removed in database.
 
 
== 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]]
 

Version vom 2. November 2011, 03:38 Uhr

spamlinks administratively removed in database.