
Optionales Packet bootCD v.0.2 fuer fli4l 2.0.3a

  Inhaltsverzeichnis:

   1. Einleitung
   2. Veraenderte Dateien (gegenueber fli4l Grundpaket)
   3. Benutzung
   4. Brennen der CD
   5. Fragen und Antworten (FAQs)
   6. Verwendete Dritt-Programme
   7. Verweise
   

  Einleitung

   Dieses optionale Paket fuer das [1]fli4l Projekt bietet einige Skripte
   sowie einige Dateiaenderungen, um statt einer Bootdiskette eine
   bootbare CD zu erstellen, mit der beispielsweise ein ISDN-Router
   betrieben werden kann.
   Ausser der Tatsache, dass eine CD erheblich mehr Speicherplatz als eine
   Diskette bietet, kommt hinzu, dass das Booten von einem relativ neuen
   CD-Laufwerk in der Regel auch erheblich schneller vonstatten geht,
   z.B. einige 10-30 Sekunden auch bei grossen Installationen statt of
   mehreren Minuten selbst bei minimalistischen Disketten-Installationen.
   Das Paket enthaelt ein etwas modifiziertes Root Dateisystem, welches
   die benoetigten Module enthaelt um auf die Daten der CD zuzugreifen
   (ide-cd.o bzw.cdrom.o fuer den eigentlichen Zugriff auf das CD Laufwerk
   und isofs.o fuer das darauf verwendete Dateisystem). Gegenwaertig werden
   nur ATAPI Laufwerke unterstuetzt (also solche, die am IDE-Bus
   angeschlossen werden) und keine SCSI-Laufwerke, da diese aufgrund der
   Vielzahl verschiedener SCSI-Kontroller erfordern wuerden, dass fuer jeden
   unterstuetzten Kontroller ein eigenes Module vorhanden sein muesste, was
   das Dateisystem wahrscheinlich sprengen wuerde.
   Darueberhinaus sind ATAPI-Laufwerke im Vergleich zu SCSI die billigere
   Alternative, was unter dem Gesichtspunkt, dass fli4l oft auf relativ
   alter, ausgedienter Hardware seinen Dienst versieht, besomnderes
   Gewicht erhaelt. Wer also das Booten von CD beabsichtigt und sich
   stolzer Besitzer eines SCSI CD-Laufwerks nennet, sollte besser in
   Erwaegung ziehen, irgenwo fuer wenige Euro ein ausgedientes ATAPI
   LAufwerk zu erwerben, statt das Root Dateisystem mit SCSI-Modules zu
   ueberfrachten.

  Veraenderte Dateien (gegenueber fli4l Grundpaket)

   Die Dateien in diesem Archiv sind angeordnet entsprechend dem
   Verzeichnisbaum des fli4l Projekts, allerdings wurden einige
   modifiziert:

   img/rootfscd.gz: 
     enthaelt die benoetigten Module fuer den Zugriff aufs CD
     Laufwerk, ein angepasstes Startscript (/etc/rc) und eine zusaetzliche
     Datei zum Laden der Module (/etc/modules.conf)

   img/syslinuxcd.cfg: 
     sylinux Konfiguration mit zusaetzlicher Angabe des CD-Laufwerks

   opt/etc/rc.local: 
     angepasst in Hinblick auf Einbindung der CD in die /etc/fstab

   mkclean.{sh|.bat}: 
     Aufraeumskripte, die auch die generierten CD Abbilddateien loeschen

   Wenn dieses Paket zusammen mit dem hd Paket verwendet werden soll (um
   eine anschliessende Festplatten-Installation durchzufuehren), so muss
   ebenfalls das Archiv hd_update.zip im Hauptverzeichnis entpackt
   werden. Es fuehrt notwendige Aenderungen an Dateien des hd Pakets durch
   und muss nach diesem entpackt werden.

   config/hd.txt Neue Option HDINSTALL_MOUNT_BOOT welche angibt, ob und
   wie das Boot-Laufwerk bei einer Festplatten-Installation in den
   Dateibaum eingebunden werden soll. (Fuer eine Festplatten-Installation
   muss MOUNT_BOOT in der Basiskonfiguration etc/base.txt zwingend auf
   'ro' oder 'rw' gesetzt werden, da ansonsten die notwendigen Dateien
   nicht gefunden werden. Falls dies aber nach der Installation auf
   Festplatte nicht mehr gewuenscht wird, kann durch Setzen von
   HDINSTALL_MOUNT_BOOT='no' erreicht werden, dass diese vorlaeufige
   Einstellung ueberschrieben wird.)
   config/hd.txt prueft ebenfalls die neue Option HDINSTALL_MOUNT_BOOT
   opt/hd.txt CD module wurden entfertm da sie sich bereits auf dem Root
   Dateisystem befinden muessen, um sofort nach dem Booten zur Verfuegung
   zu stehen.
   opt/files/usr/sbin/setup laesst auch Installation von Boot CD auf
   Festplatte zu.

  Benutzung

    1. Nach dem Entpacken des Archivs in den Dateibaum von fli4l, muessen
       die Konfigurationsdateien wie ueblich bearbeitet werden.
    2. (Optional) Soll das hd Paket mitverwendet werden, muss das Archiv
       hd_update.zip ebenfalls entpackt und konfiguriert werden, nachdem
       das Paket hd entpackt wurde. Einige Dateien werden dabei
       ueberschrieben, deswegen sollten sie vorher gesichert werden.
       Es existiert ein zusaetzlicher Parameter HDINSTALL_MOUNT_BOOT='no'
       (oder 'rw' oder 'ro'),
       welcher wie bereits oben beschrieben Prioritaet vor dem Parameter
       MOUNT_BOOT in config/base.txt besitzt. Der Grund hierfuer ist, dass
       bei der Installtion auf Festplatte der zwingend MOUNT_BOOT='ro' oder
       MOUNT_BOOT''rw' notwendig ist, damit benoetigte Dateien gefunden
       werden koennen. Die generierte Konfigurationsdatei befindet sich
       ebenfalls auf dem von diesem Parameter betroffenen Dateisystem und
       wuerde einfach mitkopiert werden, so dass es nicht moeglich waere, das
       Boot-Dateisystem nach der Installation auf Festplatte aus dem
       globalen Dateisystem auszuschliessen. Da HDINSTALL_MOUNT_BOOT den
       Parameter MOUNT_BOOT ueberschreibt, koennen unterschiedliche
       Verhaltensweisen vor und nach der Installation auf Festplatte
       gewaehlt werden.
    3. (Optional)
       Falls ein bestimmtes CD Laufwerk verwendet werden soll, muss
       der Parameter "cd=auto" in img/syslinuxcd.cfg
       angepasst werden:
         cd=/dev/hda fuer das 1. Laufwerk (master) am 1. IDE Anschluss,
         cd=/dev/hdb fuer das 2. Laufwerk (slave) am 1. IDE Anschluss,
         cd=/dev/hdc fuer das 1. Laufwerk (master) am 2. IDE Anschluss,
         cd=/dev/hdd fuer das 2. Laufwerk (slave) am 2. IDE Anschluss.
       Ansonsten wird das CD Laufwerk automatisch gesucht in der Reihenfolge
       hdc, hdb, hdd, hda
    4. Unter Linux muss anschliessend das Skript mkcd.sh, unter Windows das
       Skript mkcd.bat aufgefuehrt. Diese Skripte ueberpruefen zunaechst wie
       gewohnt die Angaben in den Konfigurationsdateien und erstellen die
       Dateien, die fuer eine Disketteninstallatin notwendig sind.
       Hinweis:Hierfuer wird eine formattierte 1.44MB Diskette benoetigt
       Von dieser Diskette wird anschliessend ein Diskettenabbild gelesen
       (welches auf bootfaehigen CDs notwendig ist). Zusammen mit den
       anderen benoetigten Dateien wird daraus ein CD Abbild erstellt,
       welches bereits die komplette bootbare CD beschreibt.
    5. Das Skript fragt schliesslich, ob das erstellte CD Abbild
       unmittelbar auf einen CD-Rohling geschrieben werden soll. Details
       hierzu siehe weiter unten unter "Brennen der CD".

   Unter Linux wird nach einmaligem Ausfuehren von mkcd.sh keine Diskette
   mehr benoetigt, da das beim ersten Aufruf erzeugte Abbild direkt
   verwendet wird, indem es as sog. Loopback-Device gemountet werden
   kann. Hierzu sind allerding entsprechdende (root) Rechte und
   Kernelunterstuetzung notwendig.
   Unter Windows wird in jedem Fall immer eine Startdiskette erzeugt,
   weil die oben beschriebenen Verfahren nicht unterstuetzt werden.
   Die Skripte unterstuetzen drei optionale Parameter wie folgt:
   [-g] Erzwingt die Generation eines Diskettenabbildes,
   [-s] Dies erstellt eine "langsame, dumme, aber sichere" Version des
   Boot-Loaders und kann verwendet werden fuer Maschinen, die Probleme
   beim Booten mit der Normalversion haben.
   [config-directory] Dies gibt ein alternatives Verzeichnis an, aus dem
   die Konfigurationsdateien gelesen werde sollen statt der
   Standardeinstellung "config".

  Brennen der CD

   Das Erstellen des CD Abbildes sowie das eigentliche Brennen werden
   durch externe Programme anderer Autoren durchgefuehrt, fuer Details
   siehe "Verwendete Dritt-Programme".
   Eine Liste der unterstuetzten CD Recorder findet man auf Joerg Schilly's
   page, die dort aufgefuehrt wird.
   Nachem mit einem der Skripte ein CD Abbild erstellt wurde, wird mit
   Hilfe des Programms CDRECORD eine Liste aller gefundenen Laufwerke
   angezeigt, z.B. wie folgt

   scsibus1:
        0,0,0   100) '        ' 'OME-W141        ' '1.40' Removable CD-ROM
        0,1,0   101) 'DM126D  ' 'DVDROM '01/01/29' '1.1C' Removable CD-ROM
        :
        :

   und das zu verwendende Laufwerk abgefragt. Hier muss die die
   dreistellige Ziffernkombination wie z.B. "0,0,0" angegeben werden.
   Falls keine CD gebrannt werden soll, kann man hier durch Druecken von
   Ctr-C das Skript abbrechen und das Abbild spaeter brennen. Vor dem
   Brennen wir in jedem Fall zunaechst eine Simulation durchgefuehrt und
   erst nach erfolgreichem Verlauf dieser der eigentliche Brennvorgang
   nach nochmaliger voheriger Achfrage gestartet. Falls die Simulation
   nicht erfolgreich war, wir das Skript abgebrochen.

  Fragen und Antworten (FAQs)

   F: Ich bekomme immer den Fehler "Windows konnte keinen exklusiven
      Zugriff auf das Diskettenlaufwerk erlangen", was mache ich falsch?
   A: Du benutzt wahrscheinlich Windows 2000 oder Windows NT.
      Dort sind die Zugriffskontrollen strenger als beispielsweise unter
      Windows 95/98/XP(?). Ich weiss selbst nicht genau, woran es liegt,
      das dieser Fehler auftritt, es tritt jedoch immer beim Installieren
      von syslinux auf, das ist der Bootloader, der die Diskette erst 
      ueberhaupt bootfaehig macht. Ich habe festgestellt, dass es aber nicht
      immer auftritt. Eine Loesung ist also, das Fenster immer wieder mit
      Abbrechen wegzudruecken und es erneut zu versuchen, solange, bis es
      klappt. Falls jemand eine Loesung fuer dieses Problem findet, bitte
      Mail an mich : a.pogoda@web.de
      Weiterhin scheint dies weniger haufig vorzukommen, wenn mkcd.bat nicht
      ueber eine Klick auf das Icon aufgerufen wird, sondern in einer DOS-
      Box. Dies bietet auch den Vorteil, dass man die optionalen Parameter
      von mkcd.bat benutzen kann.
      Eine andere Loesung besteht darin, Windows 95 oder 98 zu benutzen.

   F: Ich bekomme immer die Meldung "Error writing or reading the
      floppy disk maybe the disk is full-try to select fewer options in
      configuration and try again", was mache ich falsch ?
   A: Wahrscheinlich benutzt Du noch die erste Version der bootCD-Pakets.
      Dort gab es den Fall, dass (unter Windows 2000 jedenfalls) das
      Diskettenabbild beim ersten Aufruf von mkcd.bat im Nur-Lese-Modus
      erzeugt wurde und bei nachfolgenden Aufrufen nicht ueberschreiben
      werden konnte. Eine Loesung ist es, die neue Version herunterzuladen,
      oder die Datei "img/cd/boot.img" vor dem Aufruf von "mkcd.bat" 
      selbst zu loeschen.

   F: Da auf der CD so viel mehr Platz ist als auf einer Floppy habe ich
      1000 optionale Pakete mitinstalliert. Jetzt reicht beim Start der 
      Platz nicht mehr auf der ramdisk - was kann ich tun ?
   A: Wahrscheinlich ist die Variable "RAMSIZE" in der Datei
      "config/base.txt" zu klein. Sie gibgt die Groesse des dateisystems an,
      in welches die optionalen Pakete entpackt werden. Auf die dort
      entpackten Dateien werden dann auf dem Hauptdateisystem (rootfs) 
      symbolische Verweise eingerichtet. In der Regel reicht es also aus,
      diese Variable entsprechend groesser zu setzten, z.B. auf 4096 (4MB),
      8192 (8MB) usw. In manchen Faellen kann aber auch das nicht mehr
      ausreichen, wenn entweder eine grosse Anzahl symbolischer Verweise
      selbst die Kapazitaet des rootfs sprengt, oder ein Paket sehr viele
      Dateien selbst im rootfs anlegt.
      Dannn muss ein vergroessertes rootfs verwendet werden. Das Skript
      "mkcd.{bat.sh}" hat dazu einen Parameter "-l", der statt des normalen,
      eine 32MB-Version des rootfs auf die CD kopiert.
      Natuerlich muss der Rechner bei sehr grossen Konfigurationen auch
      ueber entsprechend viel Speicher verfuegen, also ca. 64MB oder mehr.
      Falls das normale rootfs zu klein ist, die 32MB Version aber schon 
      den Speicher sprengt, bleibt keine andere Wahl als ein eigenes rootfs
      zu erzeugen. Die FAQs auf der fli4l-Homepage (http://fli4l.sf.net)
      enthalten dazu Anleitungen.

   F: Wieso wird immer dieses Diskettenabbild geschrieben, kann man das
      nicht vermeiden.
   A: Ja und nein - PCs konnten nicht schon immer von CD booten. Als der
      Original PC Anfang der 80er Jahre des vergangenen Jahrhunderts auf den
      Markt kan, war die CD noch nicht mal erfunden. Urspruenglich konnte
      ein PC nur von Disketten booten. Das Booten von CD ist daher immer
      eine Simulation des Bootens von Diskette. Dazu es noetig, dass die CD,
      von der gebootet werden soll, ein sog. bootimage enthaelt. Dies ist
      eine 1:1 Kopie einer bootfaehigen Diskette.
      Es wird also in der Regel immer erst solch eine Diskette erzeugt.
      Vor dieser wird dann das 1:1 Abbild erzeugt, welches dann in einen
      speziellen Bereich des CD-Abbildes uebernommen wird.
      Schliesslich wird das CD-Abbild auf die CD geschrieben. Beim Booten
      liest das BIOS des PCs dieses Abbild von der CD, laedt es in den
      Speicher und behandelt es wie eine Diskette.
      Unter Windows gibt es keine einfache Moeglichkeit dies zu umgehen.
      Unter Linux gibt es die Moeglichkeit, auf Diskettenabbilder (dies sind
      ganz normale, ca. 1.4MB grosse Dateien) per sog. loopback-device
      zuzugreifen. Dies wird von der Linux-Version des Skripts auch
      durchgefuehrt, dazu sind jedoch Superuser-Rechte erforderlich.
      Unabhaengig davon wird beim ersten Aufruf auch unter Linux ein solches
      Abbild benoetigt. Bei wiederholten Aufrufen wird dann diese zuerst
      erstellte DAtei verwendet, falls die Rechte ausreichen.

   F: Wenn zum Erstellen der CD ein Diskettenabbild noetig ist,
      wie kann es dann sein, dass auf die entgueltige CD mehr draufpasst 
      als auf der Diskette Platz war. 
   A: Nicht alles, was zum Starten von fli4l noetig ist, muss sich auch auf
      dem Diskette nabbild befinden, damit gebootet werden kann.
      Zum Booten sind eigentlich nur der Bootloader syslinux, der Linux
      Kernel und das rootfs zwingend notwendig. Diese Dateien sind aber
      unabhengig von der Groesse der Installation zusammen immer rund
      1,2 MB gross - passen somit also locker auf eine Diskette. 
      Die Groesse des Archivs opt.tgz dagegen haengt betraechtlich vom
      gewaehlten Installationsumfang ab - sie kann von einigen hundert
      kB bis zu vielen zig MB reichen. Gluecklicherweise muss sie sich
      nicht auf dem Diskettenabbild befinden, wohl aber auf der CD.
      Dort sind dann aber einige Hundert MB frei, was auch fuer sehr 
      umfangreiche Konfigurationen ausreichen sollte.
      

  Verwendete Dritt-Programme

   Einige Fuktionen wurdem mit Hilfe Programme Dritter realisiert, z.B.
   das Erstellen des CD Abbildes, das eigentliche Brennen der CDs sowie
   die Benutzerinteraktion der Skripte
    1. CDRTOOLS - binaere windows version 1.11a12 (Autor: Joerg Schilling),
       siehe
         http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schi
            lling/private
       fuer die jeweils aktuelle Version diese Pakets. CDRTOOLS
       unterliegen der GPL, siehe "COPYING".
       Die ausfuehrbaren Dateien von CDRECORD sowie MKISOFS liegen unter
       windows/ directory. Eine Liste unterstuetzter CD Laufwerke kann man
       auf der Seite des Autors finden.
    2. GETVAR.EXE - aus den citrix multi tools (Author: Eric Thurber),
       siehe
         http://www.oregonclassifieds.net
       fuer die jeweils aktuelle Version diese Pakets.


  Verweise

   1. http://fli4l.sf.net/
   2. http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private
   3. http://www.oregonclassifieds.net/

     _________________________________________________________________

   Autor:            A. Pogoda
   Datum:            25. Feb. 2002
   Letzte Aenderung: 05. Apr. 2002

