weidner -> computer -> linux -> cd-rom-router
Stand: 2001-01-21
(2000-11-14)

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

  1. YAMAMORI Takenori; Linux CD-ROM Game System http://www15.big.or.jp/~yamamori/sun/tech-linux-2/index_e.html

  2. W. Richard Stevens; Advanced Programming in the UNIX Environment; Addison-Wesley, 1992

  3. Robin Miyagi; LINUX ASSEMBLER TUTORIAL http://www.geocities.com/SiliconValley/Ridge/2544/asm/linux-asm.txt