svn commit: r41322 - in head/de_DE.ISO8859-1/articles: . nanobsd
Benedict Reuschling
bcr at FreeBSD.org
Fri Mar 29 15:52:57 UTC 2013
Author: bcr
Date: Fri Mar 29 15:52:56 2013
New Revision: 41322
URL: http://svnweb.freebsd.org/changeset/doc/41322
Log:
The NanoBSD article has been translated by Bjoern Heidotting and is now
part of the german set of articles.
Submitted by: Bjoern Heidotting
Obtained from: The FreeBSD German Documentation Project
Added:
head/de_DE.ISO8859-1/articles/nanobsd/
head/de_DE.ISO8859-1/articles/nanobsd/Makefile (contents, props changed)
head/de_DE.ISO8859-1/articles/nanobsd/article.xml (contents, props changed)
Modified:
head/de_DE.ISO8859-1/articles/Makefile
Modified: head/de_DE.ISO8859-1/articles/Makefile
==============================================================================
--- head/de_DE.ISO8859-1/articles/Makefile Fri Mar 29 14:23:12 2013 (r41321)
+++ head/de_DE.ISO8859-1/articles/Makefile Fri Mar 29 15:52:56 2013 (r41322)
@@ -3,7 +3,6 @@
# The FreeBSD German Documentation Project
#
# $FreeBSD$
-# $FreeBSDde: de-docproj/articles/Makefile,v 1.7 2010/09/18 13:58:33 bcr Exp $
# basiert auf: 1.42
SUBDIR = contributing
@@ -11,6 +10,7 @@ SUBDIR+= contributing-ports
SUBDIR+= explaining-bsd
SUBDIR+= laptop
SUBDIR+= linux-comparison
+SUBDIR+= nanobsd
SUBDIR+= new-users
SUBDIR+= port-mentor-guidelines
SUBDIR+= solid-state
Added: head/de_DE.ISO8859-1/articles/nanobsd/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/de_DE.ISO8859-1/articles/nanobsd/Makefile Fri Mar 29 15:52:56 2013 (r41322)
@@ -0,0 +1,29 @@
+#
+# The FreeBSD Documentation Project
+# The FreeBSD German Documentation Project
+#
+# $FreeBSD$
+# basiert auf: r39631
+#
+# Article: Einführung in NanoBSD
+
+DOC?= article
+
+FORMATS?= html
+WITH_ARTICLE_TOC?= YES
+
+INSTALL_COMPRESSED?=gz
+INSTALL_ONLY_COMPRESSED?=
+
+# Images from the cross-document image library
+IMAGES_LIB= callouts/1.png
+IMAGES_LIB+= callouts/2.png
+IMAGES_LIB+= callouts/3.png
+IMAGES_LIB+= callouts/4.png
+
+SRCS= article.xml
+
+URL_RELPREFIX?=../../../..
+DOC_PREFIX?= ${.CURDIR}/../../..
+
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Added: head/de_DE.ISO8859-1/articles/nanobsd/article.xml
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/de_DE.ISO8859-1/articles/nanobsd/article.xml Fri Mar 29 15:52:56 2013 (r41322)
@@ -0,0 +1,548 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension// EN" "../../../share/xml/freebsd42.dtd" [
+<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set/ /DE" "../../share/xml/entities.ent">
+%entities;
+]>
+
+<article lang="de">
+ <articleinfo>
+ <title>Einführung in NanoBSD</title>
+
+ <authorgroup>
+ <author>
+ <firstname>Daniel</firstname>
+ <surname>Gerzo</surname>
+ <!-- 14 March 2006 -->
+ </author>
+ </authorgroup>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <copyright>
+ <year>2006</year>
+ <holder>The FreeBSD Documentation Project</holder>
+ </copyright>
+
+ <legalnotice id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <abstract>
+ <para>Dieses Dokument stellt Informationen zu den
+ <application>NanoBSD</application> Werkzeugen bereit, die dazu
+ verwendet werden können ein &os; Abbild für eingebettete
+ Systeme zu erstellen, welche auf eine Compact Flash Karte
+ passen (oder andere Massenspeicher).</para>
+
+ <para><emphasis>Übersetzt von Björn
+ Heidotting</emphasis>.</para>
+ </abstract>
+ </articleinfo>
+
+ <sect1 id="intro">
+ <title>Einführung in NanoBSD</title>
+
+ <indexterm><primary>NanoBSD</primary></indexterm>
+
+ <para><application>NanoBSD</application> ist ein Werkzeug welches
+ derzeit von &a.phk; entwickelt wird. Es erstellt ein &os;
+ Systemabbild für eingebettete Systeme, die auf eine Compact
+ Flash Karte passen (oder andere Massenspeicher).</para>
+
+ <para>Es kann dazu benutzt werden um spezialisierte
+ Installationsabbilder zu bauen, entworfen für die einfache
+ Installation und Wartung von Systemen die als "Computer
+ Appliances" bekannt sind. Computer Appliances haben ihre Hard-
+ und Software fest verbaut, dass bedeutet alle Anwendungen sind
+ vorinstalliert. Die Appliance wird an ein bestehendes Netzwerk
+ angeschlossen und kann mit der Arbeit (fast) sofort
+ beginnen.</para>
+
+ <para>Zu den Eigenschaften von <application>NanoBSD</application>
+ gehören:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ports und Pakete funktionieren wie in &os; — Jede
+ einzelne Anwendung kann auf dem
+ <application>NanoBSD</application> Abbild installiert und
+ benutzt werden, auf die gleiche Weise wie Sie es aus &os;
+ gewohnt sind.</para>
+ </listitem>
+
+ <listitem>
+ <para>Keine fehlende Funktionalität — Wenn es möglich
+ ist, etwas mit &os; zu tun, ist es auch möglich, die gleiche
+ Sache mit <application>NanoBSD</application> zu tun, es sei
+ denn, eine oder mehrere Funktionen wurden ausdrücklich vor
+ dem Bau des <application>NanoBSD</application> Abbilds
+ entfernt.</para>
+ </listitem>
+
+ <listitem>
+ <para>Zur Laufzeit ist alles read-only — Es ist sicher
+ den Stromstecker zu ziehen. Es besteht dann keine
+ Notwendigkeit, einen &man.fsck.8; nach einem nicht
+ ordnungsgemäßem Herunterfahren des Systems
+ auszuführen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Einfach zu bauen und anzupassen — Unter Verwendung
+ von nur einem Shell-Skript und einer Konfigurationsdatei ist
+ es möglich, ein reduziertes und angepasstes Abbild zu bauen,
+ welches jegliche Reihe von Anforderungen erfüllt.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="howto">
+ <title>NanoBSD Anleitung</title>
+
+ <sect2 id="design">
+ <title>Das Design von NanoBSD</title>
+
+ <para>Sobald das Abbild auf dem Medium verfügbar ist, kann
+ <application>NanoBSD</application> gebootet werden. Der
+ Massenspeicher ist standardmäßig in drei Teile
+ unterteilt:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Zwei Abbild Partitionen: <literal>code#1</literal> und
+ <literal>code#2</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Partition der Konfigurationsdatei, welche zur
+ Laufzeit unter dem <filename
+ class="directory">/cfg</filename> Verzeichnis gemountet
+ werden kann.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Diese Partitionen sind im Allgemeinen read-only.</para>
+
+ <para>Die <filename class="directory">/etc</filename> und
+ <filename class="directory">/var</filename> Verzeichnisse sind
+ &man.md.4; (malloc) Speicher.</para>
+
+ <para>Die Partition der Konfigurationsdatei besteht unter dem
+ <filename class="directory">/cfg</filename> Verzeichnis. Sie
+ enthält Dateien für das <filename
+ class="directory">/etc</filename> Verzeichnis und wird
+ direkt nach dem Botten read-only eingehangen, weshalb es
+ erforderlich ist geänderte Dateien von <filename
+ class="directory">/etc</filename> zurück nach <filename
+ class="directory">/cfg</filename> zu kopieren falls die
+ Änderungen nach einem Neustart bestehen bleiben
+ sollen.</para>
+
+ <example>
+ <title>Dauerhafte Änderungen in
+ <filename>/etc/resolv.conf</filename> vornehmen</title>
+
+ <screen>&prompt.root; <userinput>vi /etc/resolv.conf</userinput>
+[...]
+&prompt.root; <userinput>mount /cfg</userinput>
+&prompt.root; <userinput>cp /etc/resolv.conf /cfg</userinput>
+&prompt.root; <userinput>umount /cfg</userinput></screen>
+ </example>
+
+ <note>
+ <para>Die <filename class="directory">/cfg</filename>
+ Partition sollte nur während des Bootvorgangs und zu
+ Änderungen an den Konfigurationsdateien gemountet
+ werden.</para>
+
+ <para>Die <filename class="directory">/cfg</filename>
+ Partition jederzeit gemountet zu haben ist keine gute Idee,
+ besonders wenn das <application>NanoBSD</application> 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).</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Ein NanoBSD Abbild erstellen</title>
+
+ <para>Ein <application>NanoBSD</application> Abbild wird über
+ ein einfaches <filename>nanobsd.sh</filename> Shell-Skript
+ gebaut, das sich unter <filename
+ class="directory"><replaceable>/usr</replaceable>/src/tools/tools/nanobsd</filename>
+ befindet. Das Skript erstellt ein Abbild, welches dann
+ mittels &man.dd.1; auf einen Massenspeicher kopiert werden
+ kann.</para>
+
+ <para>Die folgenden Kommandos sind notwendig um ein
+ <application>NanoBSD</application> Abbild zu erstellen:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co id="nbsd-cd"/>
+&prompt.root; <userinput>sh nanobsd.sh</userinput> <co id="nbsd-sh"/>
+&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co id="nbsd-cd2"/>
+&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co id="nbsd-dd"/></screen>
+
+ <calloutlist>
+ <callout arearefs="nbsd-cd"> <para>Wechsel in das
+ Basisverzeichnis des <application>NanoBSD</application>
+ Skripts.</para>
+ </callout>
+
+ <callout arearefs="nbsd-sh">
+ <para>Den Bauprozess starten.</para>
+ </callout>
+
+ <callout arearefs="nbsd-cd2">
+ <para>Wechsel in das Verzeichnis, in dem das gebaute Abbild
+ liegt.</para>
+ </callout>
+
+ <callout arearefs="nbsd-dd">
+ <para><application>NanoBSD</application> auf einem
+ Massenspeicher installieren.</para>
+ </callout>
+ </calloutlist>
+ </sect2>
+
+ <sect2>
+ <title>Ein NanoBSD Abbild anpassen</title>
+
+ <para>Dies ist wahrscheinlich das wichtigste und interessanteste
+ Merkmal von <application>NanoBSD</application>. Hierbei
+ werden Sie auch die meiste Zeit mit der Entwicklung von
+ <application>NanoBSD</application> verbringen.</para>
+
+ <para>Der Aufruf des folgenden Kommandos wird
+ <filename>nanobsd.sh</filename> dazu zwingen, seine
+ Konfiguration aus <filename>myconf.nano</filename> aus dem
+ aktuellen Verzeichnis zu lesen:</para>
+
+ <screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen>
+
+ <para>Die Anpassung wird auf zwei Arten geschehen:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Konfigurations-Optionen</para>
+ </listitem>
+
+ <listitem>
+ <para>Benutzerdefinierte Funktionen</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect3>
+ <title>Konfigurations-Optionen</title>
+
+ <para>Durch Konfigurationseinstellungen ist es möglich
+ Optionen zu übergeben, die sowohl die
+ <maketarget>buildworld</maketarget> und
+ <maketarget>installworld</maketarget> Phasen des
+ <application>NanoBSD</application> Bauprozesses betreffen,
+ sowie interne Optionen, die den Haupt-Bauprozess von
+ <application>NanoBSD</application> 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 &os; noch weiter zu
+ trimmen, bis es nur noch aus dem Kernel und zwei oder drei
+ Dateien im Userland besteht.</para>
+
+ <para>Die Konfigurationsdatei besteht aus
+ Konfigurations-Optionen, die die Standardwerte
+ überschreiben.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>NANO_NAME</literal> — Name des Build
+ (wird verwendet, um die workdir Namen zu
+ konstruieren).</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>NANO_SRC</literal> — Pfad zum
+ Quelltextverzeichnis, das für den Bau des Abbilds
+ verwendet wird.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>NANO_KERNEL</literal> — Name der
+ Kernelkonfigurationsdatei, die für den Bau des Kernels
+ verwendet wird.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>CONF_BUILD</literal> — Optionen für
+ die <maketarget>buildworld</maketarget> Phase des
+ Bauprozesses.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>CONF_INSTALL</literal> — Optionen für
+ die <maketarget>installworld</maketarget> Phase des
+ Bauprozesses.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>CONF_WORLD</literal> — Optionen für
+ die <maketarget>buildworld</maketarget> und
+ <maketarget>installworld</maketarget> Phasen des
+ Bauprozesses.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>FlashDevice</literal> — Definiert den
+ zu benutzenden Medientyp. Überprüfen Sie die Datei
+ <filename>FlashDevice.sub</filename> für weitere
+ Informationen.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>Benutzerdefinierte Funktionen</title>
+
+ <para>Mit Hilfe von Shell-Funktionen in der
+ Konfigurationsdatei besteht die Möglichkeit zur
+ Feinabstimmung von <application>NanoBSD</application>. Das
+ folgende Beispiel illustriert das Grundmodell von
+ benutzerdefinierten Funktionen:</para>
+
+ <programlisting>cust_foo () (
+ echo "bar=baz" > \
+ ${NANO_WORLDDIR}/etc/foo
+)
+customize_cmd cust_foo</programlisting>
+
+ <para>Ein besseres Beispiel für eine Anpassung ist folgende,
+ welche die Standardgröße des <filename
+ class="directory">/etc</filename> Verzeichnisses von 5 MB
+ auf 30 MB ändert:</para>
+
+ <programlisting>cust_etc_size () (
+ cd ${NANO_WORLDDIR}/conf
+ echo 30000 > default/etc/md_size
+)
+customize_cmd cust_etc_size</programlisting>
+
+ <para>Es gibt ein paar vordefinierte Standardfunktionen die
+ Sie nutzen können:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>cust_comconsole</literal> —
+ Deaktiviert &man.getty.8; auf den VGA Geräten (den
+ <filename>/dev/ttyv*</filename> Gerätedateien) und
+ ermöglicht die Nutzung der seriellen Schnittstelle COM1
+ als Systemkonsole.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>cust_allow_ssh_root</literal> —
+ Erlaubt es <username>root</username> sich über
+ &man.sshd.8; anzumelden.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>cust_install_files</literal> —
+ Installiert Dateien aus dem <filename
+ class="directory">nanobsd/Files</filename>
+ Verzeichnis, das einige nützliche Skripte für die
+ Systemverwaltung enthält.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>Pakete hinzufügen</title>
+
+ <para>Durch benutzerdefinierte Funktionen können Pakete zum
+ <application>NanoBSD</application> Abbild hinzugefügt
+ werden. Die nachfolgende Funktion installiert alle Pakete
+ aus
+ <filename>/usr/src/tools/tools/nanobsd/packages</filename>:</para>
+
+ <programlisting>install_packages () (
+mkdir -p ${NANO_WORLDDIR}/packages
+cp /usr/src/tools/tools/nanobsd/packages/* ${NANO_WORLDDIR}/packages
+chroot ${NANO_WORLDDIR} sh -c 'cd packages; pkg_add -v *;cd ..;'
+rm -rf ${NANO_WORLDDIR}/packages
+)
+customize_cmd install_packages</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Beispiel einer Konfigurationsdatei</title>
+
+ <para>Ein komplettes Beispiel für eine Konfigurationsdatei zum
+ Erstellen eines benutzerdefinierten
+ <application>NanoBSD</application> Abbilds könnte folgende
+ sein:</para>
+
+ <programlisting>NANO_NAME=custom
+NANO_SRC=/usr/src
+NANO_KERNEL=MYKERNEL
+NANO_IMAGES=2
+
+CONF_BUILD='
+NO_KLDLOAD=YES
+NO_NETGRAPH=YES
+NO_PAM=YES
+'
+
+CONF_INSTALL='
+NO_ACPI=YES
+NO_BLUETOOTH=YES
+NO_CVS=YES
+NO_FORTRAN=YES
+NO_HTML=YES
+NO_LPR=YES
+NO_MAN=YES
+NO_SENDMAIL=YES
+NO_SHAREDOCS=YES
+NO_EXAMPLES=YES
+NO_INSTALLLIB=YES
+NO_CALENDAR=YES
+NO_MISC=YES
+NO_SHARE=YES
+'
+
+CONF_WORLD='
+NO_BIND=YES
+NO_MODULES=YES
+NO_KERBEROS=YES
+NO_GAMES=YES
+NO_RESCUE=YES
+NO_LOCALES=YES
+NO_SYSCONS=YES
+NO_INFO=YES
+'
+
+FlashDevice SanDisk 1G
+
+cust_nobeastie() (
+ touch ${NANO_WORLDDIR}/boot/loader.conf
+ echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf
+)
+
+customize_cmd cust_comconsole
+customize_cmd cust_install_files
+customize_cmd cust_allow_ssh_root
+customize_cmd cust_nobeastie</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>NanoBSD aktualisieren</title>
+
+ <para>The Update-Prozess von <application>NanoBSD</application>
+ ist relativ einfach:</para>
+
+ <procedure>
+ <step>
+ <para>Erstellen Sie ein neues
+ <application>NanoBSD</application> Abbild.</para>
+ </step>
+
+ <step>
+ <para>Laden Sie das neue Abbild in eine unbenutzte Partition
+ eines laufenden <application>NanoBSD</application>
+ Systems.</para>
+
+ <para>Der wichtigste Unterschied dieses Schrittes zur ersten
+ <application>NanoBSD</application> Installation besteht
+ darin, das jetzt anstatt der Datei
+ <filename>_.disk.full</filename> (enthält ein Abbild der
+ gesamten Platte) die Datei
+ <filename>_.disk.image</filename> (enthält ein Abbild
+ einer einzelnen System-Partition) installiet wird.</para>
+ </step>
+
+ <step>
+ <para>Neustart, um das System von der neu installierten
+ Partition zu starten.</para>
+ </step>
+
+ <step>
+ <para>Wenn alles gut geht, ist die Aktualisierung
+ abgeschlossen.</para>
+ </step>
+
+ <step>
+ <para>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.</para>
+ </step>
+ </procedure>
+
+ <para>Um das neue Abbild auf das laufende
+ <application>NanoBSD</application> System zu installieren, ist
+ es möglich, entweder das <filename>updatep1</filename> oder
+ <filename>updatep2</filename> Skript im <filename
+ class="directory">/root</filename> Verzeichnis zu verwenden,
+ je nachdem, von welcher Partition das aktuelle System
+ läuft.</para>
+
+ <para>In Abhängigkeit davon welche Dienste der Host, der das
+ <application>NanoBSD</application> Abbild anbietet, und welche
+ Art von Transfer bevorzugt wird, bestehen eine von drei zu
+ prüfenden Möglichkeiten:</para>
+
+ <sect3>
+ <title>Verwendung von &man.ftp.1;</title>
+
+ <para>Wenn die Übertragungsgeschwindigkeit an erster
+ Stelle steht, verwenden Sie dieses Beispiel:</para>
+
+ <screen>&prompt.root; <userinput>ftp myhost
+get _.disk.image "| sh updatep1"</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>Verwendung von &man.ssh.1;</title>
+
+ <para>Wenn eine sichere Übertragung bevorzugt wird,
+ sollten Sie die Verwendung dieses Beipiels in Betracht
+ ziehen:</para>
+
+ <screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>Verwendung von &man.nc.1;</title>
+
+ <para>Verwenden Sie dieses Beispiel, wenn auf dem Remote-Host
+ kein &man.ftpd.8; oder &man.sshd.8; Dienst läuft:</para>
+
+ <procedure>
+ <step>
+ <para>Zunächst öffnen Sie eine TCP-Listener auf dem Host
+ der das Abbild bereitstellt und zum Client
+ sendet:</para>
+
+ <screen>myhost&prompt.root; <userinput>nc -l <replaceable>2222</replaceable> < _.disk.image</userinput></screen>
+
+ <note>
+ <para>Stellen Sie sicher das der benutzte Port nicht
+ blockiert wird, um eingehende Verbindungen, vom
+ <application>NanoBSD</application> Host durch die
+ Firewall, zu ermöglichen.</para>
+ </note>
+ </step>
+ <step>
+ <para>Verbinden Sie sich zum Host der das Abbild
+ bereitstellt und führen Sie das
+ <filename>updatep1</filename> Skript aus:</para>
+
+ <screen>&prompt.root; <userinput>nc myhost <replaceable>2222</replaceable> | sh updatep1</userinput></screen>
+ </step>
+ </procedure>
+ </sect3>
+ </sect2>
+ </sect1>
+</article>
More information about the svn-doc-head
mailing list