Kako uporabiti automount in NFS na Mac OS X
Težavo poznajo tudi lastniki SSD diskov, ki so hitri a majhni (recimo lastniki MacBook Air). Ena od možnih rešitev je čiščenje knjižnice, a ta v večini primerov zgolj odmakne težavo za nekaj časa v prihodnost, poleg tega pa še vedno izgubljamo prostor na disku z datotekami, ki jih redko rabimo.
Že pred leti sem se odločil, da kopiram oz. premaknem celotno knjižnico na NAS (to je bil tudi en od razlogov, da sem ga kupil) in nato dopovem iTunes-om ter XBMC, da imam glasbo in filme na mrežnem disku.
Do tu je bilo vse lepo in prav, a težava se je pojavila, kadar sem računalnik odnesel izven dosega domačega omrežja. Pa ne s samim dostopom temveč s procesom "mountanja/unmountanja" mrežnega pogona. Vsakič, ko sem odklapljal računalnik sem moral mrežne pogone prekiniti in jih, ko sem prišel nazaj, ponovno vzpostaviti. Saj ne, da je to hudo zamudno (naredil sem si Automator skripto, ki mi je vzpostavila povezavo), a me je vseeno motilo.
Zato sem začel z iskanjem načina, kako samodejno vzpostaviti povezavo, ko pridem v domače omrežje. Že pred leti sem pripravil skripto, ki je ugotovila ali sem priklopljen na domače žično omrežje, in izklopila WiFi in lahko bi jo uporabil, da bi hkrati povezala mrežne pogone. Žal, nikoli nisem tega implementiral.
Pred nekaj dnevi pa sem se zapletel z NFS (Network File System). Na netu sem precej bral o njegovi učinkovitosti in firbec mi ni dal miru. Z enostavnim posegom na Synology NAS sem ga vklopil:
... in zadevo najprej preskusil v XBMC (o tem morda kdaj drugič). Delovalo je odlično!
In ko sem tako bral o NFS sem naletel na članek in članek, ki sta govorila o samodejnem povezovanju map na lokalni računalnik. Kljub temu, da oba članka govorita o možnosti povezovanja tako NFS kot SMB (in celo AFP je možen), sem se odločil da zadevo implementiram zgolj z NFS, saj so mi prvi testi pokazali, da pri SMB povezvanje traja rahlo dlje zaradi avtentikacije, hkrati pa je potrebno v konfiguracijsko datoteko shraniti geslo za dostop v berljivi obliki, kar pa mi ne diši preveč.
Hkrati sem odkril še eno zanimivo lastnost. Na ta način je postala mapa na NAS dosegljiva vsem uporabnikom računalnika, ne glede na njihove pravice na NAS. To seveda lahko povzroči določene varnostne pomisleke, ki pa sem jih zaobšel tako, da sem na NAS nastavil, da so vse NFS mape zgolj berljive (pisanje nanje sem onemogočil), kar je dovolj za predvajanje glasbe oz. filmov.
Zadevo sem torej implementiral na naslednji način:
- kreiral sem krovno mapo in podmape z ukazom:
$ sudo mkdir /mnt
$ sudo mkdir /mnt/music
$ sudo mkdir /mnt/video - nato sem kreiral datoteko /etc/auto_nfs z naslednjo vsebino
/mnt/music -fstype=nfs,ro,resvport 192.168.70.x:/volume1/music
/mnt/video -fstype=nfs,ro,resvport 192.168.70.x:/volume1/video - ter nato popravil datoteko /etc/autofs.conf
$ sudo vi /etc/autofs.confin dodal v vrstico, ki vsebuje AUTOMOUNTD_MNTOPTS, opcijo
AUTOMOUNTD_MNTOPTS=...,resvport - nato sem v datoteko /etc/auto_master dodal (na koncu)
/- auto_nfs - sledila je zgolj osvežitev automount opcij z ukazom
$ sudo automount -v -c
In v naslednjem trenutku sem že v Finderju videl vsebino knjižnice, kot bi bila fizično prisotna v mojem Macu, čeprav se je nahajala na NAS.
Najlepše pri vsej stvari pa je to, da ne potrebuje nobenega posega s strani uporabnika. Če (domače) omrežje ni dosegljivo sta mapi /mnt/music in /mnt/video prazni, takoj ko se vrnemo v domače omrežje, pa se povezava vzpostavi samodejno ob prvi uporabi mape ali datoteke iz teh map oz. podmap.
Opomba
Inicialno sem želel, da bi se samodejno povezane NFS mape videle na namizju na enak način kot se vidijo ročno povezane mape oz. USB diski, ki jih priklopimo na računalnik. V ta namen sem uporabil mapo /Volumes namesto /mnt, a izkaže se, da najnovejša verzija OS X (10.9.2) tu zmeša štrene in zadeva ne deluje več (na mojih macih je sicer še vedno 10.8.5, kar pomeni, da zgornje deluje tudi z /Volumes).
Automount AFP
Dokumentacija, ki jo v man straneh ponuja Apple pravi, da je za automount mape v AFP oz. SMB skupni rabi treba v datoteko /etc/auto_master (ali vključeno datoteko kot zgoraj) napisati:
/mnt/folder -fstype=afp afp://username:password@server/share
Oz. za SMB:
/mnt/folder -fstype=smbfs ://username:password@server/share
In naj bi zadeva delovala na enak način kot NFS. No, pri meni to vsekakor ne drži!
Ubijal sem se celo soboto in nedeljo in že skoraj obupal (medtem pa prebral vso dokumentacijo za automount, automound, mount, mount_nfs, mount_afp) kar sem naletel na zanimivo omembo mount_url, ki naj bi namountal datotečni sistem podan v URL obliki.
V zadnjem poskusu sem torej v datoteko /etc/auto_afp (ki je vključena v /etc/auto_master) dodal zgolj:
/mnt/folder afp://username:password@server/share
In zadeva je delovala!
Težava "Permission denied"
Pred kratkim sem pri uporabi automount naletel na zanimivo težavo, ki se manifestira ob restartu računalnika.
V primeru restarta se namreč samodejno mount-ajo share-i z root pravicami, kar pa seveda onemogoči dostop običajnim uporabnikom. Zadeva me je na začetku begala, ker nikakor nisem našel vzroka zakaj dobim "Permission denied" sporočilo, ko sem želel dostopati do teh map.
Malo googlanja in raziskovanja mi je pokazalo na zanimiv post na Apple Support diskusijah, kjer je Bogdan ugotovil bug v automountu, ki počne ravno to.
Rešitev, ki jo opisuje v 6. koraku deluje, edina nerodnost je to, da je potrebno vpisati geslo za ukaz sudo in ponoviti ukaz umount za vsako mapo posebej. Ker imam z automount priklopljenih več map na svoj mac sem se malo poigral s shell ukazi in spisal enovrstičnico, ki osveži vse mape (oz. naredi dostopne pod trenutno aktivnim uporabnikom).
sudo umount /mnt/{mapa1,mapa2,mapa3} && cd /mnt/{mapa1,mapa2,mapa3} && cd ~
Še vedno je potrebno vpisovanje gesla (samo 1x) za ukaz sudo, kar pa je naizbežno, a k sreči zadeva nato deluje do naslednjega restarta računalnika.