
Achtung! Diese Anleitung bezieht sich auf fli4l V2.0.x.
Hinweise zu fli4l V2.1.x finden sich am Ende dieses Dokuments
Ist der fli4l mithilfe OPT_HD mit Typ A auf Festplatte installiert, wird die Festplatte lediglich als überdimensionale Diskette verwendet. Außer bei Installation auf eine lautlose CompactFlash-Karte ist es wohl in nahezu jedem Fall wünschenswert, daß die Festplatte nach einstellbarer Zeit der Inaktivität in den Sleep-Mode geht, d.h. den Motor abschaltet und so keinen Lärm mehr verursacht und nebenbei auch nur noch einen Bruchteil an Strom verbraucht.
Soll der fli4l aber mithilfe OPT_DHCP auch den DHCP-Server für's Intranet darstellen (z. B. für temporär angeschlossene PCs, Knoppix-Clients oder wechselnde VMWare-VMs), führt der dhcpd eine Leases-"Datenbank" unter /boot/dhcpd.leases. /boot entpricht dem Bootmedium - in diesem Fall also der vfat-Partition /dev/hda1 der Festplatte.
Dummerweise "weckt" jeder DHCP-Request die Festplatte unweigerlich auf, dhcpd schreibt wenige KB - und die Platte legt sich nach der eingestellten Zeit wieder schlafen.
Dieses Spin-Up und Spin-Down dürfte aber speziell den betagten Festplatten (wie sie üblicherweise in fli4l-Routern anzutreffen sind) auf die Dauer nicht besonders gut bekommen.
Der fli4l soll meinetwegen von Festplatte booten, aber die dhcpd.leases könnte weitaus besser statt auf der Festplatte auf einer Diskette gespeichert werden (wie im fli4-Diskettenbetrieb - falls OPT_DHCP noch mit auf die Diskette gepaßt hat :-) ).
Der Floppymotor ist auf staendiges Anlaufen ausgelegt, und die Zeit zum Schreiben der wenigen KB ist zu vernachlaessigen - ebenso das Geraeusch bis zum automatischen Spin-Down nach wenigen Sekunden.
Hier beißt sich die Katze in den Schwanz: Wenn der Kasten doch von Platte booten soll, stört eine eingelegte Diskette ungemein. Wie kriegen wir den Router also dazu, statt von der Diskette von Festplatte zu booten?
Man deaktiviert also im BIOS des Router-PCs die Floppy als Bootmedium. Dagegen sprechen drei Argumente:
Das multifunktionale Kopier- und Formatierprogramm "VGA-COPY/386" von Thomas Mönkemeier (mit dem man auch die für den fli4l-Diskettenbetrieb so nützlichen 1.6 MB DMF-Disketten formatieren kann) schreibt bei frisch formatierten Disketten einen speziellen Bootsektor:
Wichtig: Beim Formatieren solte unbedingt "Modify" angewählt sein.
Das heißt: Das Diskettenlaufwerk kann bootfähig belassen werden, die VGA-COPY-formatierte Diskette kann beim Rechnerstart im Laufwerk liegen bleiben - und nach wenigen Sekunden Verzögerung wird trotzdem von Festplatte gestartet.
Wichtig: Natürlich kann die frischformatierte Diskette, die später die dhcpd.leases aufnehmen soll, nicht dieselbe sein, mit der die Basis-HD-Installation durchgeführt wird, die ja naturgemäß nicht von Festplatte sondern fli4l von Diskette booten soll.
VGA-COPY/386 ist in der aktuellen Version 6.25 Freeware und kann unter von Thomas Mönkemeiers Homepage gratis heruntergeladen werden.
[Anm.: Der Betrieb unter Windows ist allerdings nicht besonders zu empfehlen oder (im Falle von Win 2000 oder XP) sogar unmöglich. Besser bootet man den PC mit einer reinen DOS-Bootdiskette, z. B. einer von Windows erstellten Rescue-Disk.
Wer keine zur Hand hat, möchte sich evtl. mit DR-DOS
auseinandersetzen. - Bis vor kurzem (Stand: Frühjahr 2003) war DR-DOS
frei herunterladbar, mittlerweile aber leider scheinbar nicht mehr.
Die inoffizielle
DR-DOS-Homepage hielt aber im April 2003 noch die aktuelle Version 7.03
zum Download bereit.]
Wem das Rumgehuddele mit DOS-Bootdiskette und VGA-COPY zu doof ist, weil der Arbeitsplatz-PC unter einem "ausgewachsenen" Linux läuft, kann selbstverständlich auch ganz anders ganz vorgehen:
Mithilfe von lilo läßt sich eine beliebige Diskette (in diesem Falle unbedingt vorher mit mkdosfs als vfat formatieren) dazu bewegen, den Bootvorgang auf Festplatte fortzusetzen.
Achtung, ungetestet: Kern der Sache dürften folgende Einträge in der lilo.conf sein:
Der Trick ist, nach einem kurzen Timeout ohne jeglichen Benutzereingriff zum Master-Bootsektor der Festplatte auf hda zu verzweigen. Sollte das nicht klappen - na, dann halt /dev/hda1 und noch table=/dev/hda dabeipacken, damit direkt fli4l gebootet wird.
So weit, so gut: Jetzt muß die Diskette noch unter fli4l verfügbar gemacht werden, d.h. sie muß beim Systemstart mit gemountet werden.
Am einfachsten geht das über das in der eh installierten OPT_HD-Package vorhandene OPT_MOUNT. Kern sind folgende Zeilen in hd.txt:
[Anm.: Wer bereits Mounts eingetragen hat, erhöht entsprechend MOUNT_N und verwendet MOUNT_x_... statt MOUNT_1_... wie in der OPT_HD-Dokumentation beschrieben.]
Wichtig: Nachdem die Diskette später die dhcpd.leases aufnehmen soll, muß sie selbstverständlich ReadWrite gemountet werden. Abgesehen davon kontrolliert man besser 2x, daß der Schreibschutzschieber tatsächlich geschlossen ist und die Diskette somit physikalisch beschreibbar ist. :-)
Zusatzbemerkung: Die Diskette ist übrigens mit derselben Begründung vfat und nicht minix, wie die fli4l-Bootpartition bei Typ A vfat und nicht e2fs ist: DOS-Filesysteme (ohne aktive Schreibprozesse und ungesicherte Daten) kann man mehr oder problemlos "mit dem Powerschalter" herunterfahren.
Nachdem die eingelegte Diskette nach dem HD-Boot nun ReadWrite unter /floppy erreichbar ist, muß der dhcpd noch dazu bewegt werden, seine Datenbank nicht unter /boot/dhcpd.leases sondern unter /floppy/dhcpd.leases abzulegen.
Das gelingt durch Patchen der Datei opt/etc/rc.d/rc200.dhcp auf dem fli4l-Installationsrechner (also dem, der per imonc die Router-Updates über das Intranet einspielt).
Dort findet sich, ziemlich am Ende der Datei:
if [ ! -f /boot/dhcpd.leases ]
then
>/boot/dhcpd.leases
fi
/usr/sbin/dhcpd -q -lf /boot/dhcpd.leases $dhcp_dev
Daraus wird:
if [ ! -f /floppy/dhcpd.leases ]
then
>/floppy/dhcpd.leases
fi
/usr/sbin/dhcpd -q -lf /floppy/dhcpd.leases $dhcp_dev
Das heißt, 3x möchte /boot durch /floppy ersetzt werden.
[Anm.: Die Abfrage am Anfang der Datei if [ "$MOUNT_BOOT" != "rw" ] ist natürlich ziemlich hirnrissig, weil das keinerlei Aussage darüber trifft, ob /floppy nun ReadWrite oder ReadOnly oder ueberhaupt gemountet ist, oder ggf. sogar versehentlich trotz ReadWrite-Mount schreibgeschuetzt ist.]
Das war's auch schon! Per imonc das opt.tgz und rc.cfg neu erstellen lassen, auf den Router uebertragen, wie oben beschrieben formatierte Diskette einlegen -
Boot's, tut's!
Sinnvollerweise kopiert man noch mit
cp /boot/dhcpd.leases /floppy/dhcpd.leases
die bestehende dhcpd.leases um, bevor sich die Platte ein fuer alle Mal schlafen legt. Am besten noch mal neu starten, damit der dhcpd die Datenbank "adoptiert".
Für die 2.0.x passt das ganze recht gut. Bei der 2.1.x kann das Leasesdir bereits mit einer Variable eingestellt werden und es wird auch nicht mehr aus mount_boot=rw geprüft.
Allerdings ist es bei der 2.1.2 noch nicht möglich, eine Diskette per opt_mount zu mounten, das bau ich aber zur nächsten Version rein.
Viel Spaß beim Nachvollziehen!
Klicken Sie hier, um die Seite auszudrucken.