3. rc.diskless en alleen-lezen bestandssystemen

De post-boot-initialisatie van een embedded FreeBSD-systeem wordt beheerd door /etc/rc.diskless2 (/etc/rc.diskless1 is voor BOOTP-schijfloos opstarten). Dit initialisatiescript wordt aangeroepen door de volgende regel in /etc/rc.conf te plaatsen:

diskless_mount=/etc/rc.diskless2

rc.diskless2 koppelt /var als een geheugenbestandssysteem aan, maakt een instelbare lijst van mappen in /var aan met het commando 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 /dev. Tijdens het uitvoeren van /etc/rc.diskless2 is er nog een rc.conf-variabele in het spel - varsize. Het bestand /etc/rc.diskless2 maakt een partitie /var aan gebaseerd op de waarde van deze variabele in rc.conf:

varsize=8192

Onthoud dat deze waarde in sectoren is. De creatie van de partitie /dev door /etc/rc.diskless2, wordt echter geregeerd door een harde waarde van 4096 sectoren. Het is triviaal om deze waarde in het bestand /etc/rc.diskless2 zelf te wijzigen, alhoewel er niet meer ruimte voor /dev dan dat nodig zou zijn.

Het is belangrijk om te herinneren dat het script /etc/rc.diskless2 aanneemt dat de conventionele partitie /tmp reeds door een symbolische koppeling naar /var/tmp is vervangen. Omdat tmp een van de mappen is die in /var door het script /etc/rc.diskless2 wordt aangemaakt, en omdat /var een geheugenbestandssysteem is (dat als lezen-schrijven is aangekoppeld), zal /tmp nu ook een lees-schrijf map zijn.

Het feit dat /var en /dev lees-schrijf bestandssystemen zijn is een belangrijk verschil, aangezien de partitie / (en alle andere partities die op uw flash-medium kunnen staan) als alleen-lezen aangekoppeld dienen te worden. In Paragraaf 1 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 regels swap en /proc uit het bestand /etc/fstab, dient u ook de Options van elk bestandssysteem als volgt op ro te zetten:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1a             /               ufs     ro              1       1

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 /var/db/port.mkversion niet bestaat. cron zal niet correct draaien vanwege ontbrekende crontabellen in het /var dat door /etc/rc.diskless2 is aangemaakt, en syslog en DHCP zullen problemen ondervinden als gevolg van het alleen-lezen bestandssysteem en ontbrekende items in het /var dat /etc/rc.diskless2 heeft aangemaakt. Dit zijn slechts tijdelijke problemen, en worden tezamen met oplossingen voor het uitvoeren van andere veelgebruikte softwarepakketten behandeld in Paragraaf 5.

Een belangrijk ding om te onthouden is dat een bestandssysteem dat met /etc/fstab als alleen-lezen was aangekoppeld ten alle tijden lezen-schrijven kan worden gemaakt door dit commando te geven:

# /sbin/mount -uw partitie

en kan op alleen-lezen worden teruggezet met het commando:

# /sbin/mount -ur partitie

Deze en andere documenten kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Lees voor vragen over FreeBSD de documentatie alvorens contact te zoeken <questions@FreeBSD.org>.
Vragen over deze documentatie kunnen per e-mail naar <doc@FreeBSD.org>.