Difference between revisions of "Knoppix Remastering Howto Deutsch"


From Knoppix Documentation Wiki
Jump to: navigation, search
(Erzeugen des ISO)
 
(26 intermediate revisions by 7 users not shown)
Line 1: Line 1:
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.)
+
Dies HowTo beschreibt, wie eine Knoppix '''CD''' nach der alten "chroot-Methode" remastert werden kann. Die Scripte von "Vorarbeiten" bis "ISO erstellen" wurden mit '''Knoppix V7.0.4CD''' getestet. Dies HowTo kann nicht für eine Knoppix '''DVD''' verwendet werden.
  
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]].
+
== Vorarbeiten ==
 +
=== Vorbereitung zum Remaster ===
 +
* Boote mit ''Knoppix CD''
 +
* Ein Terminal öffnen und "su" eingeben, um root zu werden.
 +
* Internet-Verbindung einrichten. Wenn DHCP verwendet wird, sollte bereits alles von allein konfiguriert sein (mit '''ifconfig''' überprüfen).
 +
* Lege die Partition fest, mit der Du arbeiten willst und ändere die Variable "PFAD" innerhalb der Scripte wie Du sie brauchst. Im Beispiel hier wird '''/media/sda1''' verwendet. Die Partition sollte mindestens einen freien Platz von 5 GB zum remastern einer CD und 20 GB zum remastern einer DVD haben.
 +
* Das erste Script macht alle notwendigen Vorarbeiten:
 +
#! /bin/sh
 +
# krhowto_1
 +
# Path to partition you will work on
 +
PFAD="/media/sda1"
 +
START=$(date +'%s')
 +
# Disable screensaver
 +
xscreensaver-command -exit
 +
# One sub-directory will be used for the Master-CD
 +
mkdir -p $PFAD/knx/master
 +
cd $PFAD/knx
 +
# You will need a swapfile
 +
dd if=/dev/zero of=swapfile bs=1M count=500
 +
mkswap swapfile ; swapon swapfile
 +
# Make a sub-directory for the source
 +
mkdir -p $PFAD/knx/source/KNOPPIX
 +
echo "Copy the KNOPPIX files to your source directory."
 +
echo "This will take a long time!"
 +
cp -rp /KNOPPIX/* $PFAD/knx/source/KNOPPIX
 +
# Additionally, copy the files to build the ISO later
 +
rsync -aH --exclude="KNOPPIX/KNOPPIX*" /mnt-system/* $PFAD/knx/master
 +
# gunzip inital RAM-disk
 +
mkdir -p $PFAD/knx/minirt/minirtdir
 +
cp $PFAD/knx/master/boot/isolinux/minirt.gz $PFAD/knx/minirt/
 +
cd $PFAD/knx/minirt/
 +
gunzip minirt.gz
 +
cd minirtdir
 +
cpio -imd --no-absolute-filenames < ../minirt
 +
# Enable screensaver
 +
su knoppix -c "xscreensaver -nosplash &"
 +
echo -e "\nFinished! Used time: $(expr $(expr $(date +'%s') - $START) / 60) min. \
 +
  and $(expr $(expr $(date +'%s') - $START) % 60) sec."
 +
 +
=== Einrichten der chroot-Umgebung ===
 +
* Benutze dies Script bevor in die chroot-Umgebung gewechselt wird:
 +
#! /bin/sh
 +
# krhowto_2
 +
# Path to partition you will work on
 +
PFAD="/media/sda1"
 +
# To use the Internet add your nameserver into the chroot folder
 +
cp /etc/resolv.conf $PFAD/knx/source/KNOPPIX/etc/resolv.conf
 +
# Allow X-based programs in chroot
 +
[ -e $PFAD/knx/source/KNOPPIX/home/knoppix/.Xauthority ] \
 +
    && rm $PFAD/knx/source/KNOPPIX/home/knoppix/.Xauthority
 +
cp /home/knoppix/.Xauthority $PFAD/knx/source/KNOPPIX/home/knoppix
 +
chown knoppix:knoppix $PFAD/knx/source/KNOPPIX/home/knoppix/.Xauthority
 +
# prepare enviroment for chroot
 +
mount --bind /dev $PFAD/knx/source/KNOPPIX/dev
 +
mount -t proc proc $PFAD/knx/source/KNOPPIX/proc
 +
mount -t sysfs sysfs $PFAD/knx/source/KNOPPIX/sys
 +
mount --bind /dev/pts $PFAD/knx/source/KNOPPIX/dev/pts
 +
mount --bind /tmp $PFAD/knx/source/KNOPPIX/tmp
  
= Voraussetzungen: =
+
<center>[[#top|Top]]</center>
* CD-ISO
+
** insgesamt mindestens 1 Gigabyte freien RAM+Swap (z.B. 256 Megabyte RAM und 750 Megabyte Swap-Bereich verfügbar)
+
=== Arbeiten in der chroot-Umgebung ===
** 3 GB freien Speicherplatz auf einer LINUX-kompatiblen Partition (ext2/3, etc.)
+
* Jetzt das "chroot" zur Kopie von KNOPPIX:
* DVD-ISO
+
  chroot /media/sda1/knx/source/KNOPPIX
** insgesamt mindestens 5 Gigabyte freien RAM+Swap (z.B. 3 Gigabyte RAM und 2 Gigabyte Swap-Bereich verfügbar)
+
* Bedenke, daß alles, was Du hier in der chroot-Umgebung machst, auf die CD gebrannt werden wird.
** 15 GB freien Speicherplatz auf einer LINUX-kompatiblen Partition (ext2/3, etc.)
+
* Innerhalb des chroot können auch X-basierte Programme ausgeführt werden, wenn man sie von der Kommandozeile im Terminal aus startet.
 +
* Tippe "su knoppix" ein, um zum Benutzer "knoppix" zu werden; verwende '''Strg+D''', um wieder "root" zu sein.
 +
* Aktualisiere zuerst die Paketliste mit: '''apt-get update'''
 +
** '''Warnung''': apt-get upgrade ist eine '''schlechte Idee'''. Es ist ziemlich wahrscheinlich, daß ein nicht mehr bootbares remastert KNOPPIX zurück bleibt, oder es sonstwie zerstört ist. Sicherer ist es, nur für einzelne Pakete ein Upgrade zu machen, wenn es wirklich nötig ist.
 +
**Bevor man weitere Pakete installiert, wird es erforderlich sein, stattdessen andere Pakete zu löschen.
 +
* Um eine Übersicht über die installierten Pakete zu erhalten, kann [http://www.wp-schulz.de/scripte/kn-what-script kn-what] benutz werden, welches unter anderen auch eine Liste nach Dateigröße liefert.
  
= Anleitung =
+
=== Verlassen der chroot-Umgebung ===
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.
+
* Verwende '''Strg+D''', um die chroot-Umgebung zu verlassen; dann dies Script ausführen:
 +
#! /bin/sh
 +
# krhowto_3
 +
# Path to partition you will work on
 +
PFAD="/media/sda1"
 +
for i in dev/pts proc sys dev tmp; do
 +
  umount $PFAD/knx/source/KNOPPIX/$i
 +
done
 +
sed -i '2,$d' $PFAD/knx/source/KNOPPIX/etc/resolv.conf
 +
 +
=== Arbeiten außerhalb der chroot-Umgebung ===
 +
* Wenn man ein andersartiges Startverhalten von Knoppix möchte, kann man Änderungen in '/media/sda1/knx/master/boot/isolinux/isolinux.cfg' eintragen:
 +
** Ersetze zum Beispiel überall 'tz=localtime' mit 'tz=Europe/Berlin'
 +
* In dieser Datei kann man auch Cheatcodes anfügen, welche man immer braucht:
 +
** Hänge zum Beispiel 'no3d' (ohne ' ') an jede Append-Zeile an, wenn man nicht Compiz 3d mag.
 +
* Lies '''knoppix-cheatcodes.txt''' durch. Die neuste Version davon ist immer hier [http://www.knopper.net/knoppix-mirrors/ Mirrors] zu finden.
 +
* In '/media/sda1/knx/source/KNOPPIX/etc/X11/Xsession.d/45knoppix' findet sich, welches Wallpaper Knoppix benutzt und welchen Startsound.
 +
* In '/media/sda1/knx/source/KNOPPIX/etc/init.d/knoppix-halt' ist der Hinweis, was beim shutdown zu hören ist.
 +
* Erstelle die Datei '/media/sda1/knx/master/KNOPPIX/knoppix.sh' neu und trage hier Dienste ein, welche man zusätzlich starten möchte.
  
== Umgebung für das Remastering einrichten ==
+
<center>[[#top|Top]]</center>
# Booten von der ''Knoppix-CD''
+
# Öffne eine Root Shell:
+
#* Menü: KDE-Menü->Knoppix->Root Shell
+
#* Hinweis: Alle weiter unten stehenden Befehle sollten von der Root-Shell aufgerufen werden.
+
# Konfiguration der Internet-Verbindung. Wenn DHCP genutzt wird, sollte dies bereits eingerichtet sein.
+
#* Hinweis: Rufe '''ifconfig''' auf um dies zu überprüfen.
+
# Auswahl einer Partition. Im Folgenden wird sie hier '''hda1''' genannt.
+
#* Hinweis: '''df -h''' zeigt den freien Speicherplatz an, wenn die Partition eingebunden ist.
+
# Mounten der Partiton:
+
#* <pre>mount -rw /dev/hda1 /mnt/hda1</pre>
+
#* 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.
+
# Nun wird ein root-Verzeichnis erstellt, das als Arbeitsordner dient. Wenn alle Dateien hier landen, kann leichter wieder aufgeräumt werden.
+
#* <pre>mkdir /mnt/hda1/knx</pre>
+
# Falls der physikalische Speicher nicht ausreicht (  '''egrep "(MemTotal|SwapTotal)" /proc/meminfo && echo "(physical+swap)"''' ) wird ein SWAP-Bereich benötigt:
+
#* <pre>cd /mnt/hda1/knx</pre>
+
#* <pre>dd if=/dev/zero of=swapfile bs=1M count=750  # Erzeugt 750 MB SWAP</pre>
+
#* <pre>mkswap swapfile</pre>
+
#* <pre>swapon swapfile</pre>
+
# 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:
+
#* <pre>mkdir -p /mnt/hda1/knx/master/KNOPPIX</pre>
+
#* <pre>mkdir -p /mnt/hda1/knx/source/KNOPPIX</pre>
+
# Kopiere die KNOPPIX-Dateien in dein Source-Verzeichnis:
+
#* <pre>cp -rp /KNOPPIX/* /mnt/hda1/knx/source/KNOPPIX</pre>
+
#* 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.
+
# Als Nächstes werden die Dateien für die spätere Erstellung der ISO kopiert
+
## Das Boot-Verzeichnis
+
#* <pre><nowiki>cp -ar /cdrom/boot /mnt/hda1/knx/master/boot</nowiki></pre>
+
## Für Knoppix ab Version 5.0.1 ist auch der Modules-Ordner erforderlich.
+
#* <pre><nowiki>cp -ar /cdrom/KNOPPIX/modules /mnt/hda1/knx/master/KNOPPIX/.</nowiki></pre>
+
# 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:
+
#** <pre><nowiki>cd /cdrom/KNOPPIX && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/KNOPPIX/ \;</nowiki></pre>
+
#* >= 3.4 (isolinux):
+
#** <pre><nowiki>cd /cdrom && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;</nowiki></pre>
+
#* Für die DVD-Version muss die Größe auf -15000k gesetzt werden. Außerdem ist das Verzeichnis KNOPPIX2 zu kopieren:
+
#** <pre><nowiki>cd /cdrom && find . -size -15000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;</nowiki></pre>
+
#** <pre>cp -ar /KNOPPIX2/* /mnt/hda1/knx/source/KNOPPIX</pre>
+
# Die Umgebungsvariablen für chroot setzen:
+
#* <pre>mount --bind /dev /mnt/hda1/knx/source/KNOPPIX/dev</pre>
+
#* <pre>mount --bind /proc /mnt/hda1/knx/source/KNOPPIX/proc</pre>
+
#* <pre>mount --bind /sys /mnt/hda1/knx/source/KNOPPIX/sys</pre>
+
# Jetzt kann das kopierte KNOPPIX-Verzeichnis zum Wurzelverzeichnis gemacht werden:
+
#* <pre>chroot /mnt/hda1/knxsource/KNOPPIX</pre>
+
  
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.&nbsp;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:
+
== ISO erstellen ==
  mount /dev/hda12 /mnt/hda12
+
* Wir sind jetzt fertig mit den Anpassungen und bereit zum brennen:
Und das hat sich geändert:
+
#! /bin/sh
  mount /dev/hda12 on /mnt/hda12 type ext3 (rw)
+
# krhowto_4
 +
# Path to partition you will work on
 +
PFAD="/media/sda1"
 +
START=$(date +'%s')
 +
# Disable screensaver
 +
xscreensaver-command -exit
 +
# Build new inital RAM-disk
 +
cd $PFAD/knx/minirt/minirtdir/
 +
find . | cpio -oH newc | gzip -9 > ../minirt.gz
 +
cp $PFAD/knx/minirt/minirt.gz $PFAD/knx/master/boot/isolinux/
 +
  # Make the big compressed filesystem KNOPPIX
 +
genisoimage -input-charset ISO-8859-15 -R -l -D -V KNOPPIX_FS -quiet \
 +
  -no-split-symlink-components -no-split-symlink-fields \
 +
  -hide-rr-moved -cache-inodes $PFAD/knx/source/KNOPPIX \
 +
  | /usr/sbin/create_compressed_fs -q -B 65536 -t 8 -L 9 \
 +
  -f $PFAD/knx/isotemp - $PFAD/knx/master/KNOPPIX/KNOPPIX
 +
  # Update the file hashes used by the "testcd" boot option
 +
cd $PFAD/knx/master ; find -type f -not -name \
 +
  sha1sums -not -name boot.cat -not \
 +
  -name isolinux.bin -exec sha1sum '{}' \; > KNOPPIX/sha1sums
 +
# Create new Knoppix ISO
 +
genisoimage -l -r -J -V "KNOPPIX" \
 +
  -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 \
 +
  -boot-info-table -c boot/isolinux/boot.cat \
 +
  -o $PFAD/knx/remasterd.iso $PFAD/knx/master
 +
# Enable screensaver
 +
su knoppix -c "xscreensaver -nosplash &"
 +
echo -e "\nFinished! Used time: $(expr $(expr $(date +'%s') - $START) / 60) min. \
 +
  and $(expr $(expr $(date +'%s') - $START) % 60) sec. \
 +
  \n\nThe new ISO is stored in '$PFAD/knx/remastered.iso' "
  
Wenn der obige Befehl nicht geht probiere:
+
<center>[[#top|Top]]</center>
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.
+
  
 +
== ISO testen ohne eine CD zu brennen ==
 +
* kvm-qemu
 +
Wenn der Prozessor Virtualization unterstützt '''und''' wenn dies im BIOS aktiviert ist, kannst Du die neue ISO mit kvm-qemu testen. Prüfe auf Support mit:
 +
egrep '(vmx|svm)' --color=always /proc/cpuinfo
 +
Wenn das Ergebnis "vmx" ist, gib
 +
modprobe kvm-intel
 +
andernfalls, wenn das Ergebnis "svm" ist, gib
 +
modprobe kvm-amd
 +
ein, um das kvm Modul zu laden. Jetzt kann das Iso getestet werden mit:
 +
kvm -m 512 -cdrom $PFAD/knx/remastered.iso
  
danach kann man mit chroot weitermachen.
+
* VirtualBox
 +
Alternativ kann das neue ISO mit VirtualBox geprüft werden.
 +
----
  
== Arbeiten in der neuen Root Umgebung ==
+
Sieh auch:
 
+
* [http://www.wp-schulz.de/summary/summary-remaster Remaster Knoppix without chroot]
* chroot ist jetzt ausgeführt und das Verzeichnis "/" enspricht jetzt "/mnt/hda1/knx/source/KNOPPIX"
+
* [http://www.wp-schulz.de/summary/summary-recombine Recombine Knoppix flash installation]
* Beachte, dass ALLE folgenden Änderungen auf die CD / DVD gebrannt werden!
+
 
+
=== Internetverbindung ===
+
# 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.
+
** <pre>cp /etc/dhcpc/resolv.conf /mnt/hda1/knx/source/KNOPPIX/etc/dhcpc/resolv.conf</pre>
+
* 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.
+
** <pre>export http_proxy="http://meinProxy:8080"</pre>
+
* Wenn der Proxy-Server einen Benutzernamen und Passwort verlangt, sollte die folgende Zeile verwendet werden:
+
** <pre>export http_proxy="http://Benutzername:Passwort@meinProxy:8080"</pre>
+
* Überprüfung der Internet-Verbindung:
+
** <pre>ping google.com</pre>
+
 
+
=== 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 ===
+
* 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.
+
** <pre>dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n</pre>
+
*Nicht benötigte Pakete entfernt der Befehl.
+
** <pre>apt-get remove "paketname"</pre>
+
* Falls apt-get mit "Dynamic NMap ran out of room" fehlschlägt:
+
** <pre>echo 'APT::Cache-Limit "25168524";' >> /etc/apt/apt.conf</pre>
+
* 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.
+
**<pre>apt-get install "paketname"</pre>
+
*Es ist notwendig den korrekten Paketnamen anzugeben. Einfach nur '''mysql''' reicht da nicht aus. Den vollständigen Paketnamen sucht man am besten mit
+
**<pre>apt-cache search "paketname"</pre>
+
* 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.
+
**<pre>apt-get remove `deborphan`</pre>
+
* 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.
+
**<pre>apt-get autoclean</pre>
+
**<pre>apt-get clean</pre>
+
* Ä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!
+
* <pre>umount /proc</pre>
+
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:
+
 
+
* <code bash>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
+
</code>
+
 
+
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.
+
 
+
* <code>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/isotemp - /mnt/hda1/knx/master/KNOPPIX/KNOPPIX
+
</code>
+
 
+
=== Live-CD ISO ===
+
Wenn alles glatt verlaufen ist dann können wir mit dem engültigen CD-ROM-Image weitermachen.
+
# Aktualisieren der md5-Hashes um später die Integrität des Images prüfen zu können:
+
#* <pre>cd /mnt/hda1/knx/master</pre>
+
#* <pre>rm -f KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums</pre>
+
# Das ISO erstellen:
+
#* für Knoppix < 3.4:
+
#** <code>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/knx/master</code>
+
#* für Knoppix >= 3.4 (isolinux):
+
#** <code>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/knx/master</code>
+
#* 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
+
#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
+
#*<pre>cdrecord dev=/dev/hd? /mnt/hda1/remastered.iso  # /dev/hd? durch Device-Node des Brenners ersetzen</pre>
+
  
 +
<center>[[#top|Top]]</center>
  
 
[[Category: Remastering Knoppix ]]
 
[[Category: Remastering Knoppix ]]

Latest revision as of 09:12, 3 May 2016

Dies HowTo beschreibt, wie eine Knoppix CD nach der alten "chroot-Methode" remastert werden kann. Die Scripte von "Vorarbeiten" bis "ISO erstellen" wurden mit Knoppix V7.0.4CD getestet. Dies HowTo kann nicht für eine Knoppix DVD verwendet werden.

Vorarbeiten

Vorbereitung zum Remaster

  • Boote mit Knoppix CD
  • Ein Terminal öffnen und "su" eingeben, um root zu werden.
  • Internet-Verbindung einrichten. Wenn DHCP verwendet wird, sollte bereits alles von allein konfiguriert sein (mit ifconfig überprüfen).
  • Lege die Partition fest, mit der Du arbeiten willst und ändere die Variable "PFAD" innerhalb der Scripte wie Du sie brauchst. Im Beispiel hier wird /media/sda1 verwendet. Die Partition sollte mindestens einen freien Platz von 5 GB zum remastern einer CD und 20 GB zum remastern einer DVD haben.
  • Das erste Script macht alle notwendigen Vorarbeiten:
#! /bin/sh
# krhowto_1
# Path to partition you will work on
PFAD="/media/sda1"
START=$(date +'%s')
# Disable screensaver
xscreensaver-command -exit
# One sub-directory will be used for the Master-CD
mkdir -p $PFAD/knx/master
cd $PFAD/knx
# You will need a swapfile
dd if=/dev/zero of=swapfile bs=1M count=500
mkswap swapfile ; swapon swapfile
# Make a sub-directory for the source
mkdir -p $PFAD/knx/source/KNOPPIX
echo "Copy the KNOPPIX files to your source directory."
echo "This will take a long time!"
cp -rp /KNOPPIX/* $PFAD/knx/source/KNOPPIX
# Additionally, copy the files to build the ISO later
rsync -aH --exclude="KNOPPIX/KNOPPIX*" /mnt-system/* $PFAD/knx/master
# gunzip inital RAM-disk
mkdir -p $PFAD/knx/minirt/minirtdir
cp $PFAD/knx/master/boot/isolinux/minirt.gz $PFAD/knx/minirt/
cd $PFAD/knx/minirt/
gunzip minirt.gz
cd minirtdir
cpio -imd --no-absolute-filenames < ../minirt
# Enable screensaver
su knoppix -c "xscreensaver -nosplash &"
echo -e "\nFinished! Used time: $(expr $(expr $(date +'%s') - $START) / 60) min. \
  and $(expr $(expr $(date +'%s') - $START) % 60) sec."

Einrichten der chroot-Umgebung

  • Benutze dies Script bevor in die chroot-Umgebung gewechselt wird:
#! /bin/sh
# krhowto_2
# Path to partition you will work on
PFAD="/media/sda1"
# To use the Internet add your nameserver into the chroot folder
cp /etc/resolv.conf $PFAD/knx/source/KNOPPIX/etc/resolv.conf
# Allow X-based programs in chroot
[ -e $PFAD/knx/source/KNOPPIX/home/knoppix/.Xauthority ] \
   && rm $PFAD/knx/source/KNOPPIX/home/knoppix/.Xauthority
cp /home/knoppix/.Xauthority $PFAD/knx/source/KNOPPIX/home/knoppix
chown knoppix:knoppix $PFAD/knx/source/KNOPPIX/home/knoppix/.Xauthority
# prepare enviroment for chroot
mount --bind /dev $PFAD/knx/source/KNOPPIX/dev
mount -t proc proc $PFAD/knx/source/KNOPPIX/proc
mount -t sysfs sysfs $PFAD/knx/source/KNOPPIX/sys
mount --bind /dev/pts $PFAD/knx/source/KNOPPIX/dev/pts
mount --bind /tmp $PFAD/knx/source/KNOPPIX/tmp
Top

Arbeiten in der chroot-Umgebung

  • Jetzt das "chroot" zur Kopie von KNOPPIX:
 chroot /media/sda1/knx/source/KNOPPIX
  • Bedenke, daß alles, was Du hier in der chroot-Umgebung machst, auf die CD gebrannt werden wird.
  • Innerhalb des chroot können auch X-basierte Programme ausgeführt werden, wenn man sie von der Kommandozeile im Terminal aus startet.
  • Tippe "su knoppix" ein, um zum Benutzer "knoppix" zu werden; verwende Strg+D, um wieder "root" zu sein.
  • Aktualisiere zuerst die Paketliste mit: apt-get update
    • Warnung: apt-get upgrade ist eine schlechte Idee. Es ist ziemlich wahrscheinlich, daß ein nicht mehr bootbares remastert KNOPPIX zurück bleibt, oder es sonstwie zerstört ist. Sicherer ist es, nur für einzelne Pakete ein Upgrade zu machen, wenn es wirklich nötig ist.
    • Bevor man weitere Pakete installiert, wird es erforderlich sein, stattdessen andere Pakete zu löschen.
  • Um eine Übersicht über die installierten Pakete zu erhalten, kann kn-what benutz werden, welches unter anderen auch eine Liste nach Dateigröße liefert.

Verlassen der chroot-Umgebung

  • Verwende Strg+D, um die chroot-Umgebung zu verlassen; dann dies Script ausführen:
#! /bin/sh
# krhowto_3
# Path to partition you will work on
PFAD="/media/sda1"
for i in dev/pts proc sys dev tmp; do
  umount $PFAD/knx/source/KNOPPIX/$i
done
sed -i '2,$d' $PFAD/knx/source/KNOPPIX/etc/resolv.conf

Arbeiten außerhalb der chroot-Umgebung

  • Wenn man ein andersartiges Startverhalten von Knoppix möchte, kann man Änderungen in '/media/sda1/knx/master/boot/isolinux/isolinux.cfg' eintragen:
    • Ersetze zum Beispiel überall 'tz=localtime' mit 'tz=Europe/Berlin'
  • In dieser Datei kann man auch Cheatcodes anfügen, welche man immer braucht:
    • Hänge zum Beispiel 'no3d' (ohne ' ') an jede Append-Zeile an, wenn man nicht Compiz 3d mag.
  • Lies knoppix-cheatcodes.txt durch. Die neuste Version davon ist immer hier Mirrors zu finden.
  • In '/media/sda1/knx/source/KNOPPIX/etc/X11/Xsession.d/45knoppix' findet sich, welches Wallpaper Knoppix benutzt und welchen Startsound.
  • In '/media/sda1/knx/source/KNOPPIX/etc/init.d/knoppix-halt' ist der Hinweis, was beim shutdown zu hören ist.
  • Erstelle die Datei '/media/sda1/knx/master/KNOPPIX/knoppix.sh' neu und trage hier Dienste ein, welche man zusätzlich starten möchte.
Top

ISO erstellen

  • Wir sind jetzt fertig mit den Anpassungen und bereit zum brennen:
#! /bin/sh
# krhowto_4
# Path to partition you will work on
PFAD="/media/sda1"
START=$(date +'%s')
# Disable screensaver
xscreensaver-command -exit
# Build new inital RAM-disk
cd $PFAD/knx/minirt/minirtdir/
find . | cpio -oH newc | gzip -9 > ../minirt.gz
cp $PFAD/knx/minirt/minirt.gz $PFAD/knx/master/boot/isolinux/
# Make the big compressed filesystem KNOPPIX
genisoimage -input-charset ISO-8859-15 -R -l -D -V KNOPPIX_FS -quiet \
  -no-split-symlink-components -no-split-symlink-fields \
  -hide-rr-moved -cache-inodes $PFAD/knx/source/KNOPPIX \
  | /usr/sbin/create_compressed_fs -q -B 65536 -t 8 -L 9 \
  -f $PFAD/knx/isotemp - $PFAD/knx/master/KNOPPIX/KNOPPIX
# Update the file hashes used by the "testcd" boot option
cd $PFAD/knx/master ; find -type f -not -name \
  sha1sums -not -name boot.cat -not \
  -name isolinux.bin -exec sha1sum '{}' \; > KNOPPIX/sha1sums
# Create new Knoppix ISO
genisoimage -l -r -J -V "KNOPPIX" \
  -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 \
  -boot-info-table -c boot/isolinux/boot.cat \
  -o $PFAD/knx/remasterd.iso $PFAD/knx/master
# Enable screensaver
su knoppix -c "xscreensaver -nosplash &"
echo -e "\nFinished! Used time: $(expr $(expr $(date +'%s') - $START) / 60) min. \
  and $(expr $(expr $(date +'%s') - $START) % 60) sec. \
  \n\nThe new ISO is stored in '$PFAD/knx/remastered.iso' "
Top

ISO testen ohne eine CD zu brennen

  • kvm-qemu

Wenn der Prozessor Virtualization unterstützt und wenn dies im BIOS aktiviert ist, kannst Du die neue ISO mit kvm-qemu testen. Prüfe auf Support mit:

egrep '(vmx|svm)' --color=always /proc/cpuinfo

Wenn das Ergebnis "vmx" ist, gib

modprobe kvm-intel

andernfalls, wenn das Ergebnis "svm" ist, gib

modprobe kvm-amd

ein, um das kvm Modul zu laden. Jetzt kann das Iso getestet werden mit:

kvm -m 512 -cdrom $PFAD/knx/remastered.iso
  • VirtualBox

Alternativ kann das neue ISO mit VirtualBox geprüft werden.


Sieh auch:

Top