bootcd als Basis#

Das bootcd-Paket von BerndSchumacher bietet offensichtlich einen sehr einfachen und schnellen Weg, um aus einem laufenden System eine bootfähige CD zu machen. Das System kann später mit einem Befehl wieder auf eine Festplatte geschrieben werden. Es eignet sich also auch für Backups und für die identische Installation mehrerer Rechner. Die Konfiguration kann auf eine Diskette geschrieben werden, die dann beim booten wieder eingelesen wird.

User-Webseite: KrefixLinux#

Es hat sich ergeben, das sich ein Anwender / Betatester von ausserhalb der LUG Krefeld gemeldet hat, der gerne an unserem Projekt teilhaben will. Dabei ist mir aufgefallen, daß unsere bisherigen Wiki-Seiten nicht ganz so aufschlußreich für aussenstehende nicht-Entwickler sind. Also schlage ich vor, wir machen so etwas wie eine offizielle Homepage des Projektes, auf die wir Leute verweisen können, die Interesse an unserem Projekt haben. Aufgrund der enormen Resonanz auf den Namenswettbewerb habe ich aus den führenden Beiträgen einen ausgesucht und die Seite KrefixLinux genannt. Im Zweifelsfall können wir das später ja immer noch ändern.

erster Versuch#

Als erstes haben wir die Konfigurations-Datei /etc/bootcd/bootcdwrite.conf in ein paar Minuten angepasst, das Programm gestartet und fertig! Die erzeugte CD bootete sofort. Beim Hochfahren gab es einige Meckereien, da gewisse Dinge nicht geschrieben werden konnten und das /var-Verzeichnis wohl zu klein war, aber das System lief.

testweises Booten als ISO-Image von Festplatte (zum Testen)#

Wenn man das ISO-Image der CD auf eine Festplattenpartition geschrieben wird, kann davon anstelle von einer CD booten. Das macht normalerweise nicht viel Sinn, aber beim Testen spart man sich damit, jedesmal eine neue CD brennen zu müssen. Dies macht man (z.B. auf hda4) so:
  • Als CDDEV (in der bootcdwrite.conf) gibt man (u.a.) /dev/hda2 an.
  • Kopieren des Image auf eine Partition mit dd if=/pfad/zum/cdimage.iso of=/dev/hda4
  • Dann kopiert man das Boot-Disk-Image, das auf der CD als /cdboot.img liegt, auf eine Diskette mit: dd if=/cdrom/cdboot.img of=/dev/fd0
Jetzt kann man von dieser Diskette booten und beim Start "hda2" anwählen!

Anpassung des Systems an das read-only-filesystem#

  • In der Datei /etc/init.d/modutils muss die Zeile depmod -a ... in depmod -A geändert werden.
  • In die Datei /var/lib/bayen/display.txt haben wir einen Begrüßungstext geschrieben (und die dann in die config eingetragen)
  • Diese Anpassungen sind bereits aufgrund unserer Bug-Reports in das Paket eingeflossen:
  • In der Datei /usr/bin/bootcdwrite:
    • Anpassung der erzeugten syslinux.cfg, sodass von verschiedenen Devices gebootet werden kann
    • wird cdboot.sh erzeugt (zumindest heisst die Kommentarzeile dort so). Dort findet sich ein Befehl mke2fs -q -i 1024 .... Der muss geändert werden in mke2fs -q -N 8192 ....
      • stehen zwei Befehle cpio -idu. Daraus machen wir cpio -idum.
      • stehen fünf Befehle cpio ... -pd.... Daraus machen wir jeweils cpio ... -pdm...
      • die neuere ssh-keygen-Version braucht eine Option für den Key-Type (z.B. -t dsa)
  • Diese Dinge könnten nochmal angeschaut werden:
    • automatische Erkennung des installierten Kernels

Hardwareerkennung#

Zur automatischen Erkennung der Netzwerkkarte (die CD soll ja in "jedem" Rechner funktionieren) installieren wir zunächst mal das Debian Paket discover. In einem Init-Skript werden automatisch die Module zur erkannten Hardware geladen. Daher löschen wir den Eintrag für die Netzwerkkarte in der /etc/modules auf unserer Referenz-Installation. Ggf. kann man in der Datei /etc/discover.conf dafür sorgen, daß nur PCI-Karten erkannt werden. Man spart sich so ggf. unnötige Verwirrung wegen Geräten, die für unseren Router sowieso uninteressant sind.

DHCP#

Unser Ziel: Wir möchten gerne, daß sich die Netzwerkeinstellungen ganz von alleine konfigurieren (NetzKonfigMitDHCP). Dazu sollen auf allen Interfaces zuerst mal DHCP-Server gesucht werden. Ist ein solcher Server im Netz vorhanden, werden von diesem die Einstellungen für das Interface bezogen. Ist kein Server vorhanden, so starten wir einen eigenen und gründen ein eigenes Netz mit einer vorgegebenen Adresse (192.168.200+x.y wobei x die Interface-Nummer ist). Falls wir später eines der Interfaces für DebianDSL benutzen, müssen wir diese Einstellungen evtl. wieder beseitigen.

Zuerst muss ein DHCP-Client installiert werden (siehe NetzKonfigMitDHCP). Wir haben und erstmal für das Paket dhcp3-client entschieden und sind vorgegangen wie in NetzKonfigMitDHCP beschrieben.

Die DHCP-Server-Konfiguration haben wir auf der Seite DHCPServerMitDNS beschrieben. Da das /var-Verzeichnis beim booten von der CD nicht mit Inhalt gefüllt wird, wird auch die leases-Datei des DHCP-Servers nicht angelegt. Der Server startet jedoch nicht, wenn diese Datei nicht existiert. Daher muss folgender Befehl in die Datei /etc/init.d/dhcpd3-server eingefügt werden (nach der Zeile " echo Starting DHCP Server...", bevor der DHCP-Server gestartet wird):

  touch /var/lib/dhcp3/dhcpd.leases

eigener Kernel#

Ich habe wie bei DebianKernelKompilieren beschrieben ein eigenes 2.4.x-Kernelpaket erzeugt. Dabei war einiges zu beachten. Normalerweise neige ich immer dazu, alles als Module einzubinden, um den Kern des Kernels so klein wie möglich zu halten. Allerdings sollten einige Dinge einkompiliert werden, die mir aufgefallen sind:

  • Die CDROM-Unterstützung
  • die RAM-Disk-Unterstützung
  • Das iso9660-Filesystem
  • das MSDOS- und das VFAT-Filesystem (ohne kann die Konfiguration nicht von einer Bootdiskette gelesen werden)
  • devfs-Unterstützung (DevFS? spart viel Platz in der Ramdisk)

devfs#

Wenn man (wie in der Doku zu bootcd beschrieben mit automatischem Mounten) devfs in den Kernel einkompiliert und das Debian-Paket devfsd installiert, benötigt man keine Device-Files mehr in /dev. Da es sich um tausende von Inodes handelt, spart man damit fast ein MB in der RAM-Disk. Gerade, wenn man ältere Rechner als Router aktiviert, kann das sehr wichtig sein.

PPTP over DSL (DSL in Österreich)#

siehe PPTPoverDSL

Nameserver#

Der Nameserver verwaltet eine einzige Zone "intranet", in der alle Rechner des lokalen Netzes liegen. Rechner, die per DHCP angemeldet werden, werden automatisch in die Zone aufgenommen (zu näherem über unsere Konfiguration siehe DHCPServerMitDNS) Einige Rechnernamen sind bereits fest vorgegeben (bisher nur router für uns selbst, später evtl. auch (Alias-)Namen wie www, mail, timeserver, etc.).

ISDN#

siehe DebianISDN

Mailserver#

Ich habe ein paar Zeilen zum Courier-Mailserver im LinuxWikiDe gefunden: LinuxWiki:Courier. Auf dieser Wiki-Seite habe ich mal nach Erfahrungen gefragt und einige Empfehlungen bekommen. Lest da mal nach. Vor allem scheint dieses "Maildir-Format" viele Vorteile zu haben (allerdings auch den Nachteil, das andere Mailprogramme es evtl. nicht kennen...)

Alternativ können wir auch exim nehmen, da der hier bei mir (und in jedem Standard-Debian-System) gut läuft. Dazu benutze ich hier den uw-imap als imap-Server. Zum Thema webmail müssten wir uns dann mal umsehen, wobei es z.B. auf Sourceforge eine Menge zur Auswahl gibt.

FranzLischka und AndreasBeckermann? wollen erstmal exim aufsetzen.

Apache#

Bisher ist das Apache-Paket nackt installiert. Der Parameter ServerType? in der /etc/apache/httpd.conf ist auf inetd gesetzt, inetd ist aber nicht entsprechend konfiguriert, so daß der Apache nicht automatisch startet. Wer ihn benutzten will, muss ihn also selber konfigurieren.

Samba#

Samba ist (wie Apache auch) installiert, aber nur minimal konfiguriert. Ich habe ihn für inetd-Betrieb konfiguriert und keine sambapasswd-Datei erzeugen lassen. Wer Samba benötigt, muss es also nich konfigurieren.

Idee!#

Um die Sache etwas zu beschleunigen, habe ich eine Idee: Bisher installieren wir immer hübsch ein neues Paket, richten dieses dann perfekt ein und feilen daran herum, bis alles optimal ist und gehen dann erst zum nächsten Schritt. Das Ganze findet im Schnitt nur eine oder zwei Stunden in der Woche statt, was die Geschwindigkeit der Entwicklung etwas ausbremst. Besser wäre, wenn wir etwas hätten, wo wir auch zu Hause und nebenbei mal dran spielen könnten. Im Prinzip dürfte doch nichts dagegensprechen, wenn wir alle Pakete, die man irgendwann brauchen könnte, schonmal installieren, ohne sie zu konfigurieren. Dann brennen wir das Ding auf ein paar CDs und können damit die Woche über schonmal jeder für sich herumspielen und verschiedene Dienste richtig konfigurieren. Alles, was unser System von einem normalen Debian unterscheidet, spielt sich ja in /etc ab. Die Konfiguration kann also auf eine Diskette geschrieben und im Wiki dokumentiert werden. Ab und an tragen wir dann die entstandenen Config-Files zusammen und fügen sie in das Grundsystem ein.

Ich habe in der KrefixLinuxPaketListe mal notiert, was ich installieren habe. Da ich selber den Aufbau meiner letzten Router gut dokumentiert habe, dürfte das recht vollständig sein. Bitte ergänzt die Liste für die Serverdienste und den Router zum Thema ISDN (und evtl. mgetty/Fax?) noch!

Aufgabenliste#

  • Erstellung einer Bootdiskette, die ein ISO-Image von der Festplatte bootet (um Rohlinge zu sparen)
  • Anpassung des Debian-Systems, um keine Meckereien mehr beim booten zu bekommen (LinuxVonNull)
  • Dazu tieferes Verständnis für das Debian-Paketsystem, um diese Änderungen dpkg-konform durchzuführen.
  • Einführung einer Hardwareerkennung insbes. für Netzwerkkarten
  • evtl. auch Erkennung von ISDN-Karten?
    • Testphase auf verschiedenen Rechnern
  • Installation eines Standard-Routers bis zum Feature-Stand des LUG-Routers (LugRouter, PommesRouter)
  • Testphase der CD auf unserem LUG-Router
  • Erweiterung des Routers zum Server:
    • Timeserver, Printserver, Faxserver, Fileserver (Samba/NFS), Apache, Benutzerverwaltung, etc.
  • Anbindung von Clients
    • booten übers Netz oder mit einer CD (der gleichen? oder KnoppixLinux?)
    • Einbinden von Serververzeichnissen etc.
      • Automatische und halbautomatische Konfiguration auch vieler Clients
Stand: 18.02.2003
Quelle: http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?LinuxOnCD/BootCDAlsBasis

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-1) was last changed on 02-May-2007 11:20 by MarkusMonderkamp