doc/fr_FR.ISO8859-1/articles/nanobsd/article.xml
2013-11-13 07:52:45 +00:00

560 lines
17 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
The FreeBSD Documentation Project
The FreeBSD French Documentation Project
$FreeBSD$
Original revision: 1.2
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
<info><title>Introduction &agrave; NanoBSD</title>
<authorgroup>
<author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname></author>
</authorgroup>
<copyright>
<year>2006</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>Ce document fournit des informations &agrave; propos des
outils <application>NanoBSD</application>, qui peuvent
être utilisés pour créer des images du
système &os; pour des applications embarquées,
adaptées pour utiliser comme support une carte Compact
Flash (ou tout autre support de stockage).</para>
&trans.a.tignon;
</abstract>
</info>
<sect1 xml:id="intro">
<title>Introduction &agrave; NanoBSD</title>
<indexterm><primary>NanoBSD</primary></indexterm>
<para><application>NanoBSD</application> est un outil actuellement
développé par &a.phk;. Il permet de créer
une image du système &os; pour des applications
embarquées, pouvant utiliser une carte Compact Flash
comme support (ou un autre support de stockage)</para>
<para>Il peut être utilisé pour créer des
images d'installation spécialisées, conçues
pour une installation et une maintenance aisées de
systèmes communément appelés
<quote>appliances</quote>. Les appliances ont leur
matériel et leur logiciel intégrés dans le
produit, ce qui signifie que toutes les applications sont
pré-installées. L'appliance est connectée
&agrave; un réseau existant et peut entrer en fonction
(presque) immédiatement.</para>
<para>Les fonctionnalités de
<application>NanoBSD</application> incluent:</para>
<itemizedlist>
<listitem>
<para>Les logiciels portés et les paquetages
fonctionnent comme sous &os; &mdash; Chaque application peut
être installée et utilisée dans une
image <application>NanoBSD</application>, de la même
façon que sous &os;.</para>
</listitem>
<listitem>
<para>Aucune fonctionnalité ne manque &mdash; S'il est
possible de faire quelque chose avec &os;, il sera possible
de faire la même chose avec
<application>NanoBSD</application>, sauf si la
fonctionnalité spécifique ou des
fonctionnalités ont été explicitement
supprimées de l'image
<application>NanoBSD</application> lors de sa
création.</para>
</listitem>
<listitem>
<para>Tout est en lecture seule pendant l'exécution
&mdash; Débrancher le cordon d'alimentation est sans
danger. Il n'est pas nécessaire d'exécuter
&man.fsck.8; après un arrêt inopiné du
système.</para>
</listitem>
<listitem>
<para>Facile &agrave; créer et &agrave; personnaliser
&mdash; A l'aide d'une seule procédure et d'un
fichier de configuration il est possible de créer des
images personnalisées et de taille réduite
répondant &agrave; n'importe quel type de
besoin.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="howto">
<title>Comment utiliser NanoBSD</title>
<sect2 xml:id="design">
<title>L'organisation de NanoBSD</title>
<para>Une fois que l'image est présente sur le support,
il est possible de démarrer
<application>NanoBSD</application>. Le
périphérique de stockage est divisé en
trois parties par défaut:</para>
<itemizedlist>
<listitem>
<para>Deux partitions image: <literal>code#1</literal>
et <literal>code#2</literal>.</para>
</listitem>
<listitem>
<para>La partition de configuration, qui peut être
montée sur le répertoire <filename>/cfg</filename> &agrave;
l'exécution.</para>
</listitem>
</itemizedlist>
<para>Ces partitions sont normalement montées en lecture
seule.</para>
<para>Les répertoires <filename>/etc</filename> et <filename>/var</filename> sont des disques &man.md.4;
(malloc).</para>
<para>La partition de configuration est montée sur le
répertoire <filename>/cfg</filename>.
Elle contient les fichiers du répertoire <filename>/etc</filename> et est brièvement
montée en lecture seule juste après le
démarrage du système, par conséquent il
est nécessaire de recopier les fichiers modifiés
de <filename>/etc</filename> vers le
répertoire <filename>/cfg</filename>
si l'on souhaite que les changements soient encore effectifs
après le redémarrage du système.</para>
<example>
<title>Apporter des changements permanents &agrave;
<filename>/etc/resolv.conf</filename></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>La partition qui abrite <filename>/cfg</filename> doit être
montée uniquement au démarrage et lors de la
copie des fichiers de configuration.</para>
<para>Garder <filename>/cfg</filename>
monté en permanence n'est pas une bonne idée,
en particulier si le système
<application>NanoBSD</application> tourne sur un
périphérique de stockage qui peut être
endommagé par un grand nombre d'écritures sur
la partition (c'est &agrave; dire quand le contenu des
tampons de données est transféré sur
les disques).</para>
</note>
</sect2>
<sect2>
<title>Créer une image NanoBSD</title>
<para>Une image <application>NanoBSD</application> est
créée &agrave; l'aide d'une simple
procédure <filename>nanobsd.sh</filename>, qui peut
être trouvée dans le répertoire <filename>/usr/src/tools/tools/nanobsd</filename>.
Ce programme crée une image, qui peut être
copiée sur le support de stockage &agrave; l'aide de
&man.dd.1;.</para>
<para>Les commandes nécessaires &agrave; la
création d'une image <application>NanoBSD</application>
sont:</para>
<screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co xml:id="nbsd-cd"/>
&prompt.root; <userinput>sh nanobsd.sh</userinput> <co xml:id="nbsd-sh"/>
&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co xml:id="nbsd-cd2"/>
&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co xml:id="nbsd-dd"/></screen>
<calloutlist>
<callout arearefs="nbsd-cd">
<para>Se placer dans le répertoire de base du
programme de création de
<application>NanoBSD</application>.</para>
</callout>
<callout arearefs="nbsd-sh">
<para>Démarrer le processus de
création.</para>
</callout>
<callout arearefs="nbsd-cd2">
<para>Se placer dans le répertoire où les
images ont été créees.</para>
</callout>
<callout arearefs="nbsd-dd">
<para>Installer <application>NanoBSD</application> sur le
support de stockage.</para>
</callout>
</calloutlist>
</sect2>
<sect2>
<title>Personnaliser une image NanoBSD</title>
<para>C'est probablement la fonctionnalité la plus
importante et la plus intéressante de
<application>NanoBSD</application>. C'est aussi l&agrave;
où vous passerez le plus de temps lors de vos
développements avec
<application>NanoBSD</application>.</para>
<para>L'invocation de la commande suivante va obliger
<filename>nanobsd.sh</filename> &agrave; lire sa configuration
dans le fichier <filename>myconf.nano</filename> situé
dans le répertoire courant:</para>
<screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen>
<para>La personnalisation est effectuée de 2
façons:</para>
<itemizedlist>
<listitem>
<para>&agrave; l'aide d'options de configuration</para>
</listitem>
<listitem>
<para>&agrave; l'aide de fonctions de
personnalisation</para>
</listitem>
</itemizedlist>
<sect3>
<title>Les options de configuration</title>
<para>Grace aux paramètres de configuration, il est
possible de configurer des options qui sont passées
aux étapes <literal>buildworld</literal> et
<literal>installworld</literal> du processus de compilation
de <application>NanoBSD</application>, ainsi que des options
internes qui sont passées au processus principal de
compilation de <application>NanoBSD</application>. A l'aide
de ces options, il est possible de diminuer la taille du
système, de façon &agrave; ce qu'il tienne
dans 64Mo. Vous pouvez utiliser les options de
configuration pour réduire encore plus &os;,
jusqu'&agrave; ce qu'il ne consiste plus qu'en un noyau et 2
ou 3 fichiers dans le système de base.</para>
<para>Le fichier de configuration consiste en une série
d'options de configuration, qui surchargent les valeurs par
défaut. Les directives les plus importantes
sont:</para>
<itemizedlist>
<listitem>
<para><literal>NANO_NAME</literal> &mdash; Nom de
compilation (utilisé pour créer le nom des
répertoires de travail).</para>
</listitem>
<listitem>
<para><literal>NANO_SRC</literal> &mdash; Chemin de
l'arbre des sources utilisé pour construire
l'image.</para>
</listitem>
<listitem>
<para><literal>NANO_KERNEL</literal> &mdash; Nom du
fichier de configuration utilisé pour compiler le
noyau.</para>
</listitem>
<listitem>
<para><literal>CONF_BUILD</literal> &mdash; Options
passées &agrave; la phase
<literal>buildworld</literal> de la compilation.</para>
</listitem>
<listitem>
<para><literal>CONF_INSTALL</literal> &mdash; Options
passées &agrave; la phase
<literal>installworld</literal> de la
compilation.</para>
</listitem>
<listitem>
<para><literal>CONF_WORLD</literal> &mdash; Options
passées aux étapes
<literal>buildworld</literal> et
<literal>installworld</literal>.</para>
</listitem>
<listitem>
<para><literal>FlashDevice</literal> &mdash;
Définit le type de support &agrave; utiliser.
Consulter le fichier
<filename>FlashDevice.sub</filename> pour plus de
détails.</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Les fonctions de personnalisation</title>
<para>Il est possible d'optimiser
<application>NanoBSD</application> en utilisant des
fonctions d'interpréteur de commandes dans le fichier
de configuration. L'exemple suivant présente la
trame de base des fonctions de personnalisation:</para>
<programlisting>cust_foo () (
echo "bar=topless" &gt; \
&dollar;{NANO_WORLDDIR}/etc/foo
)
customize_cmd cust_foo</programlisting>
<para>Un exemple plus utile de fonction de personnalisation
est le suivant, qui change la taille par défaut du
répertoire <filename>/etc</filename>
de 5Mo &agrave; 30Mo:</para>
<programlisting>cust_etc_size () (
cd &dollar;{NANO_WORLDDIR}/conf
echo 30000 &gt; default/etc/md_size
)
customize_cmd cust_etc_size</programlisting>
<para>Il existe par défaut quelques fonctions de
personnalisation prédéfinies et prêtes
&agrave; être utilisées:</para>
<itemizedlist>
<listitem>
<para><literal>cust_comconsole</literal> &mdash;
Désactive &man.getty.8; sur les consoles VGA (les
périphériques
<filename>/dev/ttyv*</filename>) et paramètre la
console système sur le port série
COM1.</para>
</listitem>
<listitem>
<para><literal>cust_allow_ssh_root</literal> &mdash;
Autorise l'ouverture de sessions
<systemitem class="username">root</systemitem> via &man.sshd.8;.</para>
</listitem>
<listitem>
<para><literal>cust_install_files</literal> &mdash;
Installe les fichiers du répertoire <filename>nanobsd/Files</filename>, qui contient
des programmes utiles pour l'administration
système.</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Exemple de fichier de configuration</title>
<para>Un exemple complet de fichier de configuration pour
créer une image <application>NanoBSD</application>
personnalisée peut être:</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 &dollar;{NANO_WORLDDIR}/boot/loader.conf
echo "beastie_disable=\"YES\"" &gt;&gt; &dollar;{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>Mettre &agrave; jour NanoBSD</title>
<para>Le processus de mise &agrave; jour de
<application>NanoBSD</application> est relativement
simple:</para>
<procedure>
<step>
<para>Créer une nouvelle image
<application>NanoBSD</application>, comme
d'habitude.</para>
</step>
<step>
<para>Télécharger la nouvelle image dans une
partition inutilisée d'une appliance
<application>NanoBSD</application>
opérationnelle.</para>
<para>La différence la plus importante de cette
étape par rapport &agrave; l'installation initiale
de <application>NanoBSD</application> est que maintenant
au lieu d'utiliser le fichier
<filename>_.disk.full</filename> (qui contient une image
de la totalité du disque), l'image
<filename>_.disk.image</filename> est installée
(qui contient seulement l'image d'une seule partition
système).</para>
</step>
<step>
<para>Redémarrer le système sur la nouvelle
partition.</para>
</step>
<step>
<para>Si tout s'est bien passé, la mise &agrave; jour
est terminée.</para>
</step>
<step>
<para>Si quelque chose s'est mal passé,
redémarrez de nouveau sur la partition
précédente (qui contient l'ancienne image,
fonctionnelle celle-ci), pour remettre le système
en état de marche le plus rapidement possible.
Corriger les problèmes de la nouvelle image, et
répéter le processus.</para>
</step>
</procedure>
<para>Pour installer la nouvelle image sur le système
<application>NanoBSD</application> opérationnel, il est
possible d'utiliser la procédure
<filename>updatep1</filename> ou <filename>updatep2</filename>
située dans le répertoire <filename>/root</filename>, en fonction de la partition
qui est en cours d'utilisation sur le système.</para>
<para>En fonction des services disponibles sur la machine qui
dispose de la nouvelle image
<application>NanoBSD</application> et du type de transfert qui
est préféré, il est possible d'utiliser
une de ces trois méthodes:</para>
<sect3>
<title>Utiliser &man.ftp.1;</title>
<para>Si la vitesse de transfert est la priorité,
utiliser cet exemple:</para>
<screen>&prompt.root; <userinput>ftp myhost
get _.disk.image "| sh updatep1"</userinput></screen>
</sect3>
<sect3>
<title>Utiliser &man.ssh.1;</title>
<para>Si un transfert sécurisé est
préférable, considérer l'utilisation de
cet exemple:</para>
<screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen>
</sect3>
<sect3>
<title>Utiliser &man.nc.1;</title>
<para>Utiliser cet exemple si la machine distante n'utilise ni
&man.ftp.1; ni &man.sshd.8;:</para>
<procedure>
<step>
<para>Tout d'abord, ouvrez un écouteur TCP sur la
machine qui dispose de l'image et faites-lui envoyer
l'image au client:</para>
<screen>myhost&prompt.root; <userinput>nc -l 2222 &lt; _.disk.image</userinput></screen>
<note>
<para>Assurez vous que le port utilisé n'est pas
bloqué par un pare-feu afin de recevoir les
connexions entrantes de la machine
<application>NanoBSD</application>.</para>
</note>
</step>
<step>
<para>Se connecter &agrave; la machine qui dispose de la
nouvelle image et exécuter la procédure
<filename>updatep1</filename>:</para>
<screen>&prompt.root; <userinput>nc myhost 2222 | sh updatep1</userinput></screen>
</step>
</procedure>
</sect3>
</sect2>
</sect1>
<index/>
</article>