509 lines
24 KiB
XML
509 lines
24 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">
|
||
<!-- Copyright (c) 2001 The FreeBSD Documentation Project
|
||
|
||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
|
||
modification, are permitted provided that the following conditions
|
||
are met:
|
||
|
||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||
copyright notice, this list of conditions and the following
|
||
disclaimer as the first lines of this file unmodified.
|
||
|
||
2. Redistributions in compiled form (transformed to other DTDs,
|
||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||
the above copyright notice, this list of conditions and the
|
||
following disclaimer in the documentation and/or other materials
|
||
provided with the distribution.
|
||
|
||
THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
|
||
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY
|
||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||
POSSIBILITY OF SUCH DAMAGE.
|
||
|
||
$FreeBSD$
|
||
|
||
%SOURCE% en_US.ISO8859-1/articles/solid-state/article.xml
|
||
%SRCID% 41645
|
||
-->
|
||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="nl">
|
||
<info><title>&os; en Solid State Apparaten</title>
|
||
|
||
|
||
<authorgroup>
|
||
<author><personname><firstname>John</firstname><surname>Kozubik</surname></personname><affiliation>
|
||
<address><email>john@kozubik.com</email></address>
|
||
</affiliation></author>
|
||
</authorgroup>
|
||
|
||
<copyright>
|
||
<year>2001</year>
|
||
<year>2009</year>
|
||
<holder>The &os; Documentation Project</holder>
|
||
</copyright>
|
||
|
||
<pubdate>$FreeBSD$</pubdate>
|
||
|
||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||
|
||
<legalnotice xml:id="trademarks" role="trademarks">
|
||
&tm-attrib.freebsd;
|
||
&tm-attrib.general;
|
||
</legalnotice>
|
||
|
||
&legalnotice;
|
||
|
||
<abstract>
|
||
<para>Dit artikel behandelt het gebruik van solid state
|
||
disk-apparaten in &os; voor het maken van embedded
|
||
systemen.</para>
|
||
|
||
<para>Embedded systemen hebben het voordeel van verhoogde
|
||
stabiliteit wegens het ontbreken van bewegende delen (harde
|
||
schijven). Er moet echter rekening worden gehouden met de over
|
||
het algemeen weinig beschikbare schijfruimte in het systeem en
|
||
de duurzaamheid van het opslagmedium.</para>
|
||
|
||
<para>Specifieke onderwerpen die aan bod komen omvatten de typen
|
||
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.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
|
||
strategi<67>n voor kleine en alleen-lezen
|
||
&os;-omgevingen.</para>
|
||
|
||
<para><emphasis>Vertaald door Ren<65> Ladan</emphasis>.</para>
|
||
</abstract>
|
||
</info>
|
||
|
||
<sect1 xml:id="intro">
|
||
<title>Solid State Disk-apparaten</title>
|
||
|
||
<para>Het bereik van dit artikel zal beperkt zijn tot solid state
|
||
disk-apparaten die gemaakt zijn met flash-geheugen.
|
||
Flash-geheugen is een solid state-geheugen (geen bewegende
|
||
onderdelen) dat niet-vluchtig is (het geheugen blijft gegevens
|
||
behouden zelf nadat alle stroombronnen zijn ontkoppeld).
|
||
Flash-geheugen kan enorme fysieke schokken weerstaan en is
|
||
redelijk snel (de oplossingen met flash-geheugens die in dit
|
||
artikel worden behandeld zijn iets langzamer dan een EIDE-harde
|
||
schijf voor schrijfbewerkingen, en veel sneller voor
|
||
leesbewerkingen). Een heel belangrijk aspect van flash-geheugen,
|
||
waarvan de ramnificaties later in dit artikel besproken zullen
|
||
worden, is dat elke sector een beperkte herschrijfcapaciteit heeft.
|
||
Een sector flash-geheugen kan maar een bepaald aantal keren
|
||
beschreven, gewist, en herschreven worden voordat de sector
|
||
permanent onbruikbaar wordt. Hoewel veel flash-geheugenproducten
|
||
automatisch slechte blokken in kaart brengen, en hoewel sommigen
|
||
zelfs schrijfoperaties gelijkmatig over de eenheid distribueren,
|
||
blijft het een feit dat er een limiet bestaat aan de hoeveelheid
|
||
waarmee het apparaat kan worden beschreven. Concurrerende
|
||
apparaten hebben tussen de 1.000.000 en 10.000.000
|
||
schrijfbewerkingen per sector in hun specificaties staan. Dit
|
||
getal varieert vanwege de omgevingstemperatuur.</para>
|
||
|
||
<para>In het bijzonder worden ATA-compatibele compact-flash-eenheden
|
||
besproken, welke vrij populair zijn als opslagmedium voor digitale
|
||
camera's. Bijzonder interessant is het feit dat de pinnen ervan
|
||
precies met die van de IDE-bus overeenkomen en dat ze compatibel
|
||
zijn met de ATA-commandoverzameling. Daarom kunnen deze apparaten
|
||
direct aan een IDE-bus in een computer gekoppeld worden met een
|
||
zeer eenvoudige en goedkope adapter. Eenmaal op deze wijze
|
||
ge<67>mplementeerd zien besturingssystemen zoals &os; het
|
||
apparaat als een normale harde schijf (doch klein).</para>
|
||
|
||
<para>Er bestaan nog andere solid state disk-oplossingen, maar hun
|
||
kosten, zeldzaamheid, en relatieve gebruiksongemak plaatst ze
|
||
buiten het bereik van dit artikel.</para>
|
||
</sect1>
|
||
|
||
<sect1 xml:id="kernel">
|
||
<title>Kernelopties</title>
|
||
|
||
<para>Enkele kernelopties zijn specifiek interessant voor degenen
|
||
die een embedded &os;-systeem cre<72>ren.</para>
|
||
|
||
<para>Alle embedded &os;-systemen die flash-geheugen als
|
||
systeemschijf gebruiken zullen ge<67>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
|
||
op de schijf als alleen-lezen worden aangekoppeld. In deze
|
||
omgeving zullen bestandssystemen zoals <filename>/tmp</filename>
|
||
en <filename>/var</filename> als geheugenbestandssystemen worden
|
||
aangekoppeld zodat het systeem logs kan cre<72>ren en tellers en
|
||
tijdelijke bestanden kan bijwerken. Geheugenbestandssystemen zijn
|
||
een kritiek station naar een succesvolle implementatie van solid
|
||
state &os;.</para>
|
||
|
||
<para>De volgende regels dienen in uw kernelinstellingenbestand te
|
||
staan:</para>
|
||
|
||
<programlisting>options MFS # Geheugenbestandssysteem
|
||
options MD_ROOT # md-apparaat bruikbaar als een potentieel root-apparaat
|
||
pseudo-device md # geheugenschijf</programlisting>
|
||
</sect1>
|
||
|
||
<sect1 xml:id="ro-fs">
|
||
<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.initdiskless</filename>.</para>
|
||
|
||
<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;, 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 –
|
||
<literal>varsize</literal>. Het bestand
|
||
<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 standaard in sectoren is.</para>
|
||
|
||
<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
|
||
worden. In <xref linkend="intro"/> hebben we de beperkingen van
|
||
flash-geheugen uiteen gelegd - in bijzonder de beperkte
|
||
herschrijfcapaciteit. Het belang van het niet als lezen-schrijven
|
||
aankoppelen van flash-media en het belang van het niet gebruiken
|
||
van een wisselbestand kunnen niet genoeg benadrukt worden. Een
|
||
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 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>
|
||
|
||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||
/dev/ad0s1a / ufs ro 1 1</programlisting>
|
||
|
||
<para>Op een gemiddeld systeem zullen enkele applicaties het
|
||
onmiddellijk niet meer doen als gevolg van deze verandering.
|
||
cron zal niet correct draaien vanwege ontbrekende cron-tabellen in
|
||
het <filename>/var</filename> dat door
|
||
<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.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>
|
||
|
||
<para>Een belangrijk ding om te onthouden is dat een bestandssysteem
|
||
dat met <filename>/etc/fstab</filename> als alleen-lezen was
|
||
aangekoppeld ten alle tijden lezen-schrijven kan worden gemaakt
|
||
door dit commando te geven:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/sbin/mount -uw partitie</userinput></screen>
|
||
|
||
<para>en kan op alleen-lezen worden teruggezet met het
|
||
commando:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/sbin/mount -ur partitie</userinput></screen>
|
||
</sect1>
|
||
|
||
<sect1>
|
||
<title>Een bestandssysteem uit het niets opbouwen</title>
|
||
|
||
<para>Omdat ATA-compatibele compact-flash-kaarten door &os; als
|
||
normale IDE harde schijven worden gezien, kunt u theoretisch &os;
|
||
vanaf het netwerk installeren door de floppies kern en mfsroot of
|
||
een CD te gebruiken.</para>
|
||
|
||
<para>Zelfs een kleine installatie van &os; die normale
|
||
installatieprocedures gebruikt kan echter een systeem produceren
|
||
met een omvang van meer dan 200 MB. Omdat de meeste mensen
|
||
kleinere flash-geheugenapparaten zullen gebruiken (128 MB wordt als
|
||
redelijk groot gezien - 32 of zelfs 16 MB is gebruikelijk) is een
|
||
installatie dat de normale mechanismen gebruikt niet
|
||
mogelijk er is simpelweg niet genoeg schijfruimte voor zelfs
|
||
de kleinste van de conventionele installaties.</para>
|
||
|
||
<para>De gemakkelijkste manier om over deze beperking heen te komen
|
||
is om &os; met conventionele middelen naar een normale harde
|
||
schijf te installeren. Kleedt, nadat de installatie voltooid is,
|
||
het besturingssysteem uit tot een grootte die op uw flash-medium
|
||
past, en pak vervolgens het gehele bestandssysteem in. De volgende
|
||
stappen leiden u door het proces heen van een normaal flash-geheugen
|
||
voorbereiden op uw ingepakte bestandssysteem. Omdat er geen normale
|
||
installatie wordt uitgevoerd, moeten bewerkingen zoals partitioneren,
|
||
labelen, het aanmaken van bestandssystemen, etcetera met de hand
|
||
uitgevoerd worden. Naast de floppies kern en mfsroot heeft u ook
|
||
de floppy fixit nodig.</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<title>Het flash-media-apparaat partitioneren</title>
|
||
|
||
<para>Kies nadat er met de floppies kern en mfsroot is opgestart
|
||
<literal>custom</literal> uit het installatiemenu. Kies
|
||
<literal>partition</literal> in het aangepaste
|
||
installatiemenu. In het partitiemenu dient u alle bestaande
|
||
partities te wissen met de toets <keycap>d</keycap>. Maak
|
||
nadat alle bestaande partities gewist zijn een partitie aan
|
||
met de toets <keycap>c</keycap> en accepteer de
|
||
standaardwaarde voor de grootte van de partitie. Zorg ervoor
|
||
dat het type van de partitie op <literal>165</literal> is
|
||
ingesteld wanneer daar naar wordt gevraagd. Schrijf nu deze
|
||
partitietabel naar schijf door op de toets <keycap>w</keycap>
|
||
te drukken (dit is een verborgen optie op dit scherm). Wanneer
|
||
u een ATA-compatibele flash-kaart gebruikt, dient u de
|
||
opstartbeheerder van &os; te gebruiken. Druk nu op de toets
|
||
<keycap>q</keycap> om het partitiemenu te verlaten. Het menu
|
||
van de opstartbeheerder wordt nog een keer aan u getoond -
|
||
herhaal de keuze die u eerder heeft gemaakt.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<title>De bestandssystemen op uw flash-geheugenapparaat
|
||
aanmaken</title>
|
||
|
||
<para>Verlaat het aangepaste installatiemenu, en kies van het
|
||
hoofdinstallatiemenu de optie <literal>fixit</literal>. Geef
|
||
na het binnengaan van de fixit-omgeving het volgende
|
||
commando:</para>
|
||
|
||
<screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen>
|
||
|
||
<para>Op dit punt bent u de tekstverwerker vi binnengegaan onder
|
||
toezien van het commando disklabel. Vervolgens dient u een
|
||
regel met <literal>a:</literal> aan het einde van het
|
||
bestand toe te voegen. Deze regel dient er als volgt uit te
|
||
zien:</para>
|
||
|
||
<programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting>
|
||
|
||
<para>Hierbij is <replaceable>123456</replaceable> een getal dat
|
||
exact gelijk is aan het getal in de bestaande regel met
|
||
<literal>c:</literal> voor de grootte. In feite dupliceert u
|
||
de bestaande regel met <literal>c:</literal> als een regel met
|
||
<literal>a:</literal>, met daarbij <literal>4.2BSD</literal>
|
||
als type van het bestandssysteem. Sla het bestand op en
|
||
verlaat de tekstverwerker.</para>
|
||
|
||
<screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
|
||
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen>
|
||
</step>
|
||
|
||
<step>
|
||
<title>Uw bestandssysteem op het flash-medium plaatsen</title>
|
||
|
||
<para>Koppel het nieuw voorbereide flash-medium aan:</para>
|
||
|
||
<screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen>
|
||
|
||
<para>Activeer deze machine in het netwerk zodat we ons
|
||
tar-bestand kunnen overzenden en het op het bestandssysteem
|
||
van het flash-medium kunnen uitpakken. Een manier om dit te
|
||
doen is:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
|
||
&prompt.root; <userinput>route add default 192.168.0.1</userinput></screen>
|
||
|
||
<para>Nu de machine op het netwerk is, kan het tar-bestand
|
||
worden overgezonden. U kunt nu tegen een dilemma aanlopen -
|
||
als bijvoorbeeld uw flash-geheugen 128 MB groot is, en uw
|
||
tar-bestand groter is dan 64 MB, kan uw tar-bestand niet op
|
||
het zelfde moment op het flash-medium staan als dan wanneer u
|
||
het uitpakt - u zult schijfruimte tekort komen. Een oplossing
|
||
voor dit probleem is, wanneer u FTP gebruikt, om het bestand
|
||
uitpakt terwijl u het over FTP verzendt. Als u de overdracht
|
||
op deze manier aanpakt, zult u nooit het tar-bestand en de
|
||
inhoud ervan op hetzelfde moment op uw schijf hebben:</para>
|
||
|
||
<screen><prompt>ftp></prompt> <userinput>get tar-bestand.tar "| tar xvf -"</userinput></screen>
|
||
|
||
<para>Als uw tar-bestand met gzip is ingepakt, kunt u dit ook
|
||
voor elkaar krijgen:</para>
|
||
|
||
<screen><prompt>ftp></prompt> <userinput>get tar-bestand.tar "| zcat | tar xvf -"</userinput></screen>
|
||
|
||
<para>Nadat de inhoud van uw ge-tar-de bestandssysteem op het
|
||
bestandssysteem van uw flash-geheugen staan, kunt u het
|
||
flash-geheugen afkoppelen en opnieuw opstarten:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /</userinput>
|
||
&prompt.root; <userinput>umount /flash</userinput>
|
||
&prompt.root; <userinput>exit</userinput></screen>
|
||
|
||
<para>Aangenomen dat u uw bestandssysteem correct heeft
|
||
geconfigureerd toen het gebouwd werd op de normale harde
|
||
schijf (met uw bestandssystemen als alleen-lezen aangekoppeld
|
||
en met de nodige opties in de kernel gecompileerd) zou u nu
|
||
succesvol uw embedded &os;-systeem moeten kunnen
|
||
opstarten.</para>
|
||
</step>
|
||
</procedure>
|
||
</sect1>
|
||
|
||
<sect1 xml:id="strategies">
|
||
<title>Systeemstragi<EFBFBD>n voor kleine en alleen-lezen
|
||
omgevingen.</title>
|
||
|
||
<para>In <xref linkend="ro-fs"/> werd erop gewezen dat het
|
||
bestandssysteem <filename>/var</filename> zoals geconstrueerd
|
||
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
|
||
succesvol draaien van cron, syslog, ports-installaties en de
|
||
webserver Apache worden gegeven.</para>
|
||
|
||
<sect2>
|
||
<title>cron</title>
|
||
|
||
<para>Tijdens het opstarten wordt <filename>/var</filename> bevolkt door
|
||
<filename>/etc/rc.d/var</filename> dat de lijst van
|
||
<filename>/etc/mtree/BSD.var.dist</filename> gebruikt, dus
|
||
<filename>cron</filename>, <filename>cron/tabs</filename>, <filename>at</filename>, en nog wat andere
|
||
standaardmappen worden aangemaakt.</para>
|
||
|
||
<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
|
||
en zullen alle cron-tabellen die er in stonden ook verdwijnen.
|
||
Daarom is een oplossing hiervoor het aanmaken van cron-tabellen
|
||
voor de gebruikers die ze nodig hebben, uw bestandssysteem
|
||
<filename>/</filename> als lezen-schrijven aan te koppelen en
|
||
die cron-tabellen naar een veilige plaats zoals
|
||
<filename>/etc/tabs</filename> te kopi<70>ren en een regel aan
|
||
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.initdiskless</filename> kopieert verandert.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>syslog</title>
|
||
|
||
<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.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.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>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Ports installeren</title>
|
||
|
||
<para>Voordat de veranderingen die nodig zijn om succesvol de
|
||
portsboom te gebruiken besproken worden, is een herinnering ten
|
||
aanzien van de alleen-lezen-natuur van uw bestandssystemen op
|
||
het flash-medium op zijn plaats. Aangezien ze alleen-lezen zijn,
|
||
dient u ze tijdelijk als lezen-schrijven aan te koppelen waarbij
|
||
de koppelsyntaxis zoals getoond in <xref linkend="ro-fs"/> wordt
|
||
gebruikt. U dient deze bestandssystemen altijd als alleen-lezen
|
||
te herkoppelen als u klaar bent met enig onderhoud - onnodige
|
||
schrijfacties naar het flash-medium kunnen de levensduur ervan
|
||
aanzienlijk verkorten.</para>
|
||
|
||
<para>Om het mogelijk te maken om een portsmap binnen te gaan en
|
||
succesvol <command>make</command> <buildtarget>install</buildtarget>
|
||
uit te voeren, moeten we een pakketmap op een bestandssysteem
|
||
aanmaken dat niet geheugengebaseerd is en dat onze pakketten
|
||
tussen herstarts bijhoudt. Omdat het toch nodig is om uw
|
||
bestandssystemen als lezen-schrijven te koppelen voor het
|
||
installeren van een pakket, is het zinnig om aan te nemen dat
|
||
een gebied op het flash-medium ook gebruikt kan worden om
|
||
pakketinformatie naar te schrijven.</para>
|
||
|
||
<para>Maak als eerste een map aan voor de pakketdatabase. Dit is
|
||
normaliter <filename>/var/db/pkg</filename>, maar we kunnen het
|
||
daar niet plaatsen aangezien het telkens als het systeem wordt
|
||
opgestart zal verdwijnen.</para>
|
||
|
||
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
|
||
|
||
<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>
|
||
|
||
<screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
|
||
|
||
<para>Nu zal telkens wanneer u uw bestandssystemen als
|
||
lezen-schrijven aankoppelt en een pakket installeert,
|
||
<command>make</command> <buildtarget>install</buildtarget> werken,
|
||
en zal de pakketinformatie succesvol naar
|
||
<filename>/etc/pkg</filename> worden geschreven (omdat het
|
||
bestandssysteem op dat moment als lezen-schrijven is aangekoppeld)
|
||
wat altijd als <filename>/var/db/pkg</filename> beschikbaar is
|
||
voor het besturingssysteem.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Apache Web Server</title>
|
||
|
||
<note>
|
||
<para>De stappen in deze sectie zijn alleen nodig indien Apache
|
||
is ingesteld om de pid- of loginformatie buiten <filename>/var</filename> te schrijven. Standaard
|
||
houdt Apache het pid-bestand in <filename>/var/run/httpd.pid</filename> en de
|
||
logbestanden in <filename>/var/log</filename>.</para>
|
||
</note>
|
||
|
||
<para>Er wordt nu aangenomen dat Apache de logbestanden in een map
|
||
<filename>apache_log_map</filename>
|
||
buiten <filename>/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>apache_log_map</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.d/var</filename>
|
||
aangemaakt moeten worden.</para>
|
||
|
||
<para>Voeg ten tweede deze commando's toe aan
|
||
<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>apache_log_map</filename>
|
||
en vervang het door een koppeling:</para>
|
||
|
||
<screen>&prompt.root; <userinput>rm -rf apache_log_map</userinput>
|
||
&prompt.root; <userinput>ln -s /var/log/apache apache_log_map</userinput></screen>
|
||
</sect2>
|
||
</sect1>
|
||
</article>
|