Bootfähige CDs waren lange Zeit eines der größten Probleme des CD-Mastering; nachdem einige Anwendungs- und Betriebssystemcds mit diesem Feature auf den Markt kamen (u.a. Windows NT 4.0 und Windows 98 OEM), wurde dieses Verfahren allgemein interessant.
Bootfähige CDs können als verläßlicher Ersatz für Bootdisketten dienen, die auch bei schonender Handhabung häufig nach kurzer Zeit defekt sind. Weiterhin sind Disketten schon seit Jahren zu klein, um auch nur übliche Diagnoseprogramme mit sich zu führen; es wird deshalb immer häufiger nötig, Tools auf CD zu brennen. Wenn diese ohnehin auf CD mitgeführt werden, ist es sinnvoll, diese CDs gleich startfähig zu gestalten, um die Tools auch bei nicht mehr startenden Rechnern nutzen zu können.
Mit dem Multiboot-Paket möchte ich unter Nutzung frei verfügbarer Software eine leicht nutzbare Lösung bieten, um auf einfache Weise bootfähige CDs mit einer oder mehreren Systemkonfigurationen erstellen zu können. Eine Einsatzmöglichkeit ist z.B. an das Programm GHOST, das mit TCP/IP-Netzwerkunterstützung arbeitet. Hier muß für jede genutzte Netzwerkkarte eine getrennte Bootdiskette erstellt werden; mit Hilfe des Multiboot-Paketes finden diese gemeinsam auf einer CD Platz.
Wenn die fertige CD beim Start im Laufwerk liegt, wird nach der Startmeldung des Bios ein übersichtliches Menü angezeigt, in dem der Benutzer unter bis zu 9 alternativen Bootimages auswählen kann. Nach Auswahl von "1" bis "9" wird von dem jeweiligen Diskettenimage gebootet, das fortan als Laufwerk A: angesprochen wird, die Festplatten stehen in gewohnter Weise zur Verfügung.
Auf der CD können neben den Diskettenabbildern noch normale Daten im sog. "ISO"-Teil enthalten sein, dieser Teil ist ganz normal als CD-Rom ansprechbar und wird als Laufwerk Q: angeboten.
Das Paket besteht aus div. Programmen zur Erstellung von CDs und einigen von mir geschriebenen Batchdateien, die den Umgang mit den Programmen automatisieren.
Auf dem zur Erstellung benutzten Rechner müssen vorhanden sein:
- Windows 95, 98 oder 98SE. ME, NT und 2000 sind nur eingeschränkt nutzbar. DOS wird nicht unterstützt, auch wenn die Programme alle auf der Kommandozeile laufen.
- CD-Brenner
- Aspi-Treiber (95, 98 und ME enthalten bereits einen ASPI-Treiber, bei NT und 2000 muß er gesondert bezogen werden. Bezugsquellen sind zum einen Adaptec, zum anderen die Hersteller von SCSI-Controllern. Eine Anleitung zur Installation des ASPI-Treibers von Adaptec ist auf www.brennmeister.com erhältlich.
- Voraussetzung zur Nutzung der CDs auf anderen Rechnern ist, daß das Bios in der Lage ist, CDs nach dem sog. El-Torito-Standard zu booten und dies auch eingestellt ist. Bei Rechnern, die ab ca. 1996 gebaut wurden, kann hiervon ausgegangen werden. Ich habe meine Lösung auf Rechnern mit Ami-, Award- und Phoenixbios getestet, all diese Maschinen unterstützten die hier genutzten Techniken. Bei vielen Rechnern ist das Starten von einer CD jedoch in den Bios-Settings noch nicht eingeschaltet, hier muß ggfs. eine sog. Boot-Order "CDROM,A,C", "CDROM,C,A" oder "A,CDROM,C" eingestellt werden.
Auch die meisten Rechner mit SCSI-Controllern unterstützen den sog. El-Torito-Standard, hier muß die Unterstützung teilweise aber erst im Controllerbios eingeschaltet werden, z.B. bei Adaptec ist das der Fall.
Zum Testen der bootfähigen CDs empfehle ich besonders am Anfang, auf einen CD-RW-Rohling zu brennen. Erfahrungsgemäß ist bei solchen CDs der erste Versuch noch nicht befriedigend, die wiederbeschreibbaren RW-Rohlinge sparen hier erhebliche Kosten.
Entpacken Sie die ZIP-Datei in ein neues Verzeichnis auf einer Platte mit ausreichend Platz - es muß etwa doppelt soviel frei sein, wie an Daten auf die CD gebrannt wird. Ich habe c:\create gewählt, dieses Verzeichnis wird ab sofort Projektverzeichnis genannt. Das Verzeichnis sollte hinterher wie folgt aussehen:
Verzeichnis von C:\create
. <DIR> 27.11.00 0:19 .
.. <DIR> 27.11.00 0:19 ..
ADDFLO~1.BAT 625 26.11.00 23:58 addfloppy.bat
AUTOEXEC.BAT 32 26.11.00 22:34 AUTOEXEC.BAT
cdrecord.exe 226.812 26.11.00 20:02 cdrecord.exe
CONFIG .SYS 73 26.11.00 22:34 CONFIG.SYS
cygwin1 .dll 623.104 22.11.00 3:03 cygwin1.dll
DEMUMGR .COM 738 07.11.00 0:33 DEMUMGR.COM
disk1 <DIR> 26.11.00 23:37 disk1
ELTORITO.SYS 3.819 14.11.00 0:45 ELTORITO.SYS
LOADDSKF.EXE 14.168 26.11.00 23:38 LOADDSKF.EXE
make .exe 116.224 18.01.00 4:17 make.exe
makefile 3.060 26.11.00 20:40 makefile
MAKEFL~1.BAT 714 26.11.00 22:42 makefloppy.bat
mkbootcd.exe 49.152 26.10.00 13:21 mkbootcd.exe
mkbootcd.new 896 26.11.00 23:59 mkbootcd.new
mkbootcd.txt 896 26.11.00 23:59 mkbootcd.txt
mkisofs .exe 399.034 25.11.00 23:28 mkisofs.exe
newcd .bat 188 27.11.00 0:05 newcd.bat
readme .txt 0 26.11.00 22:46 readme.txt
savedskf.exe 12.402 26.11.00 23:39 savedskf.exe
20 Datei(en) 1.583.588 Bytes
3 Verzeichnis(se) 2.143,88 MB frei
--------------------------------------------------------------
Anschließend muß die Datei "makefile" angepaßt werden. Sie enthält die Zeile
cdrdevice :=1,0,0
Mit cdrdevice wird angegeben, welche SCSI-Bus-Adresse der Brenner hat. Ein IDE-Brenner kann die Adressen 0,0,0 (Master am ersten Kanal), 0,1,0 (Slave am ersten Kanal), 1,0,0 (Master am zweiten Kanal), 1,1,0 (Slave am zweiten Kanal) haben. Bei SCSI sind weitere Werte möglich, mit cdrecord -scanbus werden alle vorhandenen Geräte als Tabelle mit SCSI-Bus-Adresse angezeigt.
Die cygwin1.dll, sh.exe, mkisofs.exe und cdrecord.exe können in das Windows-Verzeichnis kopiert werden, sie stehen dann allgemein zur Verfügung. Diese Programme bieten noch weitere Möglichkeiten, ihre Bedienung will aber erarbeitet sein, weil es sich um Kommandozeilenprogramme mit einer erheblichen Befehlsfülle handelt.
Die Nutzung des Multibootpaketes ist recht einfach und erfolgt in vier Schritten:
Das Multibootpaket arbeitet mit einer zentralen Beschreibungdatei namens mkbootcd.txt, in der Anweisungen für das Programm mkbootcd.exe enthalten sind. Wir müssen die Syntax dieser Datei nicht näher erläutern, weil die Datei automatisch gepflegt wird. Sie muß am Anfang durch den Aufruf newcd.bat erzeugt werden. Tun Sie dies nur einmal, da bei einem weiteren Aufruf wieder eine leere Liste erstellt wird und die Informationen über die bereits erstellten Images nicht mehr enthalten sind!
Es können grundsätzlich beinahe alle bootfähigen Disketten mit CD-Treiber genutzt werden. Wenn Sie noch keine fertigen geeigneten Disketten haben, können Sie mittels makefloppy.bat eine geeignete Bootdiskette erstellen lassen. Diese enthält alle benötigten Daten und wird unter Verwendung von Dateien Ihrer installierten Windowsversion erstellt. Aus Urheberrechtsgründen kann ich keine Systemdateien beifügen. Dieses Verfahren hat den Vorteil, daß die Diskette exakt der von Ihnen genutzten Windowsversion entspricht. makefloppy.bat ist nicht unter Windows ME, NT oder 2000 nutzbar, weil hier die benötigten Dateien im Betriebsssytem nicht zur Verfügung stehen. Auf den mit makefloppy.bat erzeugten Disketten ist noch ca. 1 Megabyte frei, so daß weitere Dateien hinzukopiert werden können. Es empfiehlt sich, bei Bedarf die Dateien AUTOEXEC.BAT und CONFIG.SYS anzupassen, um eigene Programme und Treiber zu installieren. Achtung: Der installierte CD-ROM-Treiber ELTORITO.SYS funktioniert nur, wenn er von einer bootfähigen CD geladen wird; wenn die Diskette "normal" gebootet wird, läuft er nicht. Wenn Sie diese Einschränkung beim Testen nicht akzeptieren wollen, können Sie stattdessen einen oder mehrere herkömmliche CD-Rom-Treiber installieren, z.B. den oakcdrom.sys aus dem windows\command\ebd-Verzeichnis von Windows 98.
Wenn die Diskette(n) wunschgemäß funktionieren, müssen sie in eine sog. Abbilddatei eingelesen werden und im Bootmenü der CD eingetragen werden. Dieser Arbeitsschritt wird von addfloppy.bat automatisiert. Addfloppy wird mit folgender Syntax aufgerufen:
ADDFLOPPY <Imagename> <Bezeichnung> (z.B. ADDFLOPPY DISK1.IMA Windows 98 Bootdisk)
Wenn schon ein Image mit dem gewählten Namen existiert oder keine Bezeichnung eingegeben wurde, bricht ADDFLOPPY mit einer Fehlermeldung über die Ursache ab.
Die Schritte 4.2 und 4.3 müssen jetzt für jede gewünschte Bootdiskette wiederholt werden. Es können insgesamt 9 Bootdisketten auf einer CD kombiniert werden.
Sie können auch zwischendurch den Rechner neu starten, um die Disketten zu testen, die bisherigen Projekteinstellungen bleiben vollständig erhalten.
Wenn die Diskettenimages aufgenommen sind, können Sie weitere Dateien und auch ganze Ordner in das Verzeichnis DISK1 hineinkopieren. Diese Dateien werden Ihnen im gestarteten Rechner dann als normale CD-Rom-Dateien auf dem hierfür gewählten Laufwerksbuchstaben (Q: bei der Standarddiskette von MAKEFLOPPY.BAT) zur Verfügung stehen.
Zum Schluß muß das Programm "make" vom aktuellen Projektverzeichnis aus ausgeführt werden. Es wird zunächst MKISOFS.EXE aufrufen und aus den gesamten Daten im Verzeichnis DISK1\ eine sog. ISO-Datei erstellen lassen. Anschließend startet es MKBOOTCD.EXE, das unter Zuhilfenahme der Projektdatei MKBOOTCD.TXT die für den Bootmenübetrieb erforderlichen Änderungen an der ISO-Datei vornimmt. Zum Schluß wird CDRECORD.EXE ausgeführt, das die ISO-Datei auf einen Rohling schreibt. Die ISO-Datei kann danach gelöscht werden, sie wird bei jedem erneuten Aufruf aus den Daten in DISK1\ neu erstellt.
Wenn die CD noch einmal geändert werden soll, und ein RW-Rohling benutzt wurde, kann dieser durch "make empty" automatisch schnell gelöscht werden, danach steht er für einen neuen Versuch zur Verfügung.
Nach dem Brennen kann im Projektverzeichnis die Datei mycd.iso gelöscht werden, sie ist für weitere Versuche nicht mehr nötig.
NEWCD: Hiermit wird ganz am Anfang die Imageliste initialisiert. Nach dem Aufruf von NEWCD ist die Liste zunächst leer, nun können die Images hinzugefügt werden.
ADDFLOPPY: Mit dieser Batchdatei wird automatisiert eine Diskette ausgelesen und als Image der CD hinzugefügt. Beim Aufruf müssen immer ein Name für die zu erzeugende Diskettenimagedatei und eine höchstens 22 Zeichen lange Bezeichnung für die Anzeige im Menü angegeben werden. Es empfiehlt sich, die Diskettenimages zur Übesichtlichkeit mit der Endung .ima anzulegen. Ein Beispiel für den Aufruf:
ADDFLOPPY DISK1.IMA Windows 98-Standardbootdiskette
MKISOFS: Ein der GPL unterliegendes Programm, das aus den Dateien in einem Verzeichnis ein sog. "ISO"-Image erzeugt. Das ISO-Image enthält praktisch die gesamten Daten der zu schreibenden CD, und kann von einem Brennprogramm auf die CD geschrieben werden. MKISOFS wird vom BootCD-Paket automatisch aufgerufen, seine Aufrufparameter müssen daher nicht geläufig sein.
CDRECORD: Ein ursprünglich aus der Unix-Welt stammendes GPL-Programm, das Daten- oder Audio-CDs schreiben kann. Es wird hier benutzt, um die ISO-Datei auf die CD zu brennen. Auch CDRECORD wird automatisch aufgerufen, so daß seine Aufrufparameter hier nicht erklärt werden.
CYGWIN1.DLL: Diese DLL wird von MKISOFS und CDRECORD benötigt, damit sie unter Windows arbeiten können. Sie gehört zum CYGWIN-Projekt, einer kompletten Entwicklungsumgebung, mit der man viele Unixprogramme auf den PC portieren kann. Die CYGWIN1.DLL in diesem Paket hat die Version 1.1.5 und entspricht damit dem Entwicklungsstand November 2000, ich habe die Kompatibilität mit früheren Versionen der DLL nicht getestet. CYGWIN ist freie Software, die komplette Version kann auf cygwin.redhat.com heruntergeladen werden, ist hier aber nicht erforderlich.
MKBOOTCD: Dieses Programm von O. Imaizumi und Bert Lagerweij modifiziert die ISO-Datei nachträglich, um die für das Booten benötigten Informationen einzutragen. MKISOFS hat zwar ebenfalls Support für bootfähige CDs, aber nicht mit den hier eingesetzten fortgeschrittenen Möglichkeiten.
MAKE: Ebenfalls ein Bestandteil des CYGWIN-Projektes, es dient hier zur automatisierten Abwicklung der CD-Erstellung. Dazu arbeitet es die Angaben in der Datei MAKEFILE ab. MAKE wird zum Schluß die Programme MKISOFS, MKBOOTCD und CDRECORD selbständig aufrufen, wir müssen uns daher nicht mit dem relativ erdrückenden Funktionsumfang dieser Programme auseinandersetzen. Make kann mit dem Aufruf "make empty" auch einen RW-Rohling löschen.
SAVEDSKF: Ein von IBM kostenlos erhältliches Programm, mit dem von einer Diskette eine Abbilddatei erstellt wird.
MKISOFS und CDRECORD werden von Jörg Schilling unter der GPL entwickelt, ich danke Ihm an dieser Stelle für dieses universell einsetzbare und technisch sehr mächtige Paket, zu dem noch weitere Tools gehören. Das gesamte Paket sowie die Sourcen sind auf ftp://ftp.fokus.gmd.de/unix verfügbar.
ELTORITO.SYS, BOOTEMU.BIN und DEMUMGR.COM stammen von Gary Tong, g.t@mailandnews.com . Die aktuellen Versionen können jederzeit unter http://www.geocities.com/iopat heruntergeladen werden. Es handelt sich um Tools, die noch in der Entwicklung sind und die kontinuierlich verbessert werden.
MKBOOTCD stammt von Bart Lagerweij, seine Homepage auf http://www.nu2.nu/bootcd enthält neben der neuesten Programmversion noch eine große Anzahl von Alternativen um kompliziertere CDs zu erstellen, insbesondere bietet er noch die Möglichkeit, Varianten der NT- und Windows 2000-Installations-CD zu erstellen. Diese Möglichkeiten wurden hier weggelassen, um das Paket handlich und überschaubar zu halten.
Dank auch an Uwe Engel, der mir half, ein Problem bei Systemen ohne installiertes CYGWIN-Paket zu entdecken :-)
Dieses Paket ist eine erste Version und kann noch Fehler enthalten, ganz sicher enthält es noch Verbesserungsmöglichkeiten. Ich bitte daher um konstruktive Kritik :-) mailto:Detlev.Rackow@gmx.de
Im November 2000,
Detlev Rackow