Knoppix Remastering Howto Deutsch


From Knoppix Documentation Wiki
Revision as of 06:17, 6 August 2008 by 77.187.198.40 (Talk)

Jump to: navigation, search

Dies ist ein Leitfaden wie man KNOPPIX remastert. (Hinweis: Jeder Befehl erstreckt sich nur über eine Zeile, Zeilenumbrüche sind mit ┐ gekennzeichnet. Wenn du irgendwelche Kommentare oder Vorschläge hast, schreibe sie bitte am Ende dieser Seite rein.)

Natürlich ist es viel weniger Arbeit (kein Entfernen von Programmen), wenn man bereits mit einem "customized" Knoppix beginnt. Siehe Knoppix Customizations oder Knoppix CustomizationsDeutsch.

Voraussetzungen:

  • CD-ISO
    • insgesamt mindestens 1 Gigabyte freien RAM+Swap (z.B. 256 Megabyte RAM und 750 Megabyte Swap-Bereich verfügbar)
    • 3 GB freien Speicherplatz auf einer LINUX-kompatiblen Partition (ext2/3, etc.)
  • DVD-ISO
    • insgesamt mindestens 5 Gigabyte freien RAM+Swap (z.B. 3 Gigabyte RAM und 2 Gigabyte Swap-Bereich verfügbar)
    • 15 GB freien Speicherplatz auf einer LINUX-kompatiblen Partition (ext2/3, etc.)

Anleitung

Diese Anleitung soll die grundsätzliche Vorgehensweise beim Erstellen einer eigenen KNOPPIX Live CD bzw. DVD darstellen. Die erläuterten Befehle und Hinweise wurden für die Version 5 getestet, sollten aber im Allgemeinen kompatibel zu den Versionen > 3.4 sein.

Umgebung für das Remastering einrichten

  1. Booten von der Knoppix-CD
  2. Öffne eine Root Shell:
    • Menü: KDE-Menü->Knoppix->Root Shell
    • Hinweis: Alle weiter unten stehenden Befehle sollten von der Root-Shell aufgerufen werden.
  3. Konfigurieren deiner Internet-Verbindung (die brauchen wir später noch). Wenn du DHCP benutzt sollte sie bereits eingerichtet sein.
    • Hinweis: Rufe ifconfig auf um dies zu überprüfen.
  4. Suche dir eine Partition auf der du arbeiten willst.
    • Hinweis: df -h zeigt den freien Speicherplatz an, wenn die Partition eingebunden ist.
  5. Mounte die Partiton:
    • mount -rw /dev/hda1 /mnt/hda1
    • Hinweis: Du must sicherstellen, dass die Partition schreib- und lesbar gemountet ist, ansonsten wird es später zu Fehlern kommen. Um dies zu überprüfen rufe mount auf.
  6. Erzeuge 2 Verzeichnisse auf Partition, eines für deine neue Master-CD und eines für die Source und erzeuge in jedem ein Unterverzeichnis KNOPPIX:
    • mkdir -p /mnt/hda1/knxmaster/KNOPPIX
    • mkdir -p /mnt/hda1/knxsource/KNOPPIX
  7. Falls der physikalische Speicher nicht ausreicht muss SWAP erzeugt werden:
    • cat /proc/meminfo  # zeigt die Speicherauslastung an
    • cd /mnt/hda1/
    • dd if=/dev/zero of=swapfile bs=1M count=750  # Erzeugt 750 MB SWAP
    • mkswap swapfile
    • swapon swapfile
  8. Kopiere die KNOPPIX-Dateien in dein Source-Verzeichnis:
    • cp -rp /KNOPPIX/* /mnt/hda1/knxsource/KNOPPIX
    • Hinweis: Das wird jetzt ein wenig dauern, da die Daten auf der CD im gepackten Zustand vorliegen und in etwa 2,2 Gigabyte kopiert werden müssen.
  9. Kopiere alle Dateien der Live-CD, die auch in der remasterten Live-CD enthalten sein sollen in dein Master-Verzeichnis, außer die etwa 700 MB große KNOPPIX-Datei, beispielsweise:
    • cp /cdrom/index.html /mnt/hda1/knxmaster/
    • cp -p /cdrom/cdrom.ico /cdrom/autorun.* /mnt/hda1/knxmaster/
    • cp -ar /cdrom/boot/ /mnt/hda1/knxmaster/boot/
    • cp -ar /cdrom/KNOPPIX/modules /mnt/hda1/knxmaster/KNOPPIX/
    • < 3.4:
      • cd /cdrom/KNOPPIX && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knxmaster/KNOPPIX/ \;
    • >= 3.4 (isolinux):
      • cd /cdrom && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knxmaster/ \;
  10. Jetzt kannst du das kopierte KNOPPIX-Verzeichnis zum Wurzelverzeichnis machen:
    • chroot /mnt/hda1/knxsource/KNOPPIX

Neu - Ich habe eine ganze Ladung an /dev/null permission denied Fehlermeldungen bekommen. Update: Gefixt! Überprüfe deinen Mountstatus, wenn du auf dieses Problem stößt: mount /dev/hdaX on /mnt/hdaX type ext3 (rw,nosuid,nodev) (ersetze das X mit deiner Partitionsnummer). "Nodev" heißt, dass z. B. /dev/null nicht erreichbar ist und manche Skripte leiten aber die Ausgabe nach /dev/null um. Um dieses Problem zu umgehen, sollte man die Partition anders mounten, bevor man chroot ausführt:

mount /dev/hda12 /mnt/hda12

Und das hat sich geändert:

mount /dev/hda12 on /mnt/hda12 type ext3 (rw)

Wenn der obige Befehl nicht geht probiere:

mount -t ext3 -o rw /dev/hda12 /mnt/hda12

Bitte mit

mount /dev/hdXX -o remount,rw,suid,dev

alles richtig mounten, damit chroot funzt.


danach kann man mit chroot weitermachen.

Arbeiten in der neuen Root Umgebung

  • chroot ist jetzt ausgeführt und das Verzeichnis "/" enspricht jetzt "/mnt/hda1/knxsource/KNOPPIX"
  • Beachte, dass ALLE folgenden Änderungen auf die CD / DVD gebrannt werden!
  • Um ins Internet zu kommen, muß man noch proc mounten:
    • mount -t proc /proc proc
  • Falls ihr euch hinter einen Router befindet, muss die resolv.conf editiert und der Nameserver eingetragen werden oder ihr kopiert die Original Datei von ausserhalb der CHROOT-Umgebung.
    • cp /etc/dhcpc/resolv.conf /mnt/hda1/knxsource/KNOPPIX/etc/dhcpc/resolv.conf
  • Wenn ihr auf das Internet nur über einen Proxy-Server zugreifen könnt, müsst ihr das System für die Verwendung des Proxy-Servers einrichten. Das ist aber recht einfach. Ihr müsst dazu lediglich eine Umgebungsvariable mit den Informationen über den Proxy-Server setzen. Hinweis: Diese Einstellung geht bei jedem Neustart wieder verloren.
    • export http_proxy="http://meinProxy:8080"
  • Wenn der Proxy-Server einen Benutzernamen und Passwort verlangt, solltet ihr die folgende Zeile verwenden:
    • export http_proxy="http://Benutzername:Passwort@meinProxy:8080"
  • Wenn man smbd-Unterstützung haben will, sollte man auch die Arbeitsgruppe in der Datei smb.conf editieren: (MSHOME unter XP Home und WORKGROUP unter Windows 9x bzw. MSHEIMNETZ und ARBEITSGRUPPE in den deutschen Windows-Versionen)
  • überprüfe, ob die Internet-Verbindung funktioniert:
    • ping google.com
  • Und jetzt kann man endlich Änderungen durchführen. Wenn man Programme hinzufügen will, dann muss man eventuell andere entfernen, um Platz zu machen. Damit möglichst viel freier Speicherplatz auf der CD geschaffen wird, müssen große und nicht notwendige Programme entfernt werden. Falls es die Hardware-Umgebung zulässt, kann die Paketverwaltung synaptic benutzt werden. Um nach der Größe der Pakete sortieren zu können, muss zunächst über Einstellungen -> Einstellungen -> Spalten und Schriften die Größen-Anzeige aktiviert werden. Alternativ können auch apt oder dpkg genutzt werden. Da aber weder apt-cache search noch dpkg -l eine Möglichkeit bieten, die installierten Pakete der Größe nach zu sortieren, bietet der folgende Befehl eine gute Alternative.
    • dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n
  • Nicht benötigte Pakete entfernt der Befehl.
    • apt-get remove "paketname"
  • Falls apt-get mit "Dynamic NMap ran out of room" fehlschlägt:
    • echo 'APT::Cache-Limit "25168524";' >> /etc/apt/apt.conf
  • Beim Entfernen von diversen Paketen gab es Fehlermeldungen, weil Verzeichnisse innerhalb von /usr/share/info oder /usr/share/man nicht existierten. Ein nachträgliches Erstellen der Ordner führte dann weiter.
  • Natürlich möchte man auch neue Pakete installieren, dafür folgenden Befehl benutzen.
    • apt-get install "paketname"
  • Es ist notwendig den korrekten Paketnamen anzugeben. Einfach nur mysql reicht da nicht aus. Den vollständigen Paketnamen sucht man am besten mit
    • apt-cache search "paketname"
  • Nachdem man alle nicht gewünschten Pakete entfernt hat kann man mit deborphan anzeigen lassen, welche Pakete als Abhängigkeit installiert wurden und jetzt nicht mehr gebraucht werden. Diese kann man bedenkenlos entfernen wenn man sie nicht direkt benutzen will, will man dies sollte man sie vom Typ auf manuell installiert setzen. Danach kann man alle nicht mehr benötigten Pakete mit folgendem Befehl entfernen.
    • apt-get remove `deborphan`
  • Nachdem alle Änderungen an den Paketen vorgenommen wurden, muss noch aufgeräumt werden, da die Daten aus dem Cache nicht mit auf die CD sollen.
    • apt-get autoclean
    • apt-get clean
  • Änderungen durchführen... Benutzereinstellungen sind in /etc/skel, ggf. muss man auch noch in /etc/X11/Xsession.d/45xsession das rsync-Kommando anpassen (der Punkt ist, dass der Default-User 'knoppix' nicht per adduser(1) angelegt wird und so einfach eine Kopie von /etc/skel bekommt, sondern in 45xsession explizit nur ein Ausschnitt von /etc/skel nach /home/knoppix kopiert wird.)
  • ...

Notizen

Interessantes aus der /etc/init.d/knoppix-autoconfig Datei: Das X-Hintergrundbild ist auf die Datei /cdrom/KNOPPIX/background.jpg eingestellt. Außerdem ist knoppix-autoconfig die Stelle, wo man neue Defaults für z. B. den Desktop oder die Sprache eintragen kann. Um etwa statt KDE twm zu starten, suche man in dieser Datei nach der Stelle, wo die Variable DESKTOP (IIRC) den Default-Wert "kde" bekommt und trage stattdessen "twm" ein.

Genauso wie floppyconfig gibt es auch ein cdromconfig, welches die Datei /cdrom/KNOPPIX/knoppix.sh ausführt (siehe Cheat Codes Deutsch).

Interessantes aus der Datei /etc/init.d/xsession: Auch hier ist ein Hintergrundbild eingetragen: /usr/local/lib/knoppix.jpg

Verlassen der neuen Root Umgebung

Sofern du es gemountet hast, musst du /proc wieder unmounten - sehr wichtig!

  • umount /proc

Drücke CTRL+D um die chroot-Umgebung zu verlassen.

Erzeugen des ISO

  • Wir sind fertig mit den Änderungen und bereit zum Brennen!
  • Als erstes sollte man etwas aufräumen: lösche .bash_history, Dateien in /tmp, Pakete unter /var/cache/apt/archives etc.
  • rm -rf /mnt/hda1/knxsource/KNOPPIX/.rr_moved

Komprimiertes KNOPPIX-Image

Jetzt erzeugt man eine große KNOPPIX-Datei mit einem komprimierten cloop-ISO9660-Dateisystem drinnen:

mkisofs -R -U -V "KNOPPIX.net filesystem" --publisher "KNOPPIX www.knoppix.net" -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda1/knxsource/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/knxmaster/KNOPPIX/KNOPPIX

Das "www.knoppix.net" und "Knoppix.net filesystem" kann man natürlich ändern. Jetzt sollte eine Meldung erscheinen, dass es nicht den ISO-Standards entspricht. Diese Meldung kann man irgnorieren

Hinweis: Das obiges Kommando funktionierte bei mir nicht mit dem neuseten create_compressed_fs. Ich konnte das ISO zwar erstellen, aber das komprimierte KNOPPIX-Image konnte beim Booten nicht richtig gelesen werden (I/O errors beim lesen vom cloop0 device). Vermutlich hatte create_compressed_fs nicht genug RAM schlug fehl ohne Fehlermeldungen zu erzeugen. Das nachfolgende Kommando benutzt eine Datei anstelle des RAM für temopräre Daten und funktionierte.

mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix.net" -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda1/knxsource/KNOPPIX | nice -5 /usr/bin/create_compressed_fs -B 65536 -f /mnt/hda1/isotemp - /mnt/hda1/knxmaster/KNOPPIX/KNOPPIX

Live-CD ISO

Wenn alles glatt verlaufen ist dann können wir mit dem engültigen CD-ROM-Image weitermachen.

  1. Aktualisieren der md5-Hashes um später die Integrität des Images prüfen zu können:
    • cd /mnt/hda1/knxmaster
    • rm -f KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
  2. Das ISO erstellen:
    • für Knoppix < 3.4:
      • mkisofs -pad -l -r -J -v -V "KNOPPIX" --publisher "KNOPPIX www.knoppix.net" -b KNOPPIX/boot.img ┐
         -c KNOPPIX/boot.cat -hide-rr-moved -o /mnt/hda1/remastered.iso /mnt/hda1/knxmaster
    • für Knoppix >= 3.4 (isolinux):
      • mkisofs -pad -l -r -J -v -V "KNOPPIX" --publisher "KNOPPIX www.knoppix.net" -b boot/isolinux/isolinux.bin -no-emul-boot ┐
        -boot-load-size 4 -boot-info-table -c KNOPPIX/boot.cat -hide-rr-moved -o /mnt/hda1/remasterd.iso /mnt/hda1/knxmaster
    • Hinweis: Anscheinend wurde boot.cat bei neueren Versionen verschoben, boot.cat kann nun mit -c boot/isolinux/boot.cat eingebunden werden.
    • Hinweis: Das ISO wird unter /mnt/hda1/remastered.iso gespeichert
  3. Das erstellte ISO Image kann mit einem Brennprogramm nach Wahl gebrannt werden. Ist noch ein CD/DVD-Brenner frei, so kann man dies gleich unter Knoppix mit
    • cdrecord dev=/dev/hd? /mnt/hda1/remastered.iso  # /dev/hd? durch Device-Node des Brenners ersetzen