Difference between revisions of "Knoppix Remastering Howto Deutsch"


From Knoppix Documentation Wiki
Jump to: navigation, search
 
 
(98 intermediate revisions by 34 users not shown)
Line 1: Line 1:
----
+
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.
=== Dies ist ein Leitfaden wie man KNOPPIX remastert ===
+
(zu beachten: jeder Befehl erstreckt sich nur über '''eine''' Zeile -> Eventuell das Fenster vergrößern. 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]].
+
== 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>
* insgesamt mindestens 1GByte freien RAM+Swap (z.B. 256MBytes RAM und 750M Swap-Bereich VERFÜGBAR)
+
(außer du benutzt andere Kompressions-Werkzeuge - siehe Ende der Seite)
+
=== Arbeiten in der chroot-Umgebung ===
* 3 GBytes freien Speicher auf der Festplatte
+
* 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 [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 ===
 +
* 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.
  
* Booten von der Knoppix CD
+
<center>[[#top|Top]]</center>
* Konfigurieren deiner Internet-Verbindung ( die brauchen wir später noch )
+
* Öffne eine shell ( KDE-Menü->Knoppix->Root Shell ) - alle weiter unten stehenden Befehle sollten von der root-Shell aufgerufen werden
+
* Erzeuge 2 Verzeichnisse auf der Partition, eines für deine neue Master CD und eines für die Sourcen. Außerdem solltest du kontrollieren, dass die Partition schreib- und lesbar gemountet ist.
+
(z.B. wenn du eine leere 3GByte Partition /mnt/hda4 schreib- und lesbar gemountet hast, dann führe den Befehl '''mkdir /mnt/hda4/knxmaster; mkdir /mnt/hda4/knxsource''' aus)
+
* '''mkdir /mnt/hda4/knxsource/KNOPPIX''' ( ersetzte das /mnt/hda4 durch deine gemountete Partition )
+
''' jetzt kopiere die KNOPPIX-Dateien mit '''cp -Rp /KNOPPIX/''' /mnt/hda4/knxsource/KNOPPIX''' in dein Source-Verzeichnis (das wird jetzt ein wenig dauern :)
+
* '''mkdir /mnt/hda4/knxmaster/KNOPPIX'''
+
* '''cp /cdrom/index.html /mnt/hda4/knxmaster/ '''
+
* und jetzt kopiere alles von /cdrom/KNOPPIX/ nach /mnt/hda4/knxmaster/KNOPPIX/ ''' außer''' die ~700 MByte große KNOPPIX Datei.
+
  
* Jetzt kannst du das kopierte KNOPPIX-Verzeichnis zum Wurzelverzeichnis machen: '''chroot /mnt/hda4/knxsource/KNOPPIX'''
+
== 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' "
  
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 Scripte leiten aber die Ausgabe nach /dev/null um ... Um dieses Problem zu umgehen sollte man die Partition anders mounten bevor man chroot ausführt:
+
<center>[[#top|Top]]</center>
mount /dev/hda12 /mnt/hda12
+
Und das hat sich geändert:
+
mount /dev/hda12 on /mnt/hda12 type ext3 (rw)
+
  
Wenn der obrige Befehl nicht geht probiere:
+
== ISO testen ohne eine CD zu brennen ==
  mount -t ext3 -o rw /dev/hda12 /mnt/hda12
+
* 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.
* chroot ist jetzt ausgeführt und das Verzeichnis "/" enspricht jetzt "/mnt/hda4/knxsource/KNOPPIX"
+
----
* Um ins Internet zu kommen muß man noch proc mounten: '''mount -t proc /proc proc'''
+
* jetzt editiert man /etc/resolv.conf und trägt seinen Nameserver ein
+
* Wenn man smbd Unterstützung haben will, sollte man auch die Arbeitsgruppe in der Datei smb.conf editieren: (MSHOME unter XP Home ed. und WORKGROUP unter 9x Windows 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 muß man eventuell andere entfernen, um Platz zu machen. Mit '''apt-get remove "program"'''  kann man das Programm entfernen.
+
* Änderungen durchführen... Benutzereinstellungen sind in /etc/skel, ggf. muss man auch noch in /etc/X11/Xsession.d/45xsession das rsync-Kommando anpassen
+
* ...
+
* Unmounte /proc - sehr wichtig! '''umount /proc'''
+
* Drücke  '''CTRL+D''' um die chroot Umgebung zu verlassen.
+
 
+
==== Notizen : ====
+
Interessantes aus der /etc/init.d/knoppix-autoconfig Datei:
+
Das X Hintergrundbild ist /cdrom/KNOPPIX/background.gif
+
Genauso wie floppyconfig gibt es auch ein cdromconfig welches die Datei /cdrom/KNOPPIX/knoppix.sh ausführt (siehe [[Cheat CodesDeutsch]])
+
Interessantes aus der /etc/init.d/xsession Datei:
+
Auch hier ist ein Hintergrundbild eingetragen: /usr/local/lib/knoppix.gif
+
 
+
Und jetzt zum erzeugen der ISO-Datei
+
 
+
* Wir sind fertig mit den Änderungen und bereit zum Brennen!
+
* Als erstes sollte man etwas aufräumen: ''' lösche .bash_history files, tmp files, package files unter /var/cache/apt/archives, etc ... '''
+
* '''rm -rf /mnt/hda4/knxsource/KNOPPIX/.rr_moved'''
+
* Jetzt mach 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/hda4/knxsource/KNOPPIX | nice -5 /usr/bin/create''compressed''fs - 65536 > /mnt/hda4/knxmaster/KNOPPIX/KNOPPIX'''
+
 
+
Das "www.knoppix.net" und "Knoppix.net filesystem" kann man natürlich ändern. Jetzt sollte eine Meldung erscheinen, daß es nicht den ISO-Standards entspricht. Diese Meldung kann man irgnorieren
+
 
+
* wenn alles glatt verlaufen ist dann können wir mit dem engültigen CD-ROM Image weitermachen:
+
* '''cd /mnt/hda2/knxmaster'''
+
* '''rm -f KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums''' (das aktualisiert die md5-Hashes der Dateien in dem iso, um später die Integrität prüfen zu können)
+
* für Knoppix <= 3.3: '''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 /some/where/knoppix.iso /mnt/hda2/knxmaster''' ( ersetze /some/where/ mit dem Ort wo das fertige Image abgelegt werden soll. )
+
* 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 /some/where/knoppix.iso /mnt/hda2/knxmaster''' ( ersetze /some/where/ mit dem Ort wo das fertige Image abgelegt werden soll. )
+
* Fertig!
+
 
+
=== Tipps ===
+
Ohne großen Aufwand das erstellte ISO testen, insbesondere ohne neu zu booten? Kein Problem mit Qemu ( [http://fabrice.bellard.free.fr/qemu/] )! Versuche es etwa so: '''qemu -m 128 -cdrom /temp/knoppix-custom.iso -boot d -user-net''' Man muss nicht einmal ein HD-Image vorher erstellen, einfach Qemu installieren und los geht's. Erstaunlich!
+
 
+
Wenn man nach großen Programmen sucht, dann kann der Befehl
+
: dpkg-awk "Status: .* installed$" -- Package Installed-Size| awk '{print $2}' |\
+
egrep -v '^$' | xargs -n2 echo | perl -pe 's/(\S+)\s(\S+)/$2 $1/' | sort -rg
+
hilfreich sein. Er listet alle Pakete absteigend sortiert nach Größe auf.
+
 
+
dpkg-awk "Status: .* installed$" -- Package Installed-Size| awk '{print $2}' |\
+
egrep -v '^$' | xargs -n2 echo | perl -pe 's/(\S+)\s(\S+)/$2 $1/' | sort -rg
+
das ist nicht vorhanden hier...
+
 
+
Wenn du Probleme mit dem obigen Sortierbefehl hast, dann probier mal KPackage aus, expandiere alle Verzeichnisbaume und sortiere das Ganze nach der Größen-Spalte um große Pakete zu finden.
+
 
+
Man kann auch das Programm "deborphan" ausprobieren. Es sucht nach "verwaisten" Paketen, die nicht mehr gebraucht werden, weil z.B. die Programme die sie benötigen schon gelöscht worden sind.
+
 
+
Ich habe sehr gute Remaster-Ergebnisse unter fluxbox erzielt.
+
Beim Booten einfach "knoppix 2" eintippen und in der Kommandozeile '''startx /usr/bin/fluxbox''' starten. Ich mag besonders die XTerm Unicode Shell.
+
 
+
Während ich in der chroot Umgebung arbeite, benutze ich '''apt-get remove pkg-name''' um ein Paket zu entfernen, weil es bevor es das Paket entfernt, detailiert anzeigt, welche Abhänigkeiten bestehen, und dann abfragt, ob das Paket wirklich entfernt werden soll.
+
Später säubere ich meine Paketliste:
+
'''dpkg -l |grep ^rc''' und alles was angezeigt wird, starte ich mit dpkg -P pkg-name".
+
 
+
; oder so in einem Schritt : COLUMNS=100 dpkg --purge `dpkg -l | grep ^rc | awk '{ print $2 }'`
+
so bekommt auch die langen Packetnamen mit!
+
 
+
Das wars. Dies ist die upgedatete Version meines vorigen Howtos. Es ist nicht für Linuxneulinge geeignet, weil man sich etwas besser mit Linux auskennen muss um hier weiterzukommen.
+
Ich werde dieses Howto regelmäßig erweitern, wenn ich Korrekturen/Verbesserungen bekomme (gilt nur für die englische Version)
+
 
+
Ein Danke an aay, charan, Tech2k, und #knoppix für einige Korrekturen, Tipps und Ideen
+
Fühle dich frei Beiträge zu diesem Howto hinzuzufügen oder auszubessern.
+
 
+
Notiz über swap:<br>
+
Man braucht nicht wirklich 1GByte swap/mem, weil es ein paar neue Programme für komprimierte Dateisysteme gibt:
+
* Valentijns rewrite [http://projects.openoffice.nl/downloads/compressloop/]
+
* Justins patch [http://s.bouncybouncy.net/~justin/code/]
+
 
+
Wenn mein Howto zu verwirrend ist, oder du eine zweite Meinung hören willst, schau dich mal auf charan's Remastering-Howto um: [http://gnubox.dyndns.org:8080/~sunil/knoppix.php] . Ein weiteres Howto ist unter  [http://www.stirnimann.com/mystuff/doc/knoppix.txt] zu finden .
+
 
+
Anmerkung an den Autor:
+
 
+
"benutze ich '''apt-get remove pkg-name''' um ein Paket zu entfernen"
+
 
+
Warum benutzt du nicht direkt '''apt-get --purge remove pkg-name''' ? (gestellt von Fabian Franz <knx-remaster@fabian-franz.de>)
+
<<<<<<< Your version
+
 
+
#  Als erstes sollte man etwas aufräumen:  lösche .bash_history files, tmp files, package files unter /var/cache/apt/archives, etc ...
+
 
+
Also hier würde ich für /var/cache/apt/archives, apt-get clean oder apt-get autoclean benutzen. also zusatz zu deborphan wäre auch debfoster noch erwähnenswert.
+
Korrektur: apt-get clean apt-get autoclean
+
 
+
 
+
 
+
 
+
''Frage:''
+
 
+
Wieso ist bei mir nach einem neu komprimieren des KNOPPIX images, die datei
+
am ende immer etwa 20MB grösser als das original, ohne das ich was neues
+
installiert habe? mein vorgehen:
+
 
+
#booten von knoppix
+
#kopieren von /KNOPPIX/*
+
#danach direkt wieder komprimieren und das image KNOPPIX ist 20MB grösser
+
  
gunnar pieber gustl@gmx.nit
+
Sieh auch:
 +
* [http://www.wp-schulz.de/summary/summary-remaster Remaster Knoppix without chroot]
 +
* [http://www.wp-schulz.de/summary/summary-recombine Recombine Knoppix flash installation]
  
''Antwort:''
+
<center>[[#top|Top]]</center>
  
Teste folgenden, auf größe ausgerichteten, Aufruf
+
[[Category: Remastering Knoppix ]]
: mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix.net" \
+
: -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda4/knxsource/KNOPPIX |\
+
: nice -5 /usr/bin/create''compressed''fs '''-b''' - 65536 > /mnt/hda4/knxmaster/KNOPPIX/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