Automount mini-Howto

Rahul Sundaram, [email protected]
Vertaald door: Ellen Bokhorst

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. Introductie

1.1 Revisiehistorie

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. Administratief

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.

3. Installatie

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.

4. Configuratie

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.

5. Dat lange wachten voor de unmount

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. Vragen

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.

7. Erkenningen,feedback en toewijding

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.