Linux CD-ROM Router
Worum es geht
Ich will einen Linux-Router bauen, der ohne Festplatte von CD-ROM aus läuft. Das Linux Router Project liefert schon einen sehr guten Router auf nur einer Diskette, doch ich will die Bequemlichkeit einer Distribution nicht missen. So kann ich bei der Software auf fertige Pakete einer Distribution zurückgreifen, ebenso bei Security-Updates. Änderungen an der Konfiguration sollen auf eine (Boot-)Diskette geschrieben werden, die nebenbei als Boot-Image auf der CD-ROM funktioniert.
Als Ausgangsbasis verwende ich RedHat (6.2) und den Artikel von YAMAMORI Takenori. Letzterem folge ich im Wesentlichen bei diesem Projekt.
Das System besteht aus den drei Komponenten RAM-Disk (/), Bootdiskette mit Konfigurationsdaten (/mnt/floppy) und CD-ROM mit Programmen (/mnt/cdrom). Ein Image der Bootdiskette befindet sich auf der CD-ROM und wird verwendet, wenn keine Floppy im Diskettenlaufwerk steckt.
Basissystem aufsetzen
Zunächst wird ein Linux-System aufgesetzt, das die für den Router verwendeten Pakete enthält. Sinnvoll ist es, dieses auf einer eigenen Partition unterzubringen (dann kann man bequem testweise den Rechner damit starten).
Mein Basissystem befindet sich unter /home/isoimages/cd-rom-router.
Dorthin habe ich mit cp -arx ... das aktuelle System kopiert.
Anschließend wechsle ich mit chroot /home/isoimages/cd-rom-router
in dieses System und entferne mit rpm die überflüssigen Packages.
Nur-Lese-Modus
Damit das System von CD-ROM funktioniert, muß das Filesystem, wie
hier beschrieben, angepaßt werden.InitRD
Der CD-ROM-Router startet mit einer speziell angepaßten initialen RamDisk. Was diese enthält, wird
hier beschrieben.Bootdiskette
Die erzeugte InitRD wird in einer angepassten Bootdiskette verwendet,
die zum Starten von CD-ROM bzw. bei Systemen, die nicht via CD-ROM
starten als Startdiskette erforderlich ist. Außerdem enthält diese
Bootdiskette die benötigten Dateien des Konfigurationsverzeichnisses
&/;etc. Ist eine Änderung der Konfiguration notwendig, so kann das
Image der Bootdiskette mit dd auf eine Diskette kopiert und
anschließend angepaßt werden. Diese Diskette kann dann zum Starten des
Routers verwendet werden sowie zum Erstellen einer neuen CD-ROM.
Verwendung
Der CD-ROM-Router kann komplett von der CD-ROM betrieben werden, wenn
der Rechner von CD-ROM starten kann. Andernfalls kann die Datei
boot.img im Rootverzeichnis der CD mit dd auf Diskette kopiert werden und
der Rechner mit dieser als Bootdiskette gestartet werden.
Muß die Konfiguration geändert werden, wird eine Bootdiskette wie oben beschrieben erzeugt und diese beim Start des Rechners eingelegt (der Rechner kann von CD-ROM starten, die Diskette wird trotzdem eingelesen). Nun kann die Konfiguration auf der Diskette geändert werden, beim nächsten Start ist die geänderte Konfiguration verfügbar.
Um die geänderte Konfiguration auf CD zu brennen, wird die
Bootdiskette mit dd über die Datei boot.img kopiert (auf dem
Rechner, mit dem die CD erzeugt wurde). Anschließend wird mit mkisofs
ein neues Image erzeugt und mit cdrecord gebrannt. Fertig.
Referenzen
- YAMAMORI Takenori; Linux CD-ROM Game System http://www15.big.or.jp/~yamamori/sun/tech-linux-2/index_e.html
- W. Richard Stevens; Advanced Programming in the UNIX Environment; Addison-Wesley, 1992
- Robin Miyagi; LINUX ASSEMBLER TUTORIAL http://www.geocities.com/SiliconValley/Ridge/2544/asm/linux-asm.txt