Sobald das Abbild auf dem Medium verfügbar ist, kann NanoBSD gebootet werden. Der Massenspeicher ist standardmäßig in drei Teile unterteilt:
Zwei Abbild Partitionen: code#1
und
code#2
.
Die Partition der Konfigurationsdatei, welche zur
Laufzeit unter dem /cfg
Verzeichnis gemountet
werden kann.
Diese Partitionen sind im Allgemeinen read-only.
Die /etc
und
/var
Verzeichnisse sind
md(4) (malloc) Speicher.
Die Partition der Konfigurationsdatei besteht unter dem
/cfg
Verzeichnis. Sie
enthält Dateien für das /etc
Verzeichnis und wird
direkt nach dem Botten read-only eingehangen, weshalb es
erforderlich ist geänderte Dateien von /etc
zurück nach /cfg
zu kopieren falls die
Änderungen nach einem Neustart bestehen bleiben
sollen.
/etc/resolv.conf
vornehmen#
vi /etc/resolv.conf
[...]
#
mount /cfg
#
cp /etc/resolv.conf /cfg
#
umount /cfg
Die /cfg
Partition sollte nur während des Bootvorgangs und zu
Änderungen an den Konfigurationsdateien gemountet
werden.
Die /cfg
Partition jederzeit gemountet zu haben ist keine gute Idee,
besonders wenn das NanoBSD System
auf einem Massenspeicher betrieben wird, der eventuell druch
eine große Anzahl von Schreiboperationen nachteilig
beeinträchtigt wird (z. B. wenn der Dateisystem-Syncer den
Speicher mit Daten überflutet).
Ein NanoBSD Abbild wird über
ein einfaches nanobsd.sh
Shell-Skript
gebaut, das sich unter
befindet. Das Skript erstellt ein Abbild, welches dann
mittels dd(1) auf einen Massenspeicher kopiert werden
kann./usr
/src/tools/tools/nanobsd
Die folgenden Kommandos sind notwendig um ein NanoBSD Abbild zu erstellen:
Dies ist wahrscheinlich das wichtigste und interessanteste Merkmal von NanoBSD. Hierbei werden Sie auch die meiste Zeit mit der Entwicklung von NanoBSD verbringen.
Der Aufruf des folgenden Kommandos wird
nanobsd.sh
dazu zwingen, seine
Konfiguration aus myconf.nano
aus dem
aktuellen Verzeichnis zu lesen:
#
sh nanobsd.sh -c myconf.nano
Die Anpassung wird auf zwei Arten geschehen:
Konfigurations-Optionen
Benutzerdefinierte Funktionen
Durch Konfigurationseinstellungen ist es möglich
Optionen zu übergeben, die sowohl die
buildworld
und
installworld
Phasen des
NanoBSD Bauprozesses betreffen,
sowie interne Optionen, die den Haupt-Bauprozess von
NanoBSD beeinflussen. Durch diese
Optionen ist es möglich, das System so zu reduzieren, dass
es mit wenig Platz, etwa 64 MB auskommt. Sie können die
Konfigurationsdateien dazu nutzten FreeBSD noch weiter zu
trimmen, bis es nur noch aus dem Kernel und zwei oder drei
Dateien im Userland besteht.
Die Konfigurationsdatei besteht aus Konfigurations-Optionen, welche die Standardwerte überschreiben.
NANO_NAME
— Name des Build
(wird verwendet, um die workdir Namen zu
konstruieren).
NANO_SRC
— Pfad zum
Quelltextverzeichnis, das für den Bau des Abbilds
verwendet wird.
NANO_KERNEL
— Name der
Kernelkonfigurationsdatei, die für den Bau des Kernels
verwendet wird.
CONF_BUILD
— Optionen für
die buildworld
Phase des
Bauprozesses.
CONF_INSTALL
— Optionen
für die installworld
Phase
des Bauprozesses.
CONF_WORLD
— Optionen für
die buildworld
und
installworld
Phasen des
Bauprozesses.
FlashDevice
— Definiert den
zu benutzenden Medientyp. Überprüfen Sie die
Datei FlashDevice.sub
für
weitere Informationen.
Mit Hilfe von Shell-Funktionen in der Konfigurationsdatei besteht die Möglichkeit zur Feinabstimmung von NanoBSD. Das folgende Beispiel illustriert das Grundmodell von benutzerdefinierten Funktionen:
Ein besseres Beispiel für eine Anpassung ist folgende,
welche die Standardgröße des /etc
Verzeichnisses von 5 MB
auf 30 MB ändert:
Es gibt ein paar vordefinierte Standardfunktionen die Sie nutzen können:
cust_comconsole
—
Deaktiviert getty(8) auf den VGA Geräten (den
/dev/ttyv*
Gerätedateien) und
ermöglicht die Nutzung der seriellen Schnittstelle COM1
als Systemkonsole.
cust_allow_ssh_root
—
Erlaubt es root
sich über
sshd(8) anzumelden.
cust_install_files
—
Installiert Dateien aus dem nanobsd/Files
Verzeichnis, das einige nützliche Skripte für die
Systemverwaltung enthält.
Durch benutzerdefinierte Funktionen können Pakete zum
NanoBSD Abbild hinzugefügt
werden. Die nachfolgende Funktion installiert alle Pakete
aus
/usr/src/tools/tools/nanobsd/packages
:
Ein komplettes Beispiel für eine Konfigurationsdatei zum Erstellen eines benutzerdefinierten NanoBSD Abbilds könnte folgende sein:
The Update-Prozess von NanoBSD ist relativ einfach:
Erstellen Sie ein neues NanoBSD Abbild.
Laden Sie das neue Abbild in eine unbenutzte Partition eines laufenden NanoBSD Systems.
Der wichtigste Unterschied dieses Schrittes zur ersten
NanoBSD Installation besteht
darin, das jetzt anstatt der Datei
_.disk.full
(enthält ein Abbild der
gesamten Platte) die Datei
_.disk.image
(enthält ein Abbild
einer einzelnen System-Partition) installiert wird.
Neustart, um das System von der neu installierten Partition zu starten.
Wenn alles gut geht, ist die Aktualisierung abgeschlossen.
Wenn etwas schief läuft, starten Sie wieder in die vorherige Partition (die das alte, funktionierende Abbild enthält) um die System-Funktionalität so schnell wie möglich wieder herzustellen. Beheben Sie alle Probleme des neu gebauten Abbilds, und wiederholen Sie den Vorgang.
Um das neue Abbild auf das laufende
NanoBSD System zu installieren, ist
es möglich, entweder das updatep1
oder
updatep2
Skript im /root
Verzeichnis zu verwenden,
je nachdem, von welcher Partition das aktuelle System
läuft.
In Abhängigkeit davon welche Dienste der Host, der das NanoBSD Abbild anbietet, und welche Art von Transfer bevorzugt wird, bestehen eine von drei zu prüfenden Möglichkeiten:
Wenn die Übertragungsgeschwindigkeit an erster Stelle steht, verwenden Sie dieses Beispiel:
#
ftp myhost
get _.disk.image "| sh updatep1"
Wenn eine sichere Übertragung bevorzugt wird, sollten Sie die Verwendung dieses Beispiels in Betracht ziehen:
#
ssh myhost cat _.disk.image.gz | zcat | sh updatep1
Verwenden Sie dieses Beispiel, wenn auf dem Remote-Host kein ftpd(8) oder sshd(8) Dienst läuft:
Zunächst öffnen Sie eine TCP-Listener auf dem Host der das Abbild bereitstellt und zum Client sendet:
#
nc -l 2222
< _.disk.image
Stellen Sie sicher das der benutzte Port nicht blockiert wird, um eingehende Verbindungen, vom NanoBSD Host durch die Firewall, zu ermöglichen.
Verbinden Sie sich zum Host der das Abbild
bereitstellt und führen Sie das
updatep1
Skript aus:
#
nc myhost 2222
| sh updatep1
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.