Dokumentacja systemu Ubuntu

Wprowadzenie

autofs jest programem do automatycznego montowania katalogów na zasadzie as-needed. Automatycznie montowane katalogi są montowane tylko wtedy, gdy jest do nich dostęp, i są odmontowywane po okresie bezczynności. Z tego powodu, automatyczne montowanie udziałów NFS/Samba oszczędza pasmo i oferuje lepszą ogólną wydajność w porównaniu do statycznego montowania poprzez fstab.

1.1. Krótka uwaga na temat terminów

Aby uniknąć nieporozumień, używana będzie następująca terminologia:

  • automount to program używany do skonfigurowania punktu montowania dla autofs. Gdy autofs jest uruchamiany, dla każdej mapy jest tworzony demon automount.

  • Auto-mount lub auto-mounting odnosi się do procesu automatycznego montowania systemów plików.
  • autofs jest programem, który kontroluje działanie demonów automatycznego montowania.

Instalacja

Zainstaluj pakiet autofs klikając tutaj lub wpisując poniższe polecenie w oknie terminala:

  • $ sudo apt-get install autofs

Konfiguracja

autofs może być skonfigurowany poprzez edycję plików konfiguracyjnych. Istnieją inne sposoby konfiguracji autofs w sieci (zobacz AutofsLDAP), ale pliki konfiguracyjne zapewniają najprostszą konfigurację.

3.1. Główny plik mapy

Domyślnie głównym plikiem konfiguracyjnym dla autofs jest /etc/auto.master. Jeśli nie masz dobrego powodu, aby to zmienić, pozostaw to jako domyślne.

Tutaj jest przykładowy plik dostarczony przez Ubuntu:

## $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $## Sample auto.master file# This is an automounter map and it has the following format# key location# For details of the format look at autofs(5).#/misc /etc/auto.misc --timeout=60#/smb /etc/auto.smb#/misc /etc/auto.misc#/net /etc/auto.net
  • Domyślnie wszystkie linie są komentowane za pomocą znaku #.

Każda z linii w auto.master opisuje wierzchowca i położenie jego mapy. Linie te mają następujący format:

  • mount-point :] map 

3.1.1. Mapy bezpośrednie i pośrednie

Mapy automountu mogą być bezpośrednie lub pośrednie. Mapy pośrednie, takie jak te w pliku auto.master pokazanym powyżej, tworzą punkty montowania jako podkatalogi wewnątrz głównego punktu montowania. Na przykład, rozważ następujący wpis w mapie głównej:

  • /smb /etc/auto.smb

Ten wpis w auto.master nakazuje autofsowi zajrzeć do /etc/auto.smb i utworzyć punkty montowania w katalogu /smb.

Mapy bezpośrednie tworzą punkt montowania na ścieżce określonej w odpowiednim pliku mapy. Wpisem punktu montowania w auto.master jest zawsze /-. Na przykład, poniższy wiersz instruuje autofs, aby utworzył punkt montowania w miejscu określonym w auto.data:

  • /- /etc/auto.data
  • Jeśli plik mapy nie został określony przy użyciu pełnej ścieżki lokalnej lub sieciowej, do zlokalizowania mapy zostanie użyta konfiguracja Name Service Switch, np:
    /- auto.data

3.2. Pliki map

Jak wskazano powyżej, każdy uchwyt autofs ma swój własny plik map. Te pliki są zwykle nazywane przy użyciu konwencji auto.<X>, gdzie <X> może być czymkolwiek, tak długo jak pasuje do wpisu w auto.master i jest ważne dla nazwy pliku.

Pliki map mają następujący format:

  • key location

PRZYKŁAD: Auto-mounting an NFS share

W tym howto, skonfigurujemy autofs do automatycznego montowania udziału NFS, używając zestawu plików konfiguracyjnych. To howto zakłada, że jesteś już zaznajomiony z eksportem NFS, oraz że masz już poprawnie działający udział NFS w swojej sieci. Przejdź do strony Konfiguracja NFS by dowiedzieć się jak skonfigurować taki serwer.

4.1. Edycja pliku /etc/auto.master

Następny krok tworzy punkt montowania w /nfs i konfiguruje go zgodnie z ustawieniami określonymi w pliku /etc/auto.nfs (który utworzymy w następnym kroku).

  1. Wpisz w terminalu następującą treść:
    $ sudo nano /etc/auto.master
  2. Dodaj następującą linię na końcu pliku /etc/auto.master:

    /nfs /etc/auto.nfs

4.2. Utwórz /etc/auto.nfs

Teraz utworzymy plik, który będzie zawierał naszą mapę automatu:

  • $ sudo nano /etc/auto.nfs

Plik ten powinien zawierać osobną linię dla każdego udziału NFS. Format linii to {punkt_montażu} {lokalizacja}. Jeśli wcześniej skonfigurowałeś statyczne punkty montowania w /etc/fstab, pomocne może być odwołanie się do nich. Pamiętaj, że podane tutaj punkty montowania będą względne w stosunku do punktu montowania podanego w /etc/auto.master.

Poniższa linia jest dla udziałów używających starszych wersji NFS (przed wersją 4):

  • server server:/

Tworzy to nowy punkt montowania w /nfs/server/ i montuje katalog główny NFS wyeksportowany przez maszynę, której host-name to server.

4.2.1. NFSv4

Jeśli twoje udziały NFS używają NFSv4, musisz powiedzieć o tym autofsowi. W takim przypadku, powyższa linia wyglądałaby następująco:

  • server -fstype=nfs4 server:/

Klient potrzebuje tych samych zmian w /etc/default/nfs-common, aby połączyć się z serwerem NFSv4.

  • W /etc/default/nfs-common ustawiamy:

    NEED_IDMAPD=yesNEED_GSSD=no # no is default

4.3. Odmontowanie statycznych montaży i edycja /etc/fstab

Jeśli wcześniej skonfigurowałeś udziały NFS jako statyczne montaże, teraz nadszedł czas, aby je odmontować.

  • $ sudo umount /server

Następnie usuń (lub wykomentuj) ich odpowiednie wpisy w /etc/fstab.

  • #server:/ /server/ nfs defaults 0 0

4.4. Przeładuj /etc/init.d/autofs

Po wprowadzeniu zmian wykonaj następujące polecenie, aby przeładować autofs:

  • $ sudo service autofs reload

Jeśli pracujesz na starszej wersji ubuntu, a to nie działa spróbuj:

  • $ sudo /etc/init.d/autofs reload

Jeśli pracujesz w Natty, i to nie działa spróbuj:

  • $ sudo /etc/init.d/autofs restart

4.5. Upewnij się, że działa

Aby uzyskać dostęp do udziału i sprawdzić, czy działa on prawidłowo, wpisz w powłoce następujące dane:

  • $ ls /nfs/server

Jeśli widzisz swój udział NFS na liście, gratulacje! Masz działające montowanie NFS przez autofs! Jeśli chcesz dowiedzieć się więcej zaawansowanych informacji, czytaj dalej.

Zaawansowane informacje

Podążając za przykładową strukturą katalogów powyżej, jeśli miałbyś wpisać ls /nfs w powłoce, mógłbyś być zaskoczony, że nie widzisz nic na liście. Pamiętaj jednak, że musisz mieć dostęp do katalogu, zanim zostanie on automatycznie zamontowany. Aby uzyskać dostęp do udziału, wpisz ls /nfs/server. Po uzyskaniu dostępu do katalogu, twój udział będzie wyświetlany na liście tylko do momentu, gdy upłynie czas jego działania. Dobrze jest o tym pamiętać, ponieważ może to zaoszczędzić czas na diagnozowanie problemu z autofs, którego tak naprawdę nie ma.

5.1. Uwaga o /net i /smb

Te dwie domyślne konfiguracje mogą być użyteczne dla twojej konfiguracji. Jeśli masz dużo udziałów NFS lub Samba, możesz chcieć odkomentować te linie. /net umożliwia automatyczny montaż systemów plików w innych miejscach w sieci, które są eksportowane przez NFS. Na przykład, jeśli masz serwer o nazwie fileserver z katalogiem eksportu NFS o nazwie /export, możesz go zamontować wpisując w wierszu poleceń cd /net/fileserver/export. W środowisku z serwerami plików NFS, taka konfiguracja może być użyteczna. /smb działa w ten sam sposób, ale jest przeznaczony dla systemów plików Samba. Jeśli jednak przed dostępem do udziału Samby trzeba się uwierzytelnić, automount nie będzie działał.

5.2. Znaki wieloznaczne

Powiedzmy, że masz katalog z kilkoma podkatalogami, które chcesz, aby były montowane automatycznie pojedynczo. Przykładem tego jest katalog /home, w którym to przypadku /etc/auto.master może zawierać następującą linię:

  • /home /etc/auto.home

Jeśli użytkownik1 jest zalogowany, będziesz chciał automatycznie zamontować jego katalog domowy. Jednakże, jeśli utworzysz punkt montowania dla całego katalogu /home, zamontujesz również katalogi domowe każdego innego użytkownika w tym samym czasie, marnując w ten sposób przepustowość. Jednym z rozwiązań tego problemu jest utworzenie osobnych wpisów dla każdego katalogu, jak poniżej:

  • # /etc/auto.homeuser1 server:/home/user1user2 server:/home/user2user3 server:/home/user3

To działa, ale jest uciążliwe. Zamiast tego można użyć znaków wieloznacznych, jak poniżej:

  • * server:/home/&

Gwiazdka (*) jest używana w miejsce punktu montowania, a ampersand (&) w miejsce katalogu, który ma być zamontowany. Więcej szczegółów na temat używania symboli wieloznacznych znajduje się w sekcji Używanie znaków wieloznacznych jako skrótów w mapach AutoFS.

Możesz także użyć zmiennych (zobacz stronę man autofs(5)) do zastąpienia użytkowników i innych parametrów, by móc tworzyć pliki generyczne dla wielu użytkowników. Przykład poniżej to smb map, które mapuje na podstawie użytkownika, który pyta o udział używając zmiennej $USER.

* -fstype=cifs,rw,credentials=/home/$USER/.smbcredentials,iocharset=utf8,uid=$USER,gid=users,file_mode=0700,dir_mode=0700 ://server/$USERshare1 -fstype=cifs,rw,credentials=/home/$USER/.smbcredentials,iocharset=utf8,uid=$USER,gid=users ://server/share1share2 -fstype=cifs,rw,credentials=/home/$USER/.smbcredentials,iocharset=utf8,uid=$USER,gid=users ://server/share2

Montowanie innych typów systemów plików

6.1. CIFS

W przypadku określania udziału CIFS w pliku mapy należy określić -fstype=cifs i poprzedzić lokalizację udziału dwukropkiem (:).

Przykład:

mntpoint -fstype=cifs ://example.com/shrname

Przykład: Mount read-write, określając użytkownika i grupę do posiadania plików:

mntpoint -fstype=cifs,rw,uid=myuserid,gid=mygrpid ://example.com/shrname

Przykład: Mount read-write, określając nazwę użytkownika i hasło, aby użyć do łączenia się z udziałem:

mntpoint -fstype=cifs,rw,username=myuser,password=mypass ://example.com/shrname

6.2. Systemy plików oparte na FUSE

Systemy plików oparte na FUSE montuje się, podając opcję -fstype=fuse. Lokalizacja systemu plików określa binarkę przestrzeni użytkownika użytą do zamontowania systemu plików, po której następuje hash (#), a następnie lokalizacja.

Podczas określania lokalizacji systemu plików FUSE w pliku mapy, niektóre znaki, zwłaszcza hash (#) i dwukropek (:), muszą być zastąpione odwrotnym ukośnikiem (\). Cała lokalizacja musi być poprzedzona dwukropkiem (:).

Ponieważ automount wykonuje montowanie jako root, zwykle konieczne jest określenie allow_other w opcjach montowania, aby umożliwić dostęp do udziału użytkownikowi niebędącemu rootem.

6.2.1. System plików SSHFS

SSHFS jest systemem plików opartym na FUSE. W autofs mount, dwukropek (:) po nazwie serwera musi być usunięty przez odwrotny ukośnik (\).

Powinieneś już skonfigurować uwierzytelnianie bez hasła za pomocą szyfrowania kluczem publicznym. Upewnij się, że rozumiesz implikacje bezpieczeństwa, zanim przejdziesz dalej.

Pamiętaj, że automount zamontuje twój system plików SSHFS jako root, więc musisz:

  1. Kopiować swój klucz prywatny do katalogu /root/.ssh. Upewnij się, że rozumiesz implikacje związane z bezpieczeństwem, zanim przejdziesz dalej.

  2. Dodaj niezbędne klucze hostów do katalogu /root/.ssh/known_hosts.

  3. Sprecyzuj nazwę użytkownika używaną do połączenia

Aby przetestować montowanie systemu plików SSHFS jako root, wykonaj następujące czynności:

sudo sshfs [email protected]:/ mountpoint

Jeśli montowanie powiedzie się bez monitowania o hasło, jesteś gotowy do montowania systemu plików przez autofs

Przykład:

mntpoint -fstype=fuse,allow_other :sshfs\#[email protected]\:/path/to/mount

Przykład: Mount read-write, określając użytkownika i grupę do posiadania plików:

mntpoint -fstype=fuse,rw,uid=1000,gid=1000,allow_other :sshfs\#[email protected]\:/path/to/mount

Zauważ, że dla montaży FUSE, uid i gid muszą być numerycznymi identyfikatorami.

Usuwanie problemów z automatycznym montowaniem

Jeśli masz problemy z automatycznym montowaniem systemów plików, może być użyteczne uruchomienie automount na pierwszym planie.

  1. Zatrzymaj demona autofs

    sudo service autofs stop
  2. Uruchom automount na pierwszym planie z informacją verbose

    sudo automount -f -v
  3. Z innego terminala spróbuj zamontować systemy plików, zmieniając katalogi w punkcie montowania.
  4. Sprawdź wyjście z pierwszego terminala w poszukiwaniu wskazówek, dlaczego montowanie nie powiodło się lub nie było próbowane.

Zobacz także

  • Mount – Informacje o procesie montowania i jego konfiguracji w Ubuntu.

  • Strona man mount – hostowana na oficjalnej stronie Ubuntu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.