Automount mini-Howto
v1.6, 27-12-2002
In dit bestand wordt de autofs
automounter beschreven, hoe het te configureren, en wordt
op een aantal te voorkomen problemen gewezen.
1.1 Revisiehistorie
- Versies onder 1.5 - Geschreven
door Don.
- Versie 1.5 - Het copyright
en andere kleine details toegevoegd. Rahul Sundaram
nam het beheer over.
- Versie 1.5.1 - Details met
betrekking tot de vraag over VFAT toegevoegd.
- Versie 1.5.2 - Revisiehistory
en andere kleine correcties.
- Versie 1.6 - Een paar vragen
en antwoorden toegevoegd.
1.2 Automount - wat en waarom?
Automounting is het proces waarbij
het mounten en unmounten van bepaalde bestandssystemen
automatisch wordt gedaan door een daemon. Als het bestandssysteem
niet is gemount, en een gebruiker het tracht te benaderen,
dan zal het automatisch (weer) worden gemount. Dit is
vooral handig in grote netwerkomgevingen en voor het
crossmounten van bestandssystemen tussen een paar machines
(vooral machines die niet altijd online zijn). Het kan
ook handig zijn voor verwijderbare devices, of een paar
andere gebruiken, zoals het eenvoudig schakelen tussen
een forced-on ascii conversie mount van een dos bestandssysteem
en een forced-off ascii conversie mount van hetzelfde
dos bestandssysteem. Als Linux nieuw voor je is en je
begrijpt niet wat mounten en daemons zijn, raadpleeg
dan wat documentatie over dit onderwerp.
1.3 Typen automounting
Er zijn twee typen automounters
onder Linux; AMD en autofs. AMD is
de automount daemon, en werkt naar men mag aannemen
als de SunOS AMD. Het is in userspace geïmplementeerd,
wat betekent dat het geen onderdeel van de kernel uitmaakt.
De kernel hoeft automounting niet te begrijpen als je
via de AMD daemon, die al het bestandssysteemverkeer
via het NFS systeem routeert, NFS mount naar de lokale
host. Autofs is een nieuwer systeem dat wordt bijgestaan
door de kernel, wat betekent dat de bestandssysteemcode
van de kernel weet waar de automount mountpoints zijn
op een anderszins normaal onderliggend fs, en het automount
programma neemt het van daaruit over. Alleen autofs
zal in deze mini-HOWTO worden beschreven.
2.1 Copyrightinformatie
Deze mini-HOWTO is auteursrechtelijk
beschermd door Rahul Sundaram Sundaram. Alle rechten
voorbehouden. Dit document is gelicentieerd onder de
licentie van het Linux
Documentation Project. Ik verwelkom elke vorm van
commerciële distributie, maar ik zou hier graag
informatie over ontvangen. Ik ben tevens bereid te helpen
als iemand dit document wil vertalen. Neem voor uitzonderingen
op de licentievoorwaarden alsjeblieft contact met me
op via Rahul
Sundaram. De laatste versie van dit document is
altijd beschikbaar op de website van het Linux Documentatie
Project op http://tldp.org/HOWTO/mini/Automount.html.
2.2 Disclaimer
Alhoewel ik mijn best heb gedaan
om deze howto in prima staat uit te brengen, ben ik
niet verantwoordelijk voor enige schade door de acties
die zijn genomen gebaseerd op de informatie in dit document.
Het is niet mogelijk alles onder alle configuraties
te testen, dus mogelijk zijn een aantal van de aanwijzingen
die in dit document worden gegeven niet correct en wellicht
werken ze niet op je systeem. Mocht je iets aantreffen
wat niet juist is, laat me dit dan eerst weten. Ik zal
het zo snel mogelijk herschrijven.
Dit document wordt aangeleverd
``zoals het is''. Ik heb er veel moeite voor gedaan
dit zo accuraat mogelijk te beschreven, maar je gebruikt
de informatie in dit document op eigen risico. In geen
geval zal ik aansprakelijk kunnen worden gesteld voor
enige schade resulterend uit het gebruik van dit werk.
Autofs is geïmplementeerd
in kernel-space, dus in je kernel moet ondersteuning
hiervoor zijn meegecompileerd. Alle versies van de kernel
beginnend vanaf 2.2.xx ondersteunen autofs.
Wat je ook nodig hebt is het
automount programma en de bijbehorende configuratiebestanden;
gebruik makend van de rpm's. De RedHat distributie heeft
dit package beschikbaar als onderdeel van de installatie.
De installatie van de RPM packages
zal je makkelijk genoeg tot dit stadium brengen, maar
hier is het deel waar je wellicht niet zo zeker van
bent als je dit nog niet eerder hebt gedaan.
Er staan twee bestanden in /etc,
één genaamd auto.master en
de ander genaamd auto.misc. Een voorbeeld
auto.master ziet er ongeveer zo uit:
/auto /etc/auto.misc --timeout=60
De eerste regel is niet het mountpoint.
Het is waar de set mountpoints (te vinden in de tweede
regel) zullen worden geplaatst. Met de derde optie wordt
aangegeven dat de gemounte bestandssystemen zichzelf
60 seconden na gebruik kunnen proberen te unmounten.
Je moet het gebruik van de disk dus staken voordat je
het kunt unmounten.
Auto.misc is een "map bestand".
De naam van het map bestand doet er niet toe; deze is
auto.misc genoemd omdat het originally controlled /misc.
In auto.master kunnen meerdere map bestanden worden
gedefinieerd. Mijn auto.misc ziet er zo uit:
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
cd -fstype=iso9660,ro :/dev/cdrom
zip -fstype=auto :/dev/hdd4
floppy -fstype=vfat :/dev/fd0
De eerste kolom (de "key") is
het mountpoint. In dit geval zou het /auto/floppy of
iets dergelijks zijn. De middelste set zijn de opties;
lees voor de details de manpage. En in de laatste kolom
wordt aangegeven waar het fs vandaan komt. De "kernel"
regel wordt verondersteld een NFS-mount te zijn. De
: op alle andere regels betekent dat het een lokaal
device is.
Een aantal van jullie zal die
60 seconden timeout bekijken en denken, dat is een
lange tijd om te wachten totdat een diskette wordt uitgeworpen...Wellicht
dat ik gewoon de disks sync(hroniseer) en ze er gemount
uithaal, niemand zal het opmerken. Laat me je verstandiger
alternatieven voorstellen. Ten eerste kun je
de timeout wijzigen. Maar dat zou inefficiënt zijn;
het systeem vertellen het zaakje pas na slechts 15 seconden
of iets dergelijks te unmounten. Afhankelijk van je
setup, kun je misschien simpelweg als normale gebruiker
de umount opdracht uitvoeren. Maar in feite is er een
manier om het programma automount te vragen te unmounten.
Als je (met het programma kill) het signaal SIGUSR1
naar het automountproces stuurt, dan zal het alles unmounten
wat het kan. Maar voordat mensen unmount knoppen op
hun window managers beginnen te maken; er is een klein
probleem.
Het automountproces wordt door
root uitgevoerd, en het zal alleen signalen van root
accepteren. Een van de redenen waarom je waarschijnlijk
aan automounting doet is dat je zonder root te zijn
kunt mounten en unmounten. Het zou niet zo moeilijk
zijn een suid-root C programma te schrijven die het
vuile werk opknapte. Door echter gebruik te maken van
sudo is het mogelijk gebruikers toe te staan het juiste
kill-signaal te zenden. Het enige probleem is dat sudo
je geen subopdrachten laat gebruiken, wat je moet doen
om de huidige PID op te sporen. Je zou een programma
genaamd killall moeten hebben, die je het volgende laat
doen:
ALL ALL=NOPASSWD:/usr/bin/killall -USR1 automount
Anders zou je al je gebruikers
de mogelijkheid moeten bieden naar alle processen -SIGUSR1
te zenden. Dat heeft op programma's een divers effect;
het zal een aantal window managers opnieuw in omloop laten
brengen, maar het killt emacs. Dus laten we hopen dat
er geen bufferoverruns in killall zijn...
6.1 Ik zie geen /auto/floppy
of naar welk mountpoint ik ook zoek.
Ook al zie je het niet wanneer
het niet in gebruik is, naar welk automountpoint je
ook zoekt, het zal er zijn als je het probeert te gebruiken
als het juist is ingesteld. Als je met een grafische
tool door de directory bladert, dan moet je de naam
wellicht met de hand intikken; de meeste programma's
zullen uitproberen wat je ze opgeeft, en de drive zal
ongemerkt worden gemount. Niet uit de beschikbare onzichtbare
mountpoints kunnen kiezen is helaas een belangrijke
keerzijde van autofs. Bewerk de configuratiebestanden
als het je echt dwars zit. (Hind, degenen die eindigen
op .c voor "configuratie").
Een mogelijke oplossing die verscheidene
mensen hebben uitgeprobeerd is de aanmaak van symbolische
links naar waar automount iets zal aanmaken zodra het
is gemount. Hiermee zal naar alle waarschijnlijkheid
worden voorkomen dat het programma geen melding zal
geven dat een directory niet bestaat (dat wil zeggen,
als de mount werkt), maar onzorgvuldige directorylistings
zullen zorgen dat bestandssystemen worden gemount.
6.2 Hoe zie ik wat is gemount?
Met de opdracht df.
mount zonder opties doet hetzelfde, plus
dat het de opties toont waarmee het is gemount.
6.3 Ik deed een win95 disk in
het station ("vfat") en het werdautomatisch gedetecteerd
als slechts een reguliere FAT-disk.
Dit is met automount geen probleem.
Het "auto" fs type doet geen poging tot een vfat mount
totdat het succesvol een MS-DOS bestandssysteem heeft
gemount. VFAT is een uitbreiding op het FAT basisbesturingssysteem
om Windows 95 en Windows NT van lange bestandsnamen
te voorzien.
Volgens één van
de auteurs van mount, is het nog altijd de verantwoordelijkheid
van de gebruiker om het fs type aan te leveren, aangezien
mount slechts een wrapper rondom een systeemaanroep
is waaraan het type bestandssysteem moet worden opgegeven.
Er wordt in overweging genomen mount een lijst met bestandssystemen
te laten accepteren die in volgorde worden geprobeerd,
in plaats van de thans "heuristieke" wijze. Een aantal
gebruikers heeft simpelweg msdos niet in de kernel gecompileerd;
dit voorkomt dat het voorafgaande aan vfat wordt getest.
Bij de meeste mensen zal dit werken; een paar hebben
echter echt het msdos bestandssysteem nodig en er is
een feitelijke oplossing. Je moet de /proc/filesystems
als /etc/filesystems kopiëren en het zodanig bewerken
dat de volgorde zodanig wordt gewijzigd dat vfat voor
msdos verschijnt (Met dank aan Mark).
Ariel(aslinux At dsgml.com) schrijft
" o zorg dat mount vfat voor
fat probeert, maak of bewerk gewoon het bestand /etc/filesystems
Geef in volgorde van prioriteit
aan welke bestandssystemen je wilt dat het 'auto' fs
type probeert.
Maak het bestand aan met cp /proc/filesystems
/etc/filesystems.
Wijzig de lijst zodanig dat de
volgorde wordt gewijzigd. Plaats fs types die met grote
vertrouwelijkheid, zoals ext2, worden gedetecteerd (wat
betekent dat ze zeer snel worden gecontroleerd), en
die algemener zijn voor je als eerste. Plaats vfat voor
msdos en je bent klaar. Zorg ervoor dat je ze er beiden
inzet, voor het geval je iets mount zonder vfat.
Die van mij ziet er zo uit:
ext2 vfat msdos iso9660
****
Voor verwijderbare devices gebruik
ik een timeout van 1 seconde. Maak aparte maps aan,
gescheiden door de timeout die je nodig hebt.
Denk je 1 seconde? Daarmee wordt
een boel bronnen verspild, maar dat is niet zo. Denk
eraan dat het systeem alleen unmount wanneer het niet
langer in gebruik is.
Dus een 1 seconde unmount betekent,
zodra niemand het device meer gebruikt, wordt het unmounted.
Zorg ook dat je 'sync' als optie
voor de diskette plaatst.
d.w.z.
floppy -fstype=auto,sync,user,umask=002,gid=floppy
:/dev/fd0"
Dat zou het antwoord moeten verduidelijken.
6.4 Mijn bestandssysteem /auto/grumblesmurf
is gemount en kill -SIGUSR1 unmount het
niet.
Het wordt ergens door gebruikt.
Root kan het waarschijnlijk ook niet handmatig unmounten.
Als jijzelf degene was die het mountte (d.w.z. dat het
niet iemand anders kan zijn die het gebruikt) zoek dan
naar een shell die in die directory is. Als er geen
is, zoek dan naar iets anders (in het bijzonder iets
dat dat door die directory is gegaan, zoals een directorybrowser)
welke bij wijze van spreken een onzichtbare voet tussen
de deur heeft achtergelaten. Probeer het met behulp
van het programma fuser als je het zoeken hebt opgegeven.
6.5 Wat gebeurt er als ik /
de directory voor de automountermaak
Ik raad het niet aan. Als je
/grumblesmurf wilt, dan zou ik een symbolisch link aanraden.
Dit is veel veiliger.
6.6 Kan ik twee map bestanden
gebruiken voor dezelfde directory?
Zo ver ik weet niet. Probeer
het gebruik van één map bestand, met specifieke
opties voor individuele entry's.
6.7 Ik gebruik SuSE 6.0 en had
---timeout in plaats van--timeout
nodig
Een andere oplossing voor "timeout
niet werkende" problemen zou zijn om de optie -t
time aan het autofs script toe te voegen.
6.8 Hoe stel ik de permissies
en ownership voor het bestandssysteem(dws)FAT in.
Kijk in de manpage van mount
voor opties, zoals het instellen van de uid=waarde of
umask=waarde. Een optie die schijnt te ontbreken voor
FAT bestandssystemen is mode=waarde. Sorry. Vraag het
de mensen die zich bezig houden met mounting.
6.9 Hoe blader ik door de inhoud
van een autofs directory, wanneersubdirs niet zijn gemount?
Philippe Froidevaux <philippe.froidevaux
AT unifr.ch> schrijft
" The author of autofs say "no
way"
een mogelijke hack is (uit de
nieuwsgroep) :
"mount niet naar /home/blauser
maar naar /mount/.auto/blauser voeg dan de link /home/blauser
-> /mount/.auto/blauser toe
nu kun je door /home bladeren
en de homedirectory van de gebruiker zien, wanneer je
deze benadert, wordt het gemount.
Probleem dat hierbij optreedt:
het is niet zo zuiver en voor elke gebruiker moet werk
worden verricht.
een andere oplossing is het gebruik
van 'amd' in plaats van 'autofs', maar amd is minder
performant".
6.10 Wie bedank ik voor autofs?
Dit is slechts documentatie voorzien
om ieders aandacht te vestigen op wat een geweldige
taak is volbracht met autofs, en hoe makkelijk het is
te gebruiken. Vergeleken met AMD, is autofs zeer goed
gedocumenteerd en degenen die het implementeerden hebben
mijn oprechte dank. Alles is door het Transmeta bedrijf
auteursrechtelijk beschermd, dus het is niet mogelijk
te voorzien in een lijst met credits, maar Peter Anvin
is waarschijnlijk voor een groot deel verantwoordelijk.
Peter hield 3 maart 1999 op de linuxworldexpo ook een
sessie over autofs.
6.11 Hoe kan ik meer leren over
automounting?
Er is een autofs tutorial op
http://www.linuxhq.com/lg/issue24/nielsen.html.
Zie ook de am-utils op http://www.cs.columbia.edu/~ezk/am-utils
6.12 Hoe kan ik contact opnemen
met de ontwikkelaars?Is er een mailinglijst voor autofs?
Ik kon hier geen informatie over
vinden. Laat het me alsjeblieft weten als je iets tegenkomt.
Ik zou Don
(email id schijnt nu niet geldig te zijn) graag willen
bedanken voor zijn oorspronkelijke werk aan deze mini-Howto.
Ik bedank Ariel voor zijn antwoord betreffende de vraag
over de kwestie "win95 vfat". Ik bedank hierbij al mijn
vrienden voor hun ondersteuning en iedereen die zoveel
geduld met me had tijdens het voltooien van dit werk.
Mail alsjeblieft naar Rahul
Sundaram in geval van suggesties, verbeteringen
of heldere ideeën. Mail me alsjeblieft als je goede
tutorials hebt of iets dat ik aan dit document kan toevoegen.
Alvast bedankt. Ik draag dit document op aan mijn overleden
ouders Mr.V.Sundaram en Mrs.S.Soundara Sundaram.
|