= 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 KrefixLinux/PaketListe 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)
** ''automatisches Finden eines DHCP-Servers und Konfiguration von
Netzwerkkarten''
** ''automatisches Starten eines DHCP-Servers für unkonfigurierte
Interfaces''
** ''Nameserver (DNS), der automatisch die vom DHCP vergebenen
Namen akzeptiert''
** ''DebianKernelKompilieren'', 
** ''UnstablePaketeNutzen (z.B. für Shorewall 1.3)''
** ''DebianDSL''
** PPTPoverDSL
** ''ShoreWall Firewall''
** ''DynamischesDNS''
** ''VirtualPrivateNetwork''
** DebianISDN
** DialInServer
* 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