PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Howto: Knoppix remastern



Gargi
28.12.2007, 10:51
Smöre bröd, smöre bröd römtömtömtöm! Heute makken wir eine eigenes Knoppix!

Die Anleitung faßt Fuß auf den Artikel "Slimming Champion" vom englischen Linux-Magazine (www.linux-magazine.com). Allerdings stricke ich gerade zum Ende einiges um, da dies noch auf Knoppix 3.3 sich bezieht und das Rückschreiben eines Images etwas verkompliziert wurde.

Teil 1

Zutaten für den Kochtopf

o) PC mit 1GB Ram, also 256 MB Ram and 750MB swapfile. Daher die Anforderung

o) Eine Festplatte mit mindestens 6 GB Speicher. Ich habe dafür eine ausrangierte 20GB IBM Disk hergenommen.

o) Einen Brenner und jede Menge Rohlinge zum Ausprobieren :)

o) Das aktuelle Knoppix von www.knopper.net


Initium

Ich empfehle, Euere Platten alle ab zu stecken und nur die spezielle Festplatte als erste Platte an zu schließen. Partitioniert die Platte in drei Teile: Erste Partition so mindestens 3.5 GB, die zweite 2.5 GB und die dritte 705 bis um die 1GB für die Swap-Partition. Es kann auch bei den ersten beiden Partitionen ruhig mehr sein, wenn die Platte das her gibt.
Ich persönlich empfehle, das vielleicht mit einer SuSE-Linux DVD zu machen, also einen Installationsvorgang vor zu bereiten und mit dem dortigen Tool die Platte zu partitionieren. Als Dateisystem nimmt man dann ext3.
Zur Not geht das auch unter Knoppix, nur nicht so schön aussehend. Beim SuSE Linux lässt man dann einfach die Installation beginnen und bricht die gleich wieder ab, damit die neue Partitionstabelle geschrieben wird.

Nun bootet Eueren Rechner mit der Knoppix -CD. Man kann übrigens den 2.6.9er Kernel mit der Boot-Option
knoppix26
anbooten, wenn es Schwierigkeiten mit dem 2.4er Kernel geben sollte.
Wir installieren nun das System auf die Festplatte. Hierzu macht eine shell auf und gebt
su
ein, damit Ihr Root-Rechte bekommt. Danach dann
knoppix-installer
eingeben, um die Installation zu starten. Mit Punkt 3 des Programmes könnt Ihr mit qtparted Euere Platte nun Partitioinieren, wenn Ihr nicht den Weg über das SuSE-Linux gehen wollt/könnt. Nun wählt Punkt 1 um die Installation vor zu bereiten.Wählt hier das Standard-Knoppix als Installation aus. Ihr installiert das alles dann auf die Platte /dev/hda2 . Den Bootloader lasst ruhig in den MBR (Master Boot Record) schreiben. Da machen wir net lange rum :D . Nochmal der Hinweis: NATÜRLICH NUR, WENN DIE PLATTE FÜR DIESE AKTION ALLEINE IM RECHNER HÄNGT !!!
Das dauert dann einige Zeit. Wenn fertig, Knoppix rebooten, CD aus'm Laufwerk nehmen und neu von der Festplatte starten lassen.
Sollte beim ersten Start das installierte Knoppix beim Hochfahren des KDE eine Fehlermeldung bezüglich eines Zugriffsfehlers auf /tmp bringen, dann bitte mit
STRG+ALT+F1
in eine andere Konsole switchen und folgendes eingeben:
chmod -R 777 /var/tmp
Dann Knoppix neu starten. So kann dann hier in das temp-Verzeichnis wieder geschrieben werden.


Operation neues Knoppix

Jetzt müssen wir ein paar Dinge vorbereiten. Wir machen die Platten erstmal beschreibbar: Dazu klickt auf die beiden Festplatten-Symbole auf'm KDE-Desktop. Dann jeweils bei beiden Platten einen Rechtsklick auf die Symbole, auf Eigenschaften, Geräte und das Häkchen bei "nur lesen" entfernen. Dann einen nochmaligen Rechtsklick auf das Symbol und im aupoppenden Menü auf den Aktionen-> "Lese/Schreibmodus wechseln" klicken. Jetzt sind wir dann für den Eingriff vorbereitet.
Jetzt eine Shell starten und mit su Rootrechte erlangen. dann wechseln wir auf die erste Partition mit einem lockeren
cd /mnt/hda1
Dann legen wir zwei neue Verzeichnisse an:
mkdir custom
mkdir custom/KNOPPIX_CD
Jetzt müssen wir die Startdateien und die Verzeichnisstruktur umkopieren. Legt die Knoppix CD ein und gebt folgendes ein:
cd /mnt/cdrom


tar mcpf - . --exclude ./KNOPPIX/KNOPPIX | (cd /mnt/hda1/custom/KNOPPIX_CD; tar xpf -)

Nun bastelt an Euerem Knoppix was das Zeug hält. Debian Pakete können mit einem
apt-get -u remove paketname
deinstalliert und mit einem
apt-get -u install paketname
installiert werden. RPM Pakete werden mit einem
alien -i rpmpaketname
eingespielt. Passt auch Eueren KDE-Desktop an, installiert zusätzliche Treiber oder modifiziert den Kernel. All gates are open now!
Jetzt klappert Euere temporären Verzeichnisse ab und leert diese. Ebenso Cookies und Internet-Verlaufsdateien löschen, wenn Ihr die CD eventuell mal weiter verteilen wollt.
Auch kurz zum KDE-Desktop Hintergrundbild:
Bitte hierzu unter /mnt/hda1/custom/KNOPPIX_CD/KNOPPIX die Datei background.png mit gimp bearbeiten.
Der KDE-Splash:
Die Files unter /mnt/hda2/usr/share/apps/ksplash/Themes/Default
anpassen.
Schöne Sachen dafür findet Ihr z.B. unter
http://www.kde-look.org/

Wenn Ihr den KDE-Desktop nach Eueren Wünschen angepasst habt, muss noch folgendes erledigt werden:
Meldet Euch in der Shell als Root an (su). Dann entfernt das etc/skel Verzeichnis mit
rm -rf /etc/skel
Danach wird Euer Homeverzeichnis kopiert:
cp -r /home/knoppix /etc/skel
Jetzt muss noch das Zugriffsrecht geändert werden:
chown -R root:root /etc/skel
Als nächstes startet in der Shell den Midnight Commander mit
mc
Ihr sucht nach folgender Datei:

/etc/X11/Xsession.d/45xsession

Mit F4 den Edit-Modus aufrufen und die Zeile 128 suchen:

rsync -Ha --ignore-existing /etc/skel/{.kde*,Desktop} $HOME/ 2>/dev/null

Dort entfernt Ihr das {.kde*,Desktop}, damit die Zeile dann so aussieht:

rsync -Ha --ignore-existing /etc/skel/ $HOME/ 2>/dev/null

Dann mit F2 abspeichern und über F10 alles schließen.



Pack'mers wieder zam!

Wenn Ihr Euch ausgiebig verlustiert habt, dann müssen wir das Knoppix wieder entsprechend einpacken.
STARTET JETZT VON DER KNOPPIX CD!
Macht zuerst beide Partitionen der Platte wieder lesbar und wie oben beschrieben auch beschreibbar.
Damit später beim Booten keine Fehler auftauchen, löscht als Root unter
mnt/hda2/etc/sysconfig
alle Scriptdateien raus. Es dürfen nur die beiden Verzeichnisse
network-scripts
provider
stehen bleiben.
Als Root ( su!) gebt Ihr dann in der Shell folgendes ein:


mkisofs -R -L /mnt/hda2 | create_compressed_fs - 65536 > /mnt/hda1/custom/KNOPPIX_CD/KNOPPIX/KNOPPIX

Das kann eine kleine Weile dauern, je nachdem wie viel PS Ihr unter der Haube habt.

Burn baby!

Wechselt als Root nach /hda1/custom
cd /mnt/hda1/custom


mkisofs -J -T -v -r -no-emul-boot -boot-load-size 4 -boot-info-table -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -o knoppix_custom.iso KNOPPIX_CD

In diesem String unterscheiden sich viele Remastering-Anleitungen. Nachdem ich ein paar Dokumentationen gewälzt habe, bin ich mit obiger Version sicher zum Ziel gekommen.
Das geht relativ flott. Nun findet Ihr das Iso-File unter
/mnt/hda1/custom
Dieses brennt nun mit k3b z.B. zurück auf CD. Sollte die Datei für eine CD zu groß sein, kann diese auch auf eine DVD gebrannt werden. Auch dies funktioniert ohne Probleme. Wenn Ihr Euer Knoppix vom Brenner-Laufwerk gestartet habt und dieses somit durch die gestartete CD belegt ist, weil Ihr nur dieses eine Laufwerk eingebaut habt, dann ist das auch kein Problem. Bootet einfach Euer installiertes Knoppix von Festplatte und brennt das ISO-File dann so um.

Jetzt startet Euer Knoppix- Linux und prüft nach, ob soweit alles funktionsfähig ist.

Teil 2

Kernel Update und auf CD einpassen

Zuerst müssen wir die aktuellen Kernel-Sourcen downloaden. Dazu als Root in der Konsole folgendes eingeben:

apt-get install kernel-sources-2.6.x

Für das "x" setzt Ihr natürlich die gewünschte Versionsnummer. Ihr seid Euch nicht sicher, welcher da installiert werden soll? Dann gebt nur

apt-get install kernel-sources

ein und es werden sämtlich zur Verfügung stehende Versionen angezeigt. Ich gehe in meiner Anleitung vom Kernel 2.6.10 aus.

Nun wechselt als root in das Verzeichnis /usr/src
Danach entpacken wir das bz2- File mit einem

tar xvfj kernel-source-2.6.10.tar.bz2

Jetzt lösen wir das alte Kernel-Quellverzeichnis auf:

rm -rf /usr/src/linux

Wir befinden uns weiterhin im Verzeichnis /usr/src
Hier setzen wir einen neuen Link auf die Kernel-Quellen:

ln -s kernel-source-2.6.10 linux

Ebenso müssen wir einen weiteren fehlenden Link anlegen:

ln -sf /usr/src/linux/include/asm-i386 /usr/include/asm

Nun wechseln wir in das Verzeichnis /usr/src/linux
und konfigurieren den Kernel mit einem

make oldconfig

Hierbei werden neu hinzukommende Module abgefragt und die alte Konfiguration übernommen.
Hinweis: Da der Kernel so modular wie möglich sein sollte, gebt bitte bei den neuen Modulen, bei denen ein modulares Laden möglich ist, auch als Auswahl das "m" an. In der Regel wird ein Y,M und N abgefragt. Wenn also ein M für Modul möglich ist, dann ist dies zu bevorzugen. Ansonsten übernehmt einfach die voreingestellten Werte.
Zudem solltet Ihr auch einmal

make menuconfig

starten um nachzuprüfen, ob unter Device Drivers -> Block Devices der "Low Performance USB Block Driver" als Modul angewählt ist. Den benötigen wir später für unsere Ramdisk zum Booten.

Jetzt können wir den Kernel mit einem

make-kpkg kernel_image --revision KernelRebuild.01

übersetzen. Wobei der Zusatz "KernelRebuild.01" frei wählbar ist und für Euch den Überblick über die einzelnen Versionen erleichtern soll.

Nun könnt Ihr Euch erstmal zurücklehnen, denn der Kompile dauert seine Zeit. Danach wechselt in das Verzeichnis /usr/src und installiert das dann mit

dpkg -i kernel-image-2.6.10_KernelRebuild.01_i386.deb

Als nächstes müssen wir dann noch eine neue Ramdisk erstellen. Als Root:

mkinitrd -o /boot/initrd.img-2.6.10 2.6.10

In der Datei /etc/lilo.conf muss der Bootloader angepasst werden. Ergänzt nach den einzelnen Bootversionen folgenden Absatz:



image=/boot/vmlinuz-2.6.10
label="Linux(2.6-10)"
initrd=/boot/initrd.img-2.6.10
append="ramdisk_size=100000 init=/etc/init lang=de apm=power-off nomce"
read-only


Dann als Root

lilo

eingeben und Rechner neu starten.
Die Maschine sollte nun sauber starten.


Wir wollen es winzig!

Als folgendes installieren wir das cloop- Module neu. Hierzu muss dieses neu gegen den Kernel 2.6.10 kompiliert werden.

Als Root geben wir folgendes in der Konsole ein:

apt-get install cloop-src

Danach in /usr/src wechseln. Hier dann das frisch heruntergeladene Paket auspacken:

tar zxvf cloop.tar.gz

Danach wechseln wir weiter in das Kernel-Quellen-Verzeichnis /usr/src/linux .Mit einem

make-kpkg modules_image

wird das Modul dann übersetzt. Mit einem

ls -ltra ..

seht ihr das darüber liegende Verzeichnis und könnt den Namen des zusamengebauten cloop-Paket sehen. Gebt dann zum Installieren folgendes ein (ACHTUNG! Euer Kernelmodul kann Durchaus anders heißen!):

dpkg -i ../cloop-module-2.6.10_2.01.5-2+KernelRebuild.01_i386.deb

Prüft nun nochmal nach, ob unter dem Verzeichnis /lib/modules/2.6.10/kernel/drivers/block
das Modul cloop.ko befindet. Falls ja, dann ist soweit alles vorbereitet. Nun sichern wir folgendes in ein Sicherungsverzeichnis der ersten Partition (/mnt/hda1):

aus /boot:
config-2.6.10
initrd.img-2.6.10
System.map-2.6.10
vmlinuz-2.6.10

aus /etc:
lilo.conf

Das komplette Verzeichnis:
/lib/modules/2.6.10

Das komplette Verzeichnis:
/usr/src/kernel-source-2.6.10
Dort löscht Ihr dann wieder alle Ordner, bis auf das include- Verzeichnis und alle Scriptdateien direkt im Hauptverzeichnis der Kernelquellen.

Jetzt wird aufgeräumt!

Startet von Euerer letzten Knoppix Version, bevor Ihr den Kernel installiert habt. Installiert diese Version einfach wieder mit dem "knoppix-installer" neu.
Dann startet Ihr das System neu und wir werden das System einwenig aufräumen.
Löscht aus dem /boot- Verzeichnis, dem /lib/modules Verzeichnis alle Kerneldateien und Modulverzeichnisse, die Ihr nicht mehr benötigt. Ich schlage vor, den bereits mitgelieferten 2.4er und den neuen 2.6er Kernel zu behalten.
Dann kopiert Ihr Euere Kernel 2.6.10er Sicherung an die entsprechenden Stellen wieder zurück.
Die Kernelquellen werden mit einem

ln -s /usr/src/kernel-source-2.6.10 linux

neu verlinkt.
Im /boot Verzeichnis räumen wir auch auf und löschen folgende Dateien mit:

rm vmlinuz
rm System.map
rm initrd.img

und legen neu dann folgende an:

ln -s vmlinuz-2.6.10 vmlinuz
ln -s System.map-2.6.10 System.map
ln -s initrd.img-2.6.10 initrd.img

Dann muss noch die /etc/lilo.config neu an Euere übrig gebliebenen Kernel angepasst werden.
Die sieht dann im Mittelbau so aus:



image=/boot/vmlinuz-2.4.27
label="Linux2.4.27"
initrd=/boot/initrd.img-2.4.27
append="ramdisk_size=100000 init=/etc/init lang=de apm=power-off nomce"
read-only

image=/boot/vmlinuz-2.6.10
label="Linux2.6.10"
initrd=/boot/initrd.img-2.6.10
append="ramdisk_size=100000 init=/etc/init lang=de apm=power-off nomce"
read-only


Der Rest bleibt innerhalb dieser Datei dann gleich. Wenn diese gespeichert ist, muss noch als Root in der Konsole der

lilo

ausgeführt werden.Danach startet Euer System wieder neu um zu testen, ob alles soweit ordentlich gestartet werden kann. Wenn dies dann der Fall ist, werden nun das Bootimage erstellen. Startet dazu den Rechner wieder von einer Knoppix-CD aus.
Sichert nun das Verzeichnis
/mnt/hda1/custom/KNOPPIX_CD/boot/isolinux
und löscht die Datei linux26 . Dann kopiert Ihr die Datei /mnt/hda2/boot/vmlinuz-2.6.10 nach linux26. Das ist dann Euer neuer Bootkernel.


Das Mini-Linux

Nun legt Ihr in dem Verzeichnis einen neuen Ornder an, den Ihr einfach nur "26" nennt. Dann packen wir das Boot-Image aus:

gunzip minirt26.gz

Danach mounten wir diese Datei auf das Verzeichnis 26:

mount -o loop minirt26 26

Jetzt können wir den Ordner 26 aufmachen und sehen die geladene Datenstruktur des Boot-Files. In der linuxrc können dann entsprechende Startparameter eingestellt werden. Editiert diese aber bitte nur mit dem Midnight Commander (mcedit) !!! Denn wenn Ihr z.B. den Kwrite verwendet, gehen dabei einige Formatierungen verloren, die diese Datei nicht mehr lesbar machen!

Wenn Ihr nun das Verzeichnis /modules anklickt, seht Ihr hier bereits eine Datei cloop.o . Dieses Modul ersetzt Ihr aus Euerem 2.6.10er Moduleverzeichnis mit der frisch übersetzten cloop.ko . Ihr müsst dabei die Endung *.ko immer in *.o umbenennen.
Ein Verzeichnis weiter unten ( /scsi ) beinhaltet dann die restlichen Module, die Ihr für den Start benötigt. Auch hier sucht Ihr die neuen Module des 2.6.10er Kernels zusammen. Auch hier müsst Ihr die Endungen von *.ko auf *.o umbenennen. Wenn Ihr damit fertig seid (prüft bitte hier gewissenhaft nach, dass Ihr nichts vergessen habt) verlasst das "26"-Verzeichnis wieder und unmountet dieses mit

umount 26

Dann packt Ihr die Datei wieder ein:

gzip -9 minirt26

Jetzt löscht das Verzeichnis "26" einfach wieder raus und passt gegebenenfalls die isolinux.cfg soweit an, dass Euer neuer Kernel 2.6.10 als Default-kernel gestartet wird.

Alles neu macht der Mai!

Zusätzlich kann man Bootscreen auch sehr leicht ändern, um seinen Remaster ein etwas individuelleres Erscheinungsbild zu verpassen. Unter
/mnt/hda1/custom/KNOPPIX_CD/boot/isolinux
findet Ihr hierzu alles notwendige. In der Datei boot.msg könnt Ihr Euere eigene Boot-Message festlegen. Das ist der Satz, der unten im Bootscreen erscheint. Die Datei logo.16 ist dann das Bild, das hinterlegt wird. Dies muss zur Bearbeitung erstmal in ein lesbares Format gebracht werden. Das geht mit dem Befehl
lss16toppm <logo.16 >logo16.ppm
Dann könnt Ihr diese Datei im Gimp laden und bearbeiten. Leider speichert der Gimp nicht in das ppm-Format zurück. Also müsst Ihr das fertige Bild als bmp-Datei (hier z.B. logo16.bmp) abspeichern. Diese wandeln wir dann locker mit dem Befehl
bmptoppm <logo16.bmp >logo16.ppm
in das ppm zurück. Das dann noch schnell mit
ppmtolss16 <logo16.ppm >logo.16
in das korrekte Format zurück gewandelt.
Dieses Boot-Logo darf maximal nur 16 Farben haben! Wenn Ihr eine Fehlermeldung beim Konvertieren ignoriert, dann wird das Logo auch nur schwarz dargestellt. Also am Besten in einem Grafikprogramm entsprechend auf die 16 Farben abändern.

Jetzt seid Ihr soweit, Euere Knoppix- Remaster CD wie bereits beschrieben mit neuen Kernel zu erstellen.


Jetzt bin ich auf die ersten Remaster gespannt. Bitte gebt, wenn Ihr eventuell ein eigenes Remaster verteilen solltet, immer mit an, dass es auf der Knoppix-Technoligie beruht. Das ist nur fair, wenn man das tut, denn Herr Knopper steckt dort auch gut Arbeit rein.

VIEL SPASS!

Euer
Gargi