Knoppix Remastering Howto Deutsch


From Knoppix Documentation Wiki
Revision as of 14:44, 20 August 2008 by 80.135.41.183 (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. Konfiguration der Internet-Verbindung. Wenn DHCP genutzt wird, sollte dies bereits eingerichtet sein.
    • Hinweis: Rufe ifconfig auf um dies zu überprüfen.
  4. Auswahl einer Partition. Im Folgenden wird sie hier hda1 genannt.
    • Hinweis: df -h zeigt den freien Speicherplatz an, wenn die Partition eingebunden ist.
  5. Mounten der Partiton:
    • mount -rw /dev/hda1 /mnt/hda1
    • Hinweis: Es sollte sichergestellt sein, dass die Partition schreib- und lesbar gemountet ist, ansonsten wird es später zu Fehlern kommen. Darum bitte mit mount überprüfen.
  6. Nun wird ein root-Verzeichnis erstellt, das als Arbeitsordner dient. Wenn alle Dateien hier landen, kann leichter wieder aufgeräumt werden.
    • mkdir /mnt/hda1/knx
  7. Falls der physikalische Speicher nicht ausreicht ( egrep "(MemTotal|SwapTotal)" /proc/meminfo && echo "(physical+swap)" ) wird ein SWAP-Bereich benötigt:
    • cd /mnt/hda1/knx
    • dd if=/dev/zero of=swapfile bs=1M count=750  # Erzeugt 750 MB SWAP
    • mkswap swapfile
    • swapon swapfile
  8. Es werden 2 Verzeichnisse auf der Partition erzeugt. Eines für die neue Master-CD und eines für die Source. Weiterhin gehört jeweils ein Unterverzeichnis KNOPPIX hinein:
    • mkdir -p /mnt/hda1/knx/master/KNOPPIX
    • mkdir -p /mnt/hda1/knx/source/KNOPPIX
  9. Kopiere die KNOPPIX-Dateien in dein Source-Verzeichnis:
    • cp -rp /KNOPPIX/* /mnt/hda1/knx/source/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.
  10. Als Nächstes werden die Dateien für die spätere Erstellung der ISO kopiert
    1. Das Boot-Verzeichnis
    • cp -ar /cdrom/boot /mnt/hda1/knx/master/boot
    1. Für Knoppix ab Version 5.0.1 ist auch der Modules-Ordner erforderlich.
    • cp -ar /cdrom/KNOPPIX/modules /mnt/hda1/knx/master/KNOPPIX/.
  11. Kopieren aller Dateien der Live-CD, die auch in der remasterten Live-CD enthalten sein sollen, in das Master-Verzeichnis außer der etwa 700 MB große KNOPPIX-Datei.
    • < 3.4:
      • cd /cdrom/KNOPPIX && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/KNOPPIX/ \;
    • >= 3.4 (isolinux):
      • cd /cdrom && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;
    • Für die DVD-Version muss die Größe auf -15000k gesetzt werden. Außerdem ist das Verzeichnis KNOPPIX2 zu kopieren:
      • cd /cdrom && find . -size -15000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;
      • cp -ar /KNOPPIX2/* /mnt/hda1/knx/source/KNOPPIX
  12. Die Umgebungsvariablen für chroot setzen:
    • mount --bind /dev /mnt/hda1/knx/source/KNOPPIX/dev
    • mount --bind /proc /mnt/hda1/knx/source/KNOPPIX/proc
    • mount --bind /sys /mnt/hda1/knx/source/KNOPPIX/sys
  13. Jetzt kann das kopierte KNOPPIX-Verzeichnis zum Wurzelverzeichnis gemacht werden:
    • chroot /mnt/hda1/knx/source/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/knx/source/KNOPPIX"
  • Beachte, dass ALLE folgenden Änderungen auf die CD / DVD gebrannt werden!

Internetverbindung

  1. Für den Internetzugriff kann entweder die resolv.conf editiert werden, um den Nameserver einzutragen, oder die Originaldatei wird von ausserhalb der CHROOT-Umgebung kopiert.
    • cp /etc/dhcpc/resolv.conf /mnt/hda1/knx/source/KNOPPIX/etc/dhcpc/resolv.conf
  • Wenn auf das Internet nur über einen Proxy-Server zugegriffen werden kann, muss das System für die Verwendung des Proxy-Servers eingerichtet werden. 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, sollte die folgende Zeile verwendet werden:
    • export http_proxy="http://Benutzername:Passwort@meinProxy:8080"
  • Überprüfung der Internet-Verbindung:
    • ping google.com

SMB Zugriff

  • Für die smbd-Unterstützung sollte auch die Arbeitsgruppe in der Datei smb.conf eingetragen werden: (MSHOME unter XP Home und WORKGROUP unter Windows 9x bzw. MSHEIMNETZ und ARBEITSGRUPPE in den deutschen Windows-Versionen)

APT

Erneuerung der Paketlisten mit apt-get update

Hinweis: Wenn apt-get update die Fehlermeldung "FATAL -> Could not set non-blocking flag Bad file descriptor" ausgibt, muss die chroot-Umgebung ohne die "nodev"-Option gestartet werden. (siehe Anmerkungen oben zu Fehlern mit /dev/null).
Bei der Fehlermeldung "Dynamic NMap ran out of room" hilft der Eintrag:
echo 'APT::Cache-Limit "25168524";'>> /etc/apt/apt.conf
Warnung: 'apt-get upgrade' sollte nicht verwendet werden! Es führt dazu, dass nicht mehr vom Image gebootet werden kann oder zu anderen Prolbemen. Es ist sicherer, nur die Pakete zu aktualisieren, die wirklich benötigt werden.

Um neue Programme hinzufügen zu können, sollten erst andere entfernt werden, um Platz zu schaffen. Damit möglichst viel freier Speicherplatz auf der CD/DVD geschaffen wird, müssen große und nicht notwendige Programme entfernt werden.

Hinweis: 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.

Eine Liste der installierten Pakete wir angezeigt durch

dpkg -l

Eine Sortierung mit absteigender Sortierung:

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

Nicht benötigte Pakete inklusive der Konfigurationsdateien entfernt der Befehl.

apt-get purge "Paketname"

Weitere Pakete werden automatisch mit

apt-get autoremove 

entfernt. Weitere nicht mehr benötigte Libraries zeigt

deborphan

an. Sie können entfernt werden mit

deborphan | xargs apt-get -y remove

Die Installation von neuen Pakete geschieht durch

apt-get install "paketname"

Sollte der korrekte Paketname nicht bekannt sein, kann er ermittelt werden mit:

apt-cache search "Suchbegriff"

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
COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P

Benutzereinstellungen

Benutzereinstellungen sind in /etc/skel abgelegt. Dieses Verzeichnis wird in neue 'Homeverzeichnisse' kopiert.

Unter Umständen muss auch noch in /etc/X11/Xsession.d/45xsession das rsync-Kommando anpasst werden, da der Default-User 'knoppix' nicht per adduser(1) angelegt wird und keine komplette 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/knx/source/KNOPPIX/.rr_moved

Komprimiertes KNOPPIX-Image

Jetzt kann eine große KNOPPIX-Datei mit dem komprimierten cloop-ISO9660-Dateisystem erzeugt werden:

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

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

Hinweis: Das obige Kommando funktionierte bei mir nicht mit dem neuesten 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 und schlug fehl ohne Fehlermeldungen zu erzeugen. Das nachfolgende Kommando benutzt eine Datei anstelle des RAM für temporä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/knx/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs -B 65536 -f /mnt/hda1/knx/isotemp - /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

Live-CD ISO

Wenn alles glatt verlaufen ist, dann können wir mit dem endgü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/knx/master
    • 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/knx/remastered.iso /mnt/hda1/knx/master
    • 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/knx/remasterd.iso /mnt/hda1/knx/master
    • 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/knx/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/knx/remastered.iso  # /dev/hd? durch Device-Node des Brenners ersetzen