![]() |
Sonstiges:
|
|
| |
| E-Mail: | |
|---|---|
| Homepage-URL: |
Bei Fragen zu diesem Beitrag bitte den Autor des Beitrags kontaktieren!
Es gibt nicht nur im
SELFHTML-Forum gelegentlich sehr spezifische Nachfragen zu den unterschiedlichen Plattformen. Das gibt es in diversen anderen Foren und Boards auch, und selbstverständlich in Dutzenden von Newsgroups. Was im
SELFHTML-Forum gefragt wird, bezieht sich häufig auf spezielle Installationsprobleme mit Linux, und wenn man antworten möchte, muß in der Regel erst einmal herausgefunden werden, welche Distribution der Fragesteller meint, welche Version davon bzw. auf welchen Kernel er aufsetzt - und welches Installationsmedium genutzt wird. Gegenüber den Microsoft-Systemen (na gut, Windows2003Server bekommt man auch nicht in jedem Computerladen zu kaufen) zeichnen sich die Linux-Distributionen dadurch aus, daß es sie fast alle zum freien Download im Internet gibt.Im Handel kann man eventuell grade mal eine SuSE erwerben, aber selbst die Berliner Universitätsbuchhandlung in der Nähe des Alexanderplatzes hat sie nicht auf Lager, sondern vermittelt sie allenfalls auf Kundenwunsch. Die "Bezugsquelle" für Linux ist also das Internet, und alle Linux-Distributionen können auch sehr zuverlässig über FTP installiert werden. Das lohnt sich aber erst, wenn auch ein schneller Anschluß (DSL) zur Verfügung steht, sonst dauert es quälend lange und wird zudem aufgrund der Verbindungskosten teuer.
Gelegentlich gibt es auch Rechner, die keinen oder eben keinen einigermaßen effektiven Internetanschluß haben. Dann besorgt man sich die CDs eben von jemandem, der jemanden kennt, der die ISO-Dateien ziehen kann und entsprechende CDs brennt. Und dann geht es los: CD1 einlegen, wieder rausnehmen, CD2 einlegen, rausnehmen, CD1 nochmal einlegen, CD3 einlegen ... das nervt irgendwann.
Oder man hat sich beispielsweise eine SuSE gekauft, aber die (doppelseitige) DVD1 ist defekt oder bootet nicht richtig. Man bräuchte eine neue stabile DVD, nur lohnt es sich nicht, deswegen nochmals das ganze Paket zu kaufen. Dann sucht man nach Wegen, aus den ja bereits vorhandenen CDs eine eigene DVD zusammenzusetzen, nur leider funktioniert irgendwas nicht, wenn man einfach bloß "additiv" vorgeht und die vorhandenen CDs (oder ISO-Dateien) zu einer neuen großen DVD zusammenklebt. Die DVD bootet nicht, oder das distributionsspezifische Installationstool findet die benötigten Dateien bzw. Pakete nicht oder bricht irgendwann mitten im Installationsvorgang mit unerklärlichen Fehlermeldungen ab ...
Dieser Artikel erläutert an zwei Beispielen (SuSE Linux und Fedora Core) einen methodischen Weg, wie aus mehreren vorhandenen CDs oder ISO-Files eine bootfähige DVD erstellt werden kann, so daß die beabsichtigte Systeminstallation von dieser DVD reibungslos ablaufen kann.
Ein zur Zeit handelsüblicher Rechner genügt vollends. Er sollte über einen PentiumIII-Prozessor (oder höher) verfügen oder über einen Prozessor mit mindestens gleicher Durchlaßfähigkeit, und je mehr RAM, desto besser - 256 MB sollten heute die Minimalausstattung sein. Bei niedrigerer Leistungsfähigkeit klappt das Verfahren trotzdem, läßt dann aber sehr viel Zeit, zwischendurch drei Kannen Kaffe zu leeren oder die Freundin bzw. den Freund zu besuchen. Zudem muß genügend Plattenkapazität vorhanden sein, um die ISO-Files zu speichern bzw. Kopien der CDs aufzunehmen. Eine freie Partition von mindestens 10 Gigabyte ist dringend zu empfehlen. Und selbstverständlich ist ein einigermaßen kompetenter DVD-Brenner erforderlich, damit die neue DVD dann auch auf einen Datenträger gebrannt werden kann. Aber auch so ein Gerät gehört heute nahezu zur Grundausstattung.
Das Verfahren, das beschrieben werden soll, hat die Erstellung einer bootfähigen Linux-System-DVD zum Ziel. Es versteht sich eigentlich von selbst, daß es auch auf einem bereits vorhandenen Linux-System durchgeführt werden soll, wobei allerdings egal ist, welche Distribution eingesetzt wird. Mit Windows geht es prinzipiell auch, dazu gibt es
weiter unten ein paar Anmerkungen.
Das Wichtigste ist, daß mkisofs zur Verfügung steht. Alles andere, was benötigt wird, sind Konsolenbefehle wie cp und cat, die es auf jedem Linux gibt (cat gibt es unter Windows nicht). Und ein Packprogramm wie tar, das *.gz-Archive auslesen und neu erzeugen kann. In KDE ist ein Packer namens ark integriert, der nahezu dasselbe tut wie sein Pendant WinZip unter Windows - unter Windows genügen WinZip, oder besser noch WinRaR. mkisofs wird in der Regel von jeder "Standard"-Installation zur Verfügung gestellt, ist es nicht vorhanden, muß man lediglich irgendeines der CD-Brenn-Tools installieren. Zum Brennen braucht man zusätzlich eventuell noch ein geeignetes Programm wie cdrecord - wer partout nicht auf eine grafische Oberfläche wie KDE verzichten kann, kann dafür auch k3b nehmen. Da sind mkisofs und cdrecord als Abhängigkeiten dabei und stehen also zur Verfügung.
Fast überflüssig, zu erwähnen, daß auch ein Texteditor benötigt wird. Das kann natürlich vi sein - oder joe oder ee oder nano, je nach Distribution, und wer es gerne unter Zuhilfenahme von KDE probieren möchte, kann sich mindestens zwischen kwrite und kate entscheiden.
Die Anlaufstelle für diverse ISO-Files im Internet ist wahrscheinlich
http://www.linuxiso.org/. Die Adresse ist im allgemeinen sehr gut gepflegt, allerdings sind nicht immer alle Distributionen auf dem wirklich aktuellen Stand. Macht nichts. Jedes einmal installierte Linux enthält auch eine Option bzw. ein Softwarepaket, mit dem sich die Installation nachträglich auf den aktuellsten möglichen Stand bringen läßt - vorausgesetzt, die Internetverbindung funktioniert.
Selten gibt es in einem Rechner mehr als ein CDROM-Laufwerk. Mancher hat tatsächlich ein DVD- bzw. CDROM-Laufwerk und zusätzlich einen Brenner, in der Regel ist aber bloß eines dieser Geräte vorhanden und das genügt ja auch völlig. Wenn es jetzt darum gehen sollte, aus fünf SuSE-CDs eine neue DVD zusammenzuschrauben, ist man aufgeschmissen, weil eben nicht mehr als zwei CDs gleichzeitig eingelegt werden können. Daher sollten auch dann, wenn man aus einem vorhandenen CD-Satz eine DVD erstellen möchte, diese CDs zuerst entweder unmittelbar auf die Platte kopiert (wobei sie übrigens die eventuell vorhandene Bootfähigkeit verlieren) oder in ISO-Files umgewandelt werden, wozu man bereits mkisofs einsetzen kann, beispielsweise für die 5 SuSE-CDs:
erste CD in /dev/cdrom einlegen ... mount /dev/cdrom mkisofs -o SuSE_10_CD1.iso -R /dev/cdrom umount /dev/cdrom
Damit wird die in /dev/cdrom (das Laufwerk kann unter Umständen auch etwas anders heißen) liegende CD unter dem neuen Namen SuSE_10_CD1.iso auf die Platte kopiert. Dasselbe wird danach für die restlichen CDs wiederholt. Im restlichen Artikel wird grundsätzlich davon ausgegangen, daß die CDs auf diesem Weg in ISOs umgewandelt wurden oder nach einem Download auf der Festplatte zur Verfügung stehen.
Sind diese sehr geringen Voraussetzungen geklärt, kanns nun endlich losgehen.
Das eigentliche Problem bei der Zusammenstellung einer DVD aus mehreren ISOs liegt nicht so sehr darin, die Verzeichnisstruktur korrekt nachzubilden und die Sourcen zu übernehmen. Das würde sich mit einem einfachen Ineinanderkopieren auch erledigen lassen. Aber auf den CDs, DVDs bzw. ISOs liegen in bisweilen gleichnamigen Verzeichnissen oder Dateien auch Listen der Prüfsummen (MD5SUMS), und mkisofs kann keine gleichnamigen Dateien in ein und dasselbe Verzeichnis kopieren. Dazu kommt, daß das distributionsspezifische Installationstool (bei einer SuSE ist das YaST) im Bootverzeichnis der ersten CD liegt und dort auch seine Konfiguration erhält - es erkennt nur die erste CD und verlangt in der Regel nach Abarbeitung der entsprechenden Dateiliste, daß die zweite CD eingelegt wird, selbst wenn sich sämtliche benötigten Quellpakete inzwischen auf derselben DVD befinden. Es geht also darum, vor dem Herüberkopieren der Sourcen die Listen mit den Prüfsummen für die neue DVD korrekt zu schreiben und vor allem geht es darum, das Installationstool dazu zu bewegen, daß es die neue DVD auch als DVD anerkennt und alle darauf liegenden Quellpakete ansprechen kann. Am kompliziertesten scheint das bei der SuSE zu sein, daher wurde diese Distribution als erstes Beispiel gewählt.
Seit Mitte 2005 gibt es mit dem Projekt
OpenSuSE endlich eine Möglichkeit, sich SuSE-ISO-Files über das Internet herunterzuladen. Einige wenige kommerzielle Pakete sind in dieser Distribution nicht enthalten, aber die benötigt man auch nicht unbedingt. Im Downloadangebot fehlt jedoch eine DVD. Also liegt es nahe, sich aus den fünf CDs bzw. ISO-Files eine eigene DVD zusammenzustellen.
cd / mkdir susedvd cd susedvd mkdir CD1 CD2 CD3 CD4 CD5 i586 i686 noarch
Damit wird zunächst ein (temporäres) Verzeichnis für die nachfolgenden Arbeitsschritte angelegt, der Name ist Ermessenssache. Innerhalb dieses Verzeichnisses werden fünf Unterverzeichnisse für die zuvor kopierten oder heruntergeladenen ISOs angelegt sowie drei weitere Verzeichnisse entsprechend der Struktur der originalen CDs, in denen es Dateien mit den bereits angesprochenen Prüfsummenlisten gibt. Auch andere Unterverzeichnisse enthalten Prüfsummenlisten, jedoch können sie einfach kopiert werden, da das Problem der Namensgleichheit auf den verschiedenen CDs nur für die drei angegebenen Unterverzeichnisse i686, i586 und noarch besteht.
Die ISOs werden zuerst in die Verzeichnisse CD1...CD5 gemountet:
mount -t iso9660 -o loop,ro /SuSE_10_CD1.iso CD1 mount -t iso9660 -o loop,ro /SuSE_10_CD2.iso CD2 mount -t iso9660 -o loop,ro /SuSE_10_CD3.iso CD3 mount -t iso9660 -o loop,ro /SuSE_10_CD4.iso CD4 mount -t iso9660 -o loop,ro /SuSE_10_CD5.iso CD5
Das Problem mit den Prüfsummenlisten läßt sich erstaunlich schnell und unkompliziert erledigen. Dazu müssen lediglich die auf den verschiedenen CDs liegenden gleichnamigen Dateien ausgelesen und ineinanderkopiert werden, was der Konsolenbefehl cat in einem Schritt erledigen kann. Zu beachten ist, daß alles immer ohne Umbruch in einer Zeile auf der Konsole eingetippt werden muß, für das hier angegebene Beispiel sind die Umbrüche lediglich aus Gründen der Übersichtlichkeit notiert worden. Insgesamt sind es drei verschiedene Aufrufe von cat, die erledigt werden müssen:
cat CD1/suse/i586/MD5SUMS CD2/suse/i586/MD5SUMS
CD3/suse/i586/MD5SUMS CD4/suse/i586/MD5SUMS
CD5/suse/i586/MD5SUMS > i586/MD5SUMS
cat CD1/suse/i686/MD5SUMS CD2/suse/i686/MD5SUMS
CD3/suse/i686/MD5SUMS CD4/suse/i686/MD5SUMS
> i686/MD5SUMS
(auf CD5 gibt es kein Verzeichnis i686)
cat CD1/suse/noarch/MD5SUMS CD2/suse/noarch/MD5SUMS
CD3/suse/noarch/MD5SUMS CD4/suse/noarch/MD5SUMS
CD5/suse/noarch/MD5SUMS > noarch/MD5SUMS
Jetzt liegen die neuen Prüfsummenlisten in den vorhin neu angelegten Unterverzeichnissen auf der Festplatte und können von dort aus später in die neue DVD eingelesen werden.
Etwas schwieriger und arbeitsaufwendiger sieht es mit der Konfiguration des Installationstools aus. Zuerst einmal wird allerdings noch das Bootverzeichnis der ersten CD benötigt:
cp -a CD1/boot .
Zu beachten ist der Punkt an letzter Stelle des Kopierbefehls. Auch in diesem Bootverzeichnis gibt es eine Konfigurationsdatei, die in boot/loader liegt und isolinux.cfg heißt. Sie bestimmt die Einträge, die im "Startmenü" der DVD erscheinen sollen und kann bei Bedarf weitgehend angepaßt werden.
YaST, das SuSE-eigene Installations- und Konfigurationstool, liest insgesamt vier Dateien aus, um sich zu orientieren, auf welchen Medien welche Quellpakete zu finden sind. Diese vier Dateien werden mit den nächsten vier Konsolenbefehlen ebenfalls aus der ersten CD bzw. ISO herauskopiert und im neuen Verzeichnis abgelegt - bitte wieder auf die Punkte achten:
cp -a CD1/suse/setup/descr/packages . cp -a CD1/ARCHIVES.gz . cp -a CD1/INDEX.gz . cp -a CD1/ls-lR.gz .
Und jetzt gibt es etwas Arbeit. Die Datei "packages" ist eine einfache Textdatei. Sie wird nun mit einem beliebigen Texteditor geöffnet. Ihr Inhalt besteht aus Informationen über Abhängigkeiten, Lizenzen, Autorennamen, Größe und eben auch den auf dem Medium zu suchenden Ablageort - CD1, CD2 oder CDx. Die entsprechenden Zeilen sehen so aus:
=Loc: 1 3ddiag-0.716-108.i586.rpm =Loc: 4 FOTAQ-20040315-11.i586.rpm
Hier müssen jetzt alle Zeichenfolgen =Loc: x durch =Loc: 1 ersetzt werden, da es schließlich nur noch ein Installationsmedium in Form der neuen DVD geben soll.
Die anderen drei Dateien sind komprimierte Archive, die zunächst mit einem geeigneten Werkzeug entpackt werden müssen. Ihr Inhalt besteht aus jeweils einer Textdatei, wobei die entpackte Datei "ARCHIVES" einen beachtlichen Umfang aufweist. In allen drei Dateien gibt es ebenfalls Verweise auf den Ablageort der Sourcen. Ähnlich wie in der eben korrigierten Datei "packages" muß dafür gesorgt werden, daß sämtliche Zeichenfolgen CDx durch CD1 ersetzt werden - in der Datei "ARCHIVES" sind das mehrere hunderttausend, so daß diese Korrektur ein Weilchen dauern kann. Nach der Korrektur werden die Dateien wieder komprimiert, wobei sie dieselbe Dateigröße wieder erhalten müssen, die sie vor der Korrektur hatten.
Diese Korrekturarbeiten müssen sehr sorgfältig ausgeführt werden, da YaST sonst unter Umständen nicht alles findet, was man gern haben möchte.
Irgendwann hat man das aber geschafft, und nun geht es nur noch darum, die neue DVD aus allen vorhandenen Quellen - den korrigierten Dateien, dem extrahierten Bootverzeichnis sowie den gemounteten ISOs - zusammenzustellen.
Für die Zusammenstellung der neuen DVD wird nur ein einziger Konsolenbefehl benötigt. Allerdings ist die Zahl der mitzunotierenden Optionen und Parameter erheblich, so daß man sehr sorgsam alles eintippen muß. Alles steht unmittelbar hintereinander in einer Zeile und ist hier nur etwas anders notiert worden, um entsprechende Erläuterungen einfügen zu können:
mkisofs -o SuSE_10.iso -b boot/loader/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -P SuSE -r -V SuSE_10
Erläuterungen:
mkisofs: der Name des aufgerufenen Programms
-o SuSE_10.iso: der Name der zu erstellenden ISO-Datei
-b boot/loader/isolinux.bin: macht die DVD bootfähig mit (dem üblichen) isolinux.bin
-no-emul-boot: es wird bei einer Installation keine Emulation erstellt, sondern der Inhalt der ISO ohne Umweg auf die Platte geschrieben
-boot-load-size 4: das BIOS soll später vier jeweils 512 byte große Sektoren für die Bootdatei bereitstellen
-boot-info-table: beim Bootvorgang sollen Informationen über das DVD-Layout berücksichtigt werden
-joliet-long: es werden lange Dateinamen (bis 130 Zeichen) erlaubt
-P SuSE: der Name des Herausgebers (SuSE)
-r: setzt alles auf lesbar
-V SuSE_10: der Name für das zu erstellende Volume
Weiter geht es mit:
-x CD1/boot -x CD1/ARCHIVES.gz -x CD1/INDEX.gz -x CD1/ls-lR.gz -x CD1/suse/setup/descr/packages -x CD1/suse/i586/MD5SUMS -x CD1/suse/i686/MD5SUMS -x CD1/suse/noarch/MD5SUMS -x CD2/suse/i586/MD5SUMS -x CD2/suse/i686/MD5SUMS -x CD2/suse/noarch/MD5SUMS -x CD3/suse/i586/MD5SUMS -x CD3/suse/i686/MD5SUMS -x CD3/suse/noarch/MD5SUMS -x CD4/suse/i586/MD5SUMS -x CD4/suse/i686/MD5SUMS -x CD4/suse/noarch/MD5SUMS -x CD5/suse/i586/MD5SUMS -x CD5/suse/noarch/MD5SUMS
Erläuterung:
-x ist ein ausschließender Parameter, der nichts anderes bewirkt, als die damit gekennzeichneten Dateien beim Kopiervorgang zu ignorieren. Schließlich sind das die Dateien, deren Inhalte vorhin korrigiert wurden und die daher nicht in ihrer "alten" Form übernommen werden können. Genau diese korrigierten Dateien werden mit den nächsten Parametern von der Platte wieder ausgelesen und in die DVD geschrieben, nachdem die erste CD mit Ausnahme der ausgeschlossenen Dateien komplett übernommen wurde. Im Grunde genommen geht es also jetzt erst richtig los mit dem Zusammenstellen der DVD:
-graft-points CD1 boot/=boot ARCHIVES.gz=ARCHIVES.gz INDEX.gz=INDEX.gz ls-lR.gz=ls-lR.gz suse/setup/descr/packages=packages suse/i586/MD5SUMS=i586/MD5SUMS suse/i686/MD5SUMS=i686/MD5SUMS suse/noarch/MD5SUMS=noarch/MD5SUMS
Nun fehlen nur noch die Quellpakete der restlichen vier ISOs, die jetzt einfach "additiv" in das "suse"-Verzeichnis übernommen werden:
suse/=CD2/suse suse/=CD3/suse suse/=CD4/suse suse/=CD5/suse
Und das wars dann. Ein einigermaßen leistungsfähiger Rechner (z.B. PentiumIV mit 2,6 GHz und 1 GB RAM) läßt das Ganze in etwa zwei Minuten durchrattern, so daß im Anschluß ein neues ISO-File "SuSE_10.iso" vorliegt. Die Größe liegt bei etwa 3,3 GB. Diese ISO-Datei kann nun mit einem beliebigen Brennprogramm weiterverarbeitet werden (das geht auch unter Windows mit Nero), so daß man dann endlich die gewünschte DVD in der Hand hält.
Hier ist der gesamte Konsolenbefehl noch einmal "am Stück", wie er auch ohne jeden Umbruch auf der Konsole eingetippt werden muß:
mkisofs -o SuSE_10.iso -b boot/loader/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -P SuSE -r -V SuSE_10 -x CD1/boot -x CD1/ARCHIVES.gz -x CD1/INDEX.gz -x CD1/ls-lR.gz -x CD1/suse/setup/descr/packages -x CD1/suse/i586/MD5SUMS -x CD1/suse/i686/MD5SUMS -x CD1/suse/noarch/MD5SUMS -x CD2/suse/i586/MD5SUMS -x CD2/suse/i686/MD5SUMS -x CD2/suse/noarch/MD5SUMS -x CD3/suse/i586/MD5SUMS -x CD3/suse/i686/MD5SUMS -x CD3/suse/noarch/MD5SUMS -x CD4/suse/i586/MD5SUMS -x CD4/suse/i686/MD5SUMS -x CD4/suse/noarch/MD5SUMS -x CD5/suse/i586/MD5SUMS -x CD5/suse/i686/MD5SUMS -x CD5/suse/noarch/MD5SUMS -graft-points CD1 boot/=boot ARCHIVES.gz=ARCHIVES.gz INDEX.gz=INDEX.gz ls-lR.gz=ls-lR.gz suse/setup/descr/packages=packages suse/i586/MD5SUMS=i586/MD5SUMS suse/i686/MD5SUMS=i686/MD5SUMS suse/noarch/MD5SUMS=noarch/MD5SUMS suse/=CD2/suse suse/=CD3/suse suse/=CD4/suse suse/=CD5/suse
Das eben vorgestellte Verfahren läßt sich nicht unverändert auch auf die ältere SuSE Linux 9.1 anwenden. Bei dieser vorangegangenen SuSE gab es eine andere Verteilung der Verzeichnisse "i686", die auf den CDs 1, 3 und 5 lagen. Daraus ergeben sich folgende Veränderungen:
Die "vorbereitenden Schritte" sind dieselben. Jedoch gab/gibt es für SuSE 9.1 keine downloadbaren ISO-Files, so daß man sich diese ISOs erst, wie ganz oben beschrieben, von den vorhandenen CDs erstellen muß. Unter "Prüfsummen korrigieren und Installationstool konfigurieren" sieht der erste cat-Befehl etwas anders aus:
cat CD1/suse/i686/MD5SUMS CD3/suse/i686/MD5SUMS CD5/suse/i686/MD5SUMS > i686/MD5SUMS
Die beiden anderen cat-Befehle sind jedoch wiederum dieselben und auch die anderen Schritte (Korrektur der *.gz-Archive) sind identisch. Für den abschließenden Aufruf von mkisofs, mit dem die ISO-Datei erstellt wird, gibt es aber kleine Verschiebungen bei den Parametern, so daß er für SuSE Linux 9.1 so aussieht:
mkisofs -o SuSE_9_1.iso -b boot/loader/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -P SuSE -r -V SuSE_9_1 -x CD1/boot -x CD1/ARCHIVES.gz -x CD1/INDEX.gz -x CD1/ls-lR.gz -x CD1/suse/setup/descr/packages -x CD1/suse/i586/MD5SUMS -x CD1/suse/i686/MD5SUMS -x CD1/suse/noarch/MD5SUMS -x CD2/suse/i586/MD5SUMS -x CD2/suse/noarch/MD5SUMS -x CD3/suse/i586/MD5SUMS -x CD3/suse/i686/MD5SUMS -x CD3/suse/noarch/MD5SUMS -x CD4/suse/i586/MD5SUMS -x CD4/suse/noarch/MD5SUMS -x CD5/suse/i586/MD5SUMS -x CD5/suse/i686/MD5SUMS -x CD5/suse/noarch/MD5SUMS -graft-points CD1 boot/=boot ARCHIVES.gz=ARCHIVES.gz INDEX.gz=INDEX.gz ls-lR.gz=ls-lR.gz suse/setup/descr/packages=packages suse/i586/MD5SUMS=i586/MD5SUMS suse/i686/MD5SUMS=i686/MD5SUMS suse/noarch/MD5SUMS=noarch/MD5SUMS suse/=CD2/suse suse/=CD3/suse suse/=CD4/suse suse/=CD5/suse
Die hier zusammengestellten Konsolenbefehle sind kein Script. Es ist jedoch möglich, den gesamten Arbeitsablauf in ein Script zu verwandeln, was lediglich für die Korrektur der *.gz-Archive etwas knifflig werden kann. Wer sich trotzdem so ein Shellscript zusammenbasteln möchte, findet unter
http://www.taclug.org/pipermail/taclug-general/2003-May/006809.html ein (schon etwas älteres) Beispiel, wie sich scriptgesteuert ein FTP-Download inclusive DVD-Erstellung einrichten läßt.
Nicht nur die erste CD ist bei einer SuSE-Distribution bootfähig, sondern auch die zweite. Sie weist jedoch dasselbe Startmenü auf wie die erste CD und enthält den Bootsektor nur zur Sicherheit, falls von der ersten nicht gebootet werden kann. Es ist also kein Problem, wenn die Bootoption der zweiten CD nicht mehr ansprechbar ist. Wird eine DVD nach dem hier beschriebenen Verfahren zusammengestellt, geht nichts von dem verloren, was sich auf den CDs befand. Die Dateien INDEX.gz und ls-lR.gz sind auf allen fünf CDs vorhanden. Da sie aber identisch sind, also den absolut gleichen Inhalt haben, genügt es, diese beiden Dateien von der ersten CD zu korrigieren und auf der DVD einzusetzen. Ebenso identisch sind auf allen CDs der Copyright-Hinweis sowie die unter dem Namen COPYING abgelegte Kopie der GNU. Unterschiedlich sind dagegen die "media.x"-Verzeichnisse auf den CDs. Der Wegfall dieser Verzeichnisse mit Ausnahme von "media.1" ist aber glücklicherweise folgenlos. Es ist auch nicht nötig, die Datei "media" innerhalb des "media.1"-Verzeichnisses in irgendeiner Weise anzupassen.
Für Bastler ist die vorgestellte Methode noch auf andere Weise interessant. Wie jedes andere Linux wird auch die SuSE beständig entwickelt, so daß es paradoxerweise häufig auf den FTP-Servern bereits Updates gibt, noch ehe die aktuelle Distribution offiziell erschienen ist - was jetzt ungefähr alle halben Jahre geschieht. In der Regel sind das Sicherheits-Bugfixes oder kleinere Updates, bisweilen aber auch große Pakete wie die Kernelsourcen. Oder aber: man möchte zusätzlich - da ja ein bißchen Platz auf der DVD verblieben ist - noch irgendwelche anderen, offiziell nicht zur Distribution gehörenden Sourcen dazugeben. Das ist prinzipiell möglich, bedeutet jedoch auch, solche zusätzlichen Pakete in den Prüfsummenlisten und in der "packages"-Datei einzutragen. Bastelei eben. Aber man kann sich auf diese Weise eine DVD zusammenstellen, die aktueller ist als die für ihre Zusammenstellung verwendeten Quell-CDs.
Zwar gibt es ein paar Mirrors, die eine Fedora-DVD zum Download anbieten, aber zugleich sind diverse Foren voll mit Nachfragen, warum man da trotz andersartiger Größenangabe eine nur ca. 80 MB große ISO bekommt, die dann, wenn man von ihr zu installieren versucht, nach dem Einlegen der CDs verlangt. Es bleibt also vorläufig gar nichts anderes übrig, als sich eben die vier ISOs zu besorgen und, wenn man denn schonmal dabei ist, daraus eine DVD zu basteln. Der Download-Link steht
weiter unten.
Fedora hat ein anderes CD-Layout als die SuSE, so daß sich das bisherige Beispiel nicht unverändert übernehmen läßt. Das Vorgehen ist allerdings grundsätzlich dasselbe.
cd / mkdir fedoradvd cd fedoradvd mkdir CD1 CD2 CD3 CD4 mount -t iso9660 -o loop,ro /FC4-i386-disc1.iso CD1 mount -t iso9660 -o loop,ro /FC4-i386-disc2.iso CD2 mount -t iso9660 -o loop,ro /FC4-i386-disc3.iso CD3 mount -t iso9660 -o loop,ro /FC4-i386-disc4.iso CD4
Bei den bisherigen Fedora-Ausgaben (Core 1 bis Core 4) gibt es das Problem mit den Prüfsummen nicht. Man kann daher auf das Extrahieren und Korrigieren von MD5SUMS-Dateien getrost verzichten, das macht den Tippaufwand deutlich geringer. Trotzdem verlangt "anaconda" (das ist der Fedora-Installer) nach den verschiedenen CDs, man muß also doch ein wenig korrigierend eingreifen. Aber Fedora macht es gegenüber der SuSE sehr einfach.
cp -a CD1/isolinux . cp -a CD1/.discinfo .
Das Bootverzeichnis heißt hier "isolinux". Es enthält unter anderem einen Bootkatalog mit dem Namen boot.cat, der aus dem extrahierten Verzeichnis gelöscht werden kann - er könnte mit einer zusätzlichen mkisofs-Option neu angelegt werden, ist aber schlicht überflüssig.
Die Datei .discinfo (bitte auf den Punkt am Beginn des Dateinamens achten) enthält unter anderem die Angabe, auf welche Medien der Installer zurückgreifen soll. Ihr Inhalt sieht folgendermaßen aus:
1118112246.471975
Fedora Core 4
i386
1
Fedora/base
Fedora/RPMS
Fedora/pixmaps
Davon ist nur die vierte Zeile mit der einsamen Ziffer 1 interessant. Diese Zeile wird geändert, so daß sie neu so aussieht:
1,2,3,4
Der Konsolenbefehl ist deutlich weniger umfangreich als bei der oben dargestellten SuSE-DVD.
mkisofs -o FedoraC4.iso -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -P Fedora -r -T -V FedoraC4
Erläuterungen:
Die Parameter sind dieselben, die bereits oben kurz erläutert wurden - mit einer Ausnahme:
-T : in ausnahmslos jedem Verzeichnis wird eine Datei "TRANS.tbl" erstellt. Vorhandene Dateien werden überschrieben.
Hinweis: Der Schalter -T ist wichtig, da es auf den Fedora-ISOs überall diese TRANS.tbl-Dateien gibt, die mit Hilfe dieses Schalters aktualisiert werden können, ohne daß man jede einzelne Datei aufsuchen und manuell korrigieren muß.
-x CD1/isolinux -x CD1/.discinfo
Erläuterung:
Das ist der bereits bekannte Ausschluß des Bootverzeichnisses und der alten Informationsdatei für den Installer.
-graft-points CD1 isolinux/=isolinux .discinfo=.discinfo Fedora/=CD2/Fedora Fedora/=CD3/Fedora Fedora/=CD4/Fedora
Und das war der gesamte Rest. Die neue DVD wird etwas über 2 GB groß und kann nun gebrannt werden. Bitte nicht vergessen, daß der gesamte Konsolenbefehl für mkisofs unbedingt hintereinanderweg in einer Zeile geschrieben werden muß.
Es kann ja nun durchaus vorkommen, daß jemand "nur" einen Windows-Rechner zur Verfügung und sich mit etwas Zeitaufwand eben mal ein paar ISOs gezogen hat, um vielleicht eines Tages "umzusteigen". Da ist dann die Nachfrage, ob das hier vorgestellte Verfahren auch unter Windows anwendbar ist, berechtigt.
Die gute Nachricht ist: ja, prinzipiell geht das auch mit Windows. Allerdings hat man die benötigten Instrumente normalerweise nicht zur Verfügung, vor allem fehlt mkisofs. Man muß sich jedoch keine komplette Cygwin-Linux-Emulation mit eventuell mehreren hundert MB Plattenplatz einrichten oder gar eine kostspielige VMWare-Installation vornehmen. mkisofs ist Bestandteil eines kleinen Pakets namens cdrtools, das man sich von
ftp://ftp.berlios.de/pub/cdrecord/alpha/win32 downloaden kann. Für den Konsolenbefehl cat gibt es aber kein Pendant unter Windows, was jedoch nicht so bedeutend ist, da derselbe Vorgang auch mit einem Texteditor erledigt werden kann. Problematisch wird die Korrektur der in den *.gz-Archiven enthaltenen Dateien. Einfach deswegen, weil man dazu einen Editor braucht, der die Ersetzungen automatisieren kann. Notepad kann das nicht. Zu empfehlen wäre für diese Aufgabe als Editor Textpad, das man sich in einer Shareware-Version von
http://www.textpad.com/download/index.html besorgen kann. Dieser Editor läßt es auch zu, Textdateien im "UNIX-Format" zu speichern, was hier unabdingbar ist.
Ebenfalls problematisch ist die korrekte "Rückverwandlung" in das Archivformat. Zum Glück genügt WinZip für diese Aufgabe. Der beispielsweise entstehende Name "ARCHIVES.zip" kann problemlos zu "ARCHIVES.gz" korrigiert werden, der Kompressionsalgorithmus ist derselbe. Und schließlich muß man auf die Größe der entstehenden ISO-Datei achten. Eine FAT32-Partition kann nicht mit Dateien umgehen, die größer als 4 GB werden. Das ist zwar bei den hier vorgestellten Beispielen nicht der Fall, kann aber bei anderen Distributionen (z.B. Debian, das aus sieben CDs bzw. ISOs besteht) leicht passieren.
Darüberhinaus läßt sich eine ISO-Datei unter Windows nicht einfach mounten. Aber auch dafür gibt es einen Ausweg mit dem kleinen Programm daemontools, das von
http://www.daemon-tools.cc/dtcc/portal/portal.php heruntergeladen werden kann. Es erlaubt bis zu vier virtuelle CDROM-Laufwerke. Der Inhalt von ISO-Images läßt sich auch mit WinRaR darstellen und nötigenfalls extrahieren, wer es etwas komfortabler haben möchte, kann sich das Tool WinImage von
http://www.winimage.com besorgen.
SuSE-Webseite:
http://www.suse.de
SuSE-Supportdatenbank:
http://portal.suse.de/sdb/de/index.html
SuSE-FTP-Server:
ftp://ftp.suse.com/pub/suse/i386
Fedora-Webseite:
http://fedora.redhat.com
Fedora-ISO-Downloadseite:
http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/iso
Newsgroup:
de.comp.os.unix.linux.misc
© 2007
Impressum, für diese Seite:
christoph.schnauss@berlin.de