MFen 1.16 -> 1.17

This commit is contained in:
Rene Ladan 2009-05-06 21:36:01 +00:00
parent dd644541df
commit 839e7d35c5
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=34229

View file

@ -27,10 +27,10 @@
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD: $
$FreeBSD$
%SOURCE% en_US.ISO8859-1/articles/solid-state/article.sgml
%SRCID% 1.16
%SRCID% 1.17
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@ -82,7 +82,7 @@
en attributen van solid state-media die geschikt zijn om in &os;
als schijf te gebruiken, kernelopties die interessant zijn in
zo'n omgeving, de mechanismen van
<filename>rc.diskless</filename> die de initialisatie van zulke
<filename>rc.initdiskless</filename> die de initialisatie van zulke
systemen automatiseren en de noodzaak voor alleen-lezen
bestandssystemen, en het van voor af aan bouwen van
bestandssystemen. Het artikel zal afsluiten met wat algemene
@ -140,8 +140,8 @@
<para>Enkele kernelopties zijn specifiek interessant voor degenen
die een embedded &os;-systeem cre&euml;ren.</para>
<para>Ten eerste zullen alle embedded &os;-systemen die
flash-geheugen als systeemschijf gebruiken ge&iuml;ntereseerd zijn
<para>Alle embedded &os;-systemen die flash-geheugen als
systeemschijf gebruiken zullen ge&iuml;ntereseerd zijn
in geheugenschijven en geheugenbestandssystemen. Vanwege het
beperkt aantal keren dat het flash-geheugen kan worden beschreven,
is het het waarschijnlijkst dat de schijf en de bestandssystemen
@ -162,55 +162,30 @@ pseudo-device md # geheugenschijf</programlisting>
</sect1>
<sect1 id="ro-fs">
<title><filename>rc.diskless</filename> en alleen-lezen
<title>Het <literal>rc</literal>-deelsysteem en alleen-lezen
bestandssystemen</title>
<para>De post-boot-initialisatie van een embedded &os;-systeem wordt
beheerd door <filename>/etc/rc.diskless2</filename>
(<filename>/etc/rc.diskless1</filename> is voor BOOTP-schijfloos
opstarten). Dit initialisatiescript wordt aangeroepen door de
volgende regel in <filename>/etc/rc.conf</filename> te
plaatsen:</para>
beheerd door <filename>/etc/rc.initdiskless</filename>.</para>
<programlisting>diskless_mount=/etc/rc.diskless2</programlisting>
<para><filename>rc.diskless2</filename> koppelt
<para><filename>/etc/rc.d/var</filename> koppelt
<filename>/var</filename> als een geheugenbestandssysteem aan,
maakt een instelbare lijst van mappen in <filename>/var</filename>
aan met het commando &man.mkdir.1;, verandert de modus van sommige
van deze mappen, en pakt een lijst van apparaatingangen uit naar
een schrijfbare (weer als een geheugenbestandssysteem) partitie
<filename>/dev</filename>. Tijdens het uitvoeren van
<filename>/etc/rc.diskless2</filename> is er nog een
<filename>rc.conf</filename>-variabele in het spel -
aan met het commando &man.mkdir.1;, en verandert de modus van sommige
van deze mappen. Tijdens het uitvoeren van
<filename>/etc/rc.d/var</filename> is er nog een
<filename>rc.conf</filename>-variabele in het spel &ndash;
<literal>varsize</literal>. Het bestand
<filename>/etc/rc.diskless2</filename> maakt een partitie
<filename>/etc/rc.d/var</filename> maakt een partitie
<filename>/var</filename> aan gebaseerd op de waarde van deze
variabele in <filename>rc.conf</filename>:</para>
<programlisting>varsize=8192</programlisting>
<para>Onthoud dat deze waarde in sectoren is. De creatie van de
partitie <filename>/dev</filename> door
<filename>/etc/rc.diskless2</filename>, wordt echter geregeerd
door een harde waarde van 4096 sectoren. Het is triviaal om deze
waarde in het bestand <filename>/etc/rc.diskless2</filename> zelf
te wijzigen, alhoewel er niet meer ruimte voor
<filename>/dev</filename> dan dat nodig zou zijn.</para>
<para>Onthoud dat deze waarde standaard in sectoren is.</para>
<para>Het is belangrijk om te herinneren dat het script
<filename>/etc/rc.diskless2</filename> aanneemt dat de
conventionele partitie <filename>/tmp</filename> reeds door een
symbolische koppeling naar <filename>/var/tmp</filename> is
vervangen. Omdat <filename>tmp</filename> een van de mappen is
die in <filename>/var</filename> door het script
<filename>/etc/rc.diskless2</filename> wordt aangemaakt, en omdat
<filename>/var</filename> een geheugenbestandssysteem is (dat als
lezen-schrijven is aangekoppeld), zal <filename>/tmp</filename> nu
ook een lees-schrijf map zijn.</para>
<para>Het feit dat <filename>/var</filename> en
<filename>/dev</filename> lees-schrijf bestandssystemen zijn is
<para>Het feit dat <filename>/var</filename> een bestandssysteem is
dat zowel gelezen als geschreven wordt is
een belangrijk verschil, aangezien de partitie
<filename>/</filename> (en alle andere partities die op uw
flash-medium kunnen staan) als alleen-lezen aangekoppeld dienen te
@ -222,9 +197,8 @@ pseudo-device md # geheugenschijf</programlisting>
wisselbestand op een druk systeem kan binnen een jaar een
flash-medium opmaken. Het uitgebreid loggen of aanmaken en
vernietigen van tijdelijke bestanden kan hetzelfde doen. Daarom
dient u, naast het verwijderen van de regels
<literal>swap</literal> en <literal>/proc</literal> uit het
bestand <filename>/etc/fstab</filename>, dient u ook de Options
dient u, naast het verwijderen van de regel <literal>swap</literal>
uit het bestand <filename>/etc/fstab</filename>, ook de Options
van elk bestandssysteem als volgt op <literal>ro</literal> te
zetten:</para>
@ -233,15 +207,13 @@ pseudo-device md # geheugenschijf</programlisting>
<para>Op een gemiddeld systeem zullen enkele applicaties het
onmiddellijk niet meer doen als gevolg van deze verandering.
Ports bijvoorbeeld zullen niet installeren vanuit de portsboom
omdat <filename>/var/db/port.mkversion</filename> niet bestaat.
cron zal niet correct draaien vanwege ontbrekende crontabellen in
cron zal niet correct draaien vanwege ontbrekende cron-tabellen in
het <filename>/var</filename> dat door
<filename>/etc/rc.diskless2</filename> is aangemaakt, en syslog en
<filename>/etc/rc.d/var</filename> is aangemaakt, en syslog en
DHCP zullen problemen ondervinden als gevolg van het alleen-lezen
bestandssysteem en ontbrekende items in het
<filename>/var</filename> dat
<filename>/etc/rc.diskless2</filename> heeft aangemaakt. Dit zijn
<filename>/etc/rc.d/var</filename> heeft aangemaakt. Dit zijn
slechts tijdelijke problemen, en worden tezamen met oplossingen
voor het uitvoeren van andere veelgebruikte softwarepakketten
behandeld in <xref linkend="strategies">.</para>
@ -399,7 +371,7 @@ pseudo-device md # geheugenschijf</programlisting>
<para>In <xref linkend="ro-fs"> werd erop gewezen dat het
bestandssysteem <filename>/var</filename> zoals geconstrueerd
door <filename>/etc/rc.diskless2</filename> en de aanwezigheid van
door <filename>/etc/rc.d/var</filename> en de aanwezigheid van
een hoofdbestandssysteem dat alleen gelezen kan worden problemen
veroorzaakt met veel alledaagse softwarepakketten die door &os;
gebruikt worden. In dit artikel zullen suggesties voor het
@ -409,20 +381,16 @@ pseudo-device md # geheugenschijf</programlisting>
<sect2>
<title>cron</title>
<para>In <filename>/etc/rc.diskless2</filename> staat een
variabele genaamd <literal>var_dirs</literal>. Deze variabele
bestaat uit een met spaties afgebakende lijst van mappen die
binnen <filename>/var</filename> aangemaakt zullen worden nadat
het als een geheugenbestandssysteem is aangekoppeld.
<filename>cron</filename> en <filename>cron/tabs</filename>
staan niet in deze lijst, en zonder deze mappen zal cron klagen.
Door <literal>cron</literal>, <literal>cron/tabs</literal>, en
misschien zelfs <literal>at</literal> en
<literal>at/jobs</literal> als elementen van deze variabele toe
te voegen, wordt het makkelijker om de daemons &man.cron.8; en
&man.at.1; te draaien.</para>
<para>Tijdens het opstarten wordt <filename
class="directory">/var</filename> bevolkt door
<filename>/etc/rc.d/var</filename> dat de lijst van
<filename>/etc/mtree/BSD.var.dist</filename> gebruikt, dus
<filename class="directory">cron</filename>, <filename
class="directory">cron/tabs</filename>, <filename
class="directory">at</filename>, en nog wat andere
standaardmappen worden aangemaakt.</para>
<para>Dit lost echter nog steeds niet het probleem van het
<para>Dit lost echter nog niet het probleem van het
behouden van cron-tabellen na het opnieuw opstarten op. Wanneer
het systeem opnieuw opstart, zal het bestandssysteem
<filename>/var</filename> dat in het geheugen staat verdwijnen
@ -432,13 +400,13 @@ pseudo-device md # geheugenschijf</programlisting>
<filename>/</filename> als lezen-schrijven aan te koppelen en
die cron-tabellen naar een veilige plaats zoals
<filename>/etc/tabs</filename> te kopi&euml;ren en een regel aan
het einde van <filename>/etc/rc.diskless2</filename> toe te
het einde van <filename>/etc/rc.initdiskless</filename> toe te
voegen die deze cron-tabellen naar
<filename>/var/cron/tabs</filename> kopieert nadat die map is
aangemaakt tijdens de syseeminitialisatie. U moet misschien ook
een regel toevoegen die de modi en toestemmingen van de mappen
die u aanmaakt en de bestanden die u met
<filename>etc/rc.diskless2</filename> kopieert verandert.</para>
<filename>etc/rc.initdiskless</filename> kopieert verandert.</para>
</sect2>
<sect2>
@ -447,21 +415,18 @@ pseudo-device md # geheugenschijf</programlisting>
<para><filename>syslog.conf</filename> specificeert de plaats van
bepaalde logbestanden die in <filename>/var/log</filename>
bestaan. Deze bestanden worden niet door
<filename>/etc/rc.diskless2</filename> tijdens de
<filename>/etc/rc.d/var</filename> tijdens de
systeeminitialisatie aangemaakt. Daarom dient u ergens na de
sectie die de mappen in <filename>/var</filename> aanmaakt in
<filename>/etc/rc.diskless2</filename> iets als het volgende
<filename>/etc/rc.d/var</filename> iets als het volgende
toevoegen:</para>
<screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen>
<para>U moet ook de logmap toevoegen aan de lijst van mappen die
<filename>/etc/rc.diskless2</filename> aanmaakt.</para>
</sect2>
<sect2>
<title>ports-installatie</title>
<title>Ports installeren</title>
<para>Voordat de veranderingen die nodig zijn om succesvol de
portsboom te gebruiken besproken worden, is een herinnering ten
@ -491,7 +456,7 @@ pseudo-device md # geheugenschijf</programlisting>
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
<para>Voeg nu een regel aan <filename>/etc/rc.diskless2</filename>
<para>Voeg nu een regel aan <filename>/etc/rc.d/var</filename>
toe die de map <filename>/etc/pkg</filename> aan
<filename>/var/db/pkg</filename> koppelt. Een voorbeeld:</para>
@ -510,35 +475,45 @@ pseudo-device md # geheugenschijf</programlisting>
<sect2>
<title>Apache Web Server</title>
<para>Apache houdt pid-bestanden en logs in
<filename><replaceable>apache_install</replaceable>/logs</filename>.
Aangezien deze map ongetwijfeld op een bestandssysteem staat dat
alleen gelezen kan worden, zal dit niet werken. Het is nodig om
een nieuwe map aan de lijst van mappen die in
<filename>/var</filename> aangemaakt moeten worden toe te voegen
in <filename>/etc/rc.diskless2</filename> en om
<filename><replaceable>apache_install</replaceable>/logs</filename>
<note>
<para>De stappen in deze sectie zijn alleen nodig indien Apache
is ingesteld om de pid- of loginformatie buiten <filename
class="directory">/var</filename> te schrijven. Standaard
houdt Apache het pid-bestand in <filename
class="directory">/var/run/httpd.pid</filename> en de
logbestanden in <filename class="directory">/var/log</filename>.</para>
</note>
<para>Er wordt nu aangenomen dat Apache de logbestanden in een map
<filename class="directory"><replaceable>apache_log_map</replaceable></filename>
buiten <filename class="directory">/var</filename> bewaart.
Wanneer deze map op een alleen-lezen bestandssysteem staat, zal
Apache geen logbestanden kunnen opslaan, en kan het werkproblemen
hebben. Indien dit zo is, is het noodzakelijk om een nieuwe map
aan de lijst met mappen in <filename>/etc/rc.d/var</filename> die
in <filename>/var</filename> worden aangemaakt toe te voegen, en om
<filename class="directory"><replaceable>apache_log_map</replaceable></filename>
aan <filename>/var/log/apache</filename> te koppelen. Het is
ook nodig om de toestemmingen en eigenaarschappen van deze
nieuwe map in te stellen.</para>
<para>Voeg eerst de map <literal>log/apache</literal> toe aan de
lijst van mappen die in <filename>/etc/rc.diskless2</filename>
lijst van mappen die in <filename>/etc/rc.d/var</filename>
aangemaakt moeten worden.</para>
<para>Voeg ten tweede deze commando's toe aan
<filename>/etc/rc.diskless2</filename> na de sectie die mappen
<filename>/etc/rc.d/var</filename> na de sectie die mappen
aanmaakt:</para>
<screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput>
&prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen>
<para>Verwijder als laatste de bestaande map
<filename><replaceable>apache_install</replaceable>/logs</filename>
<filename class="directory"><replaceable>apache_log_map</replaceable></filename>
en vervang het door een koppeling:</para>
<screen>&prompt.root; <userinput>rm -rf (apache_installatie)/logs</userinput>
&prompt.root; <userinput>ln -s /var/log/apache (apache_installatie)/logs</userinput></screen>
<screen>&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_map</replaceable></filename></userinput>
&prompt.root; <userinput>ln -s /var/log/apache <filename class="directory"><replaceable>apache_log_map</replaceable></filename></userinput></screen>
</sect2>
</sect1>
</article>