<!doctype linuxdoc system>
<!-- Automount mini-howto -->
<article>
<!-- Title information -->
<title>Automount mini-Howto
<author><tt/don@sabotage.org/
<date>v0.4, 17 Απριλίου 1999
<abstract>
Το κείμενο αυτό περιγράφει την κατά autofs αυτόματη προσάρτηση, πως να
τη ρυθμίσετε, και επισημαίνει την αποφυγή κάποιων προβλημάτων.
</abstract>
<!-- Table of contents -->
<toc>
<!-- Begin the document -->
<sect>Εισαγωγή
<sect1> Η αυτόματη προσάρτηση (automount) - τι είναι και γιατί
<p>
Αυτόματη προσάρτηση είναι η διαδικασία όπου η προσάρτηση (και αποπροσάρτηση)
συγκεκριμένων συστημάτων αρχείων γίνεται αυτόματα από έναν δαίμονα. Αν το
σύστημα αρχείων δεν είναι προσαρτημένο, και ένας χρήστης προσπαθήσει να το
προσπελάσει, θα προσαρτηθεί αυτόματα. Αυτό είναι ιδιαίτερα χρήσιμο σε μεγάλα
δικτυωμένα περιβάλλοντα και για αμοιβαία προσαρτημένα συστήματα αρχείων μεταξύ
ενός αριθμού μηχανών (ειδικότερα για αυτές που δεν είναι συνεχώς συνδεδεμένες).
Μπορεί να είναι επίσης πολύ χρήσιμο για αφαιρούμενες συσκευές, ή για μερικές
άλλες χρήσεις, όπως η εύκολη μεταγωγή μεταξύ ενός προσαρτημένου forced-on
ascii conversion συστήματος αρχείων dos και ενός προσαρτημένου forced-off
ascii conversion dos συστήματος αρχείων.
<sect1> Τα είδη της αυτόματης προσάρτησης
<p>Υπάρχουν δύο είδη αυτόματης προσάρτησης στο linux; Τα <em>AMD</em> και <em>autofs</em>. Ο AMD
είναι ο δαίμονας αυτόματης προσάρτησης, και υποθετικά δουλεύει όπως ο SunOS
AMD. Υλοποιείται στον χώρο του χρήστη, εννοώντας ότι δεν είναι μέρος του
πυρήνα. Δεν είναι απαραίτητο για τον πυρήνα να αντιλαμβάνεται αυτόματη
προσάρτηση εάν κάνετε NFS προσάρτηση στο τοπικό σύστημα, μέσω του AMD δαίμονα,
ο οποίος δρομολογεί όλη την κίνηση του αυτόματα προσαρτούμενου συστήματος
αρχείων μέσα από το NFS σύστημα. Το Autofs είναι ένα νεότερο σύστημα βοηθούμενο
από τον πυρήνα, εννοώντας ότι ο κώδικας του συστήματος αρχείων του πυρήνα
γνωρίζει που βρίσκονται τα αυτόματα προσαρτούμενα σημεία προσάρτησης, σε ένα
κατά τα άλλα φυσιολογικό σύστημα αρχείων, και το πρόγραμμα automount τα
παίρνει από εκεί. Μόνο το autofs θα περιγραφτεί σε αυτό το mini-howto.
<sect>Εγκατάσταση
<p>
Επειδή το autofs υλοποιείται στον χώρο του πυρήνα, ο πυρήνας σας θα πρέπει
να έχει μεταγλωττιστεί με ενσωματωμένη υποστήριξη. Στους 2.0.xx υπάρχει ως
πειραματική επιλογή, αλλά φαίνεται να είναι αρκετά σταθερό. Στους 2.2.xx
είναι κανονική επιλογή.
<p>
Το πρόγραμμα automount και τα αρχεία ρυθμίσεών του είναι επίσης απαραίτητα.
Χρησιμοποιώντας τα rpms (από την RedHat, ως μέρος της εγκατάστασης) είναι
ένας καλός τρόπος για αρχή. Το πρόγραμμα automount οφείλει να ξεκινήσει από
ένα rc script κάτω από το <tt>/etc/rc.d/init.d</tt> directory. Το rpm το εγκαθιστά,
αλλά πρέπει να σιγουρευτείτε ότι ξεκινάει, είτε συνδέοντάς το από το δικό
σας rc?.d κατάλογο, χρησιμοποιώντας τον πίνακα ελέγχου της Redhat, είτε σε
περίπτωση διαφορετικής διανομής με τον δικό της τρόπο. Σε διανομές που δεν
χρησιμοποιούν rpm θα πρέπει να γίνει ότι είναι απαραίτητο στο δικό τους
σύστημα. Και μην κοιτάξετε με λεπτομέρειες το τι κάνει το rc script. Εάν
διαβάζετε αυτό το κείμενο πιθανόν δεν θέλετε να μάθετε.
<sect>Ρυθμίσεις
<p>Με την εγκατάσταση των RPM's θα φτάσετε σε αυτό το σημείο σχετικά εύκολα, αλλά
εδώ είναι ίσως το σημείο όπου δεν είστε σίγουρος, εάν δεν το έχετε ξανακάνει
στο παρελθόν.
<p>Υπάρχουν δύο αρχεία στο /etc, το ένα λέγεται <tt>auto.master</tt> και το άλλο
<tt>auto.misc</tt>. Το δικό μου auto.master μοιάζει με αυτό:
<verb>
/auto /etc/auto.misc --timeout 60
</verb>
<p>Η πρώτη καταχώρηση δεν είναι το σημείο προσάρτησης. Είναι το που ακριβώς
βρίσκονται τα σημεία προσάρτησης (η δεύτερη καταχώρηση). Η τρίτη επιλογή
λέει ότι τα προσαρτημένα συστήματα αρχείων μπορούν να δοκιμάσουν να
αποπροσαρτηθούν 60 δευτερόλεπτα μετά την χρήση. Φυσικά δεν μπορούν να
αποπροσαρτηθούν εάν χρησιμοποιούνται.
<p>
Το Auto.misc είναι ένα "αρχείο αντιστοίχησης" (map file). Το αρχείο
αντιστοίχησης μπορεί να έχει οποιοδήποτε όνομα. Αυτό εδώ ονομάζεται auto.misc
επειδή αρχικά έλεγχε το /misc. Πολλαπλά αρχεία αντιστοίχησης μπορούν να
οριστούν στο auto.master. Το δικό μου auto.misc μοιάζει με αυτό:
<verb>
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
</verb>
<p>
Η πρώτη στήλη (το "κλειδί") είναι το σημείο προσάρτησης. Σε αυτή την περίπτωση
θα μπορούσε να είναι /auto/floppy ή κάτι παρόμοιο. Η επόμενη στήλη είναι οι
παράμετροι. Διαβάστε τις man σελίδες σχετικά με την mount για περισσότερες
λεπτομέρειες. Και η τελευταία στήλη καθορίζει από που έρχεται το συγκεκριμένο
σύστημα αρχείων. Η εγγραφή "kernel" υποτίθεται ότι είναι μία NFS προσάρτηση.
Το : σε όλες τις άλλες γραμμές εννοεί ότι είναι τοπική συσκευή.
<sect>Η μεγάλη αναμονή για την αποπροσάρτηση (unmount)
<p>
Μερικοί από εσάς βλέποντας τα δευτερόλεπτα αναμονής, <em>θα σκέφτηκαν ότι
είναι αρκετός χρόνος περιμένοντας να βγει μια δισκέτα. Ίσως να συγχρόνιζα
τους δίσκους (sync) και να την έβγαζα προσαρτημένη, χωρίς κανείς να καταλάβει
τίποτα.</em> Επιτρέψτε μου να προτείνω <tt>ασφαλέστερους τρόπους</tt>. Πρώτα από όλα,
μπορείτε να αλλάξετε το χρονικό διάστημα. Αλλά αυτό μπορεί να είναι λίγο
ανεπαρκές, λέγοντας στο σύστημα να αποπροσαρτήσει κάτι μετά από μόλις 15
δευτερόλεπτα ή κάτι άλλο. Εξαρτώμενο από την δική σας εγκατάσταση, μπορεί να
είστε σε θέση να εκτελέσετε την εντολή umount ως απλός χρήστης. Αλλά στην
πραγματικότητα υπάρχει τρόπος να ζητήσετε από το automount πρόγραμμα να
αποπροσαρτήσει. Αν στείλετε (με το πρόγραμμα kill) το σήμα (signal) <tt>SIGUSR1</tt>
προς τη διεργασία automount, θα αποπροσαρτήσει οτιδήποτε μπορεί. Αλλά προτού
αρχίσετε να φτιάχνετε πλήκτρα αποπροσάρτησης στους διαχειριστές παραθύρων σας,
υπάρχει ένα μικρό πρόβλημα.
<p>
Η διεργασία του automount τρέχει από τον χρήστη root, και signals θα δεχθεί
μόνο από τον ίδιο χρήστη. Οι μισοί από τους λόγους για τους οποίους πιθανόν
κάνετε αυτόματη προσάρτηση είναι ώστε να μπορείτε να προσαρτείτε κάτι
αποπροσαρτημένο χωρίς να είστε root. Θα ήταν εύκολο να γράψετε ένα suid-root
πρόγραμμα σε C το οποίο να κάνει τη βρόμικη δουλειά. Ωστόσο, χρησιμοποιώντας
τη sudo είναι πιθανό να επιτρέψετε στους χρήστες να στείλουν το κατάλληλο
kill signal. Το μοναδικό πρόβλημα είναι ότι η sudo δεν θα σας επιτρέψει να
χρησιμοποιήσετε ` για να επεξεργαστείτε υποεντολές, που θα θέλατε να κάνετε
για να βρείτε το τρέχον PID. Θα πρέπει να έχετε ένα πρόγραμμα που λέγεται
killall, που θα σας επιτρέψει να κάνετε αυτό: (ευχαριστώ για τις προτάσεις)
<verb>
ALL ALL=NOPASSWD:/usr/bin/killall -USR1 automount
</verb>
Διαφορετικά, θα πρέπει να επιτρέψετε στους χρήστες σας να στέλνουν -SIGUSR1
σε όλες τις διεργασίες. Αυτό έχει ποικίλες επιδράσεις στα προγράμματα. Μπορεί
να ανακυκλώσει αρκετούς διαχειριστές παραθύρων, αλλά θα σκοτώσει (kill) τον
xemacs. Έτσι λοιπόν ελπίζετε να μην υπάρχουν ξεχειλίσματα στην ενδιάμεση μνήμη
(buffer overrun) της killall...
<sect>Ερωτήσεις
<p>
<sect1>Δεν βλέπω το /auto/floppy, ή οποιοδήποτε άλλο σημείο προσάρτησης ψάχνω.
<p>
Εάν το automount έχει εγκατασταθεί σωστά, οποιοδήποτε σημείο προσάρτησης
ψάχνετε θα είναι εκεί αν προσπαθήσετε να το χρησιμοποιήσετε, έστω και αν δεν
το βλέπετε αν δεν χρησιμοποιείται. Εάν διαβάζετε τον κατάλογο αρχείων με ένα
γραφικό εργαλείο, ίσως χρειαστεί να πληκτρολογήσετε εσείς το όνομα; τα
περισσότερα προγράμματα θα προσπαθήσουν σε ότι τους δώσετε, και ο δίσκος θα
προσαρτηθεί προτού το αντιληφθεί. Δυστυχώς η αδυναμία να επιλέξετε από τα
διαθέσιμα αλλά αόρατα σημεία προσάρτησης είναι πιθανόν το μεγαλύτερο
μειονέκτημα του autofs. Εάν πράγματι σας ενοχλεί, διορθώστε τα αρχεία
ρυθμίσεων. (είναι αυτά που τελειώνουν σε .c εννοώντας "configuration")
Μία «λύση» που έχουν δοκιμάσει αρκετοί άλλοι είναι να δημιουργήσετε
συμβολικούς δεσμούς (symbolic links) σε αυτό που το automount θα δημιουργήσει
όταν προσαρτηθεί. Αυτό θα αποτρέψει το πρόγραμμα να παραπονεθεί ότι ένας
κατάλογος αρχείων δεν υπάρχει (εάν το mount λειτουργεί), αλλά αδιάφορες
προσπελάσεις καταλόγων θα προκαλέσουν την προσάρτηση του συστήματος αρχείων.
<sect1>Πώς βλέπω τι είναι προσαρτημένο;
<p>
Με την εντολή <tt>df</tt>. Η <tt>mount</tt> χωρίς παραμέτρους θα κάνει το ίδιο, και επιπλέον θα
εμφανίσει τις παραμέτρους με τις οποίες είναι προσαρτημένο κάτι.
<sect1>Βάζω μία δισκέτα win95 ("vfat") και αναγνωρίστηκε μόνο ως απλή FAT δισκέτα.
<p>
Αυτό δεν είναι πρόβλημα με το automount. Μέχρι τη στιγμή που γράφεται το
κείμενο αυτό, το "auto" fs δεν προσπαθεί μία προσάρτηση vfat προτού
προσαρτήσει επιτυχώς ένα msdos σύστημα αρχείων. Το VFAT είναι τα μεγάλα
ονόματα αρχείων των Win95 και WinNT γραμμένα σε ένα FAT/MSDOS σύστημα αρχείων.
<p>
Σύμφωνα με έναν από τους συγγραφείς της mount, αφού η mount είναι μόνο ένα
περίβλημα γύρω από μία κλήση συστήματος που πρέπει να ορίσει τον τύπο του
συστήματος αρχείων, είναι ακόμη ευθύνη του χρήστη να δώσει τον σωστό τύπο.
Βάζοντας την mount να δοκιμάσει με την σειρά από μία λίστα με συστήματα
αρχείων, αντί του τρέχοντος τρόπου, είναι υπό σκέψη. Μερικοί χρήστες δεν
έχουν μεταγλωττίσει υποστήριξη για msdos στον πυρήνα. Αυτό το εμποδίζει να
δοκιμαστεί πριν το vfat. Αυτό θα δουλέψει για τους περισσότερους χρήστες.
Λίγοι πάντως θα χρειαστούν το σύστημα αρχείων msdos και μου προκαλεί αρκετή
απογοήτευση να μην υπάρχει πρόχειρο το module όταν πραγματικά το χρειαστώ.
Είμαι σίγουρος ότι όποιος θέλει να μπει στην προσπάθεια να βρει τους
συγγραφείς της mount, τα σχόλια σας θα είναι ευπρόσδεκτα. Αν δεν λοιπόν
μεταγλωττίσετε υποστήριξη msdos στον πυρήνα, για τώρα αυτό σημαίνει ότι δεν
μπορείτε να προσαρτήσετε vfat εκτός και αν εγκαταλείψετε την δυνατότητα της
αυτόματης αναγνώρισης όλων των άλλων συστημάτων αρχείων. Ευτυχώς κάποια μέρα
θα είναι ρυθμίσιμο. Εν τω μεταξύ, νοιώστε ελεύθεροι να δημιουργείτε πολλαπλά
σημεία προσάρτησης με διαφορετικούς τύπους συστημάτων αρχείων.
<sect1>Το σύστημα αρχείων <tt>/auto/grumblesmurf</tt> είναι προσαρτημένο και η <tt>kill -SIGUSR1</tt> δεν το αποπροσαρτεί.
<p>
Χρησιμοποιείται από κάτι. Πιθανόν ούτε ο root δεν μπορεί να το αποπροσαρτήσει.
Αν εσείς είστε αυτός που το προκάλεσε να προσαρτηθεί (δηλ. Δεν μπορεί κάποιος
άλλος να το χρησιμοποιεί) ψάξτε για κάποιο κέλυφος (shell) που ίσως είναι σε
αυτόν τον κατάλογο. Αν δεν υπάρχει, ψάξτε για κάτι άλλο (ιδιαιτέρως για κάτι
που θα μπορούσε να έχει περάσει από αυτό τον κατάλογο όπως ένας φυλλομετρητής)
που ίσως άφησε ένα κρυμμένο στίγμα. Αν εγκαταλείψατε το ψάξιμο, δοκιμάστε το
πρόγραμμα fuser.
<sect1>Τι συμβαίνει αν κάνω το / τον κατάλογο για την αυτόματη προσάρτηση;
<p>
Λοιπόν, εκτός από ένα στατιστικό δείγμα ενός μόνο ατόμου, κανένα από τα
αποτελέσματα δεν ήταν θετικό. Σας προειδοποίησα. Αν θέλετε το /grumblesmurf,
τότε προτείνω ένα συμβολικό δεσμό. Είναι ασφαλέστερο.
<sect1>Μπορώ να έχω δύο αρχεία αντιστοίχησης (map files) στον ίδιο κατάλογο;
<p>
Όχι από όσο ξέρω. Δοκιμάστε να χρησιμοποιήσετε ένα map file, με συγκεκριμένες
επιλογές για ξεχωριστές καταχωρήσεις.
<sect1>Χρησιμοποιώ SuSE 6.0 και χρειάζομαι <tt>---timeout</tt> αντί του <tt>--timeout</tt>
<p>
Χμ. Εντάξει, Το κρατάω ως σημείωση. Μία άλλη λύση στα προβλήματα "το timeout
δεν δουλεύει" θα ήταν η προσθήκη της επιλογής <tt>-t time</tt> στο autofs script.
<sect1>Πώς ορίζω τα δικαιώματα και την κατοχή (ownership) για το σύστημα αρχείων (π.χ. FAT)
<p>
Ελέγξτε τη σελίδα man της mount για μερικές από τις επιλογές, όπως ρυθμίζοντας
τις uid=value ή umask=value επιλογές. Μία επιλογή η οποία φαίνεται να λείπει
για τα συστήματα αρχείων FAT είναι η mode=value. Συγνώμη. Ελέγξτε το με
ανθρώπους που κάνουν προσαρτήσεις.
<sect1>Ποιον να ευχαριστήσω για το autofs?
<p>
Όχι εμένα. Δεν είχα καμία σχέση με αυτό. Εγώ μόνο ήθελα να τραβήξω καθενός
την προσοχή στην πολύ καλή δουλειά που έχει γίνει με το autofs, και πόσο
εύκολο είναι να χρησιμοποιηθεί. Συγκρινόμενο με τους αυθεντικούς δράστες του
AMD (πουλάνε ένα υπερτιμημένο Unix με προϊστορικές εκδόσεις δωρεάν εργαλείων),
το autofs είναι πολύ καλά τεκμηριωμένο και αυτοί που το υλοποιούν έχουν τα
ειλικρινή μου ευχαριστώ. Τα πάντα είναι συγγραφικά δικαιώματα της Transmeta,
γι αυτό συγνώμη που δεν μπορώ να δώσω κατάσταση ονομάτων, αλλά θα στοιχημάτιζα
ότι ο Peter Anvin είναι υπεύθυνος για αρκετό κομμάτι του. Ο Peter επίσης είχε
μία παρουσίαση του autofs στο linuxworldexpo στις 3 Μαρτίου 1999.
<sect1>Που μπορώ να μάθω περισσότερα για την αυτόματη προσάρτηση;
<p>
Υπάρχει ένα εκπαιδευτικό κείμενο για το autofs στη διεύθυνση <url url="http://www.linuxhq.com/lg/issue24/nielsen.html">.
Δείτε ακόμη τα am-utils στη διεύθυνση <url url="http://www.cs.columbia.edu/~ezk/am-utils">
<p>
(Ευχαριστώ για αυτά τα URL)
</article>