Portál AbcLinuxu, 8. května 2025 21:03
Nebaví vás ručně připojovat výměnná média? Nebo byste se tomu rádi podívali více na kloub?
Automounter je démon, který hlídá přístup k adresářům, na kterých jsou
odpojitelná zařízení. Když zjistí, že někdo chce s adresářem pracovat,
připojí automaticky k adresáři zařízení. Můžete připojit cokoliv, co lze
připojit příkazem mount
. Obsah adresáře s přípojnými body
automounteru by neměl být změněn, o mazání přípojných bodů ani
nemluvě ;-).
Co potřebujete k použití automounteru? Podporu automounteru v jádře (parametr CONFIG_AUTOFS_FS nebo novější CONFIG_AUTOFS4_FS). Pokud si ho necháte zkompilovat jako modul, bude se jmenovat autofs resp. autofs4. Dále balík autofs (ve většině distribucí je už obsažen).
Autofs připojuje zařízení podle map. Pro každý adresář s body připojení
je potřeba jedna mapa. Ta definuje jména adresářů sloužících jako přípojné
body, typ souborového systému a volby pro příkaz mount
.
Hlavním konfiguračním souborem je /etc/auto.master
. Syntaxe
je jednoduchá:
Dejme tomu, že chcete automaticky připojit jednotku cdrom a disketovou
jednotku a chceme je mít v adresáři /media
. Jejich mapu
umístíme třeba do souboru /etc/auto.media
. Do hlavního
konfiguračního souboru pak přidáme řádek:
/media /etc/auto.media -g --timeout
60
Poslední část jsou parametry pro automount. --timeout
určuje dobu nečinnosti v sekundách, po které se adresář automaticky
odpojí. Asi by vám vadilo, že adresáře existují, až po jejich připojení.
Když použijete parametr -g
, vytvoří se "duchové" - adresáře
budou existovat, i když na nich nebude nic připojeno.
Mapa zařízení určuje názvy přípojných bodů a jejich nastavení. Formát souboru je:
Do souboru /etc/auto.media
můžeme přidat:
cdrom -fstype=iso9660,ro :/dev/cdrom disketa -fstype=auto,umask=000, \ iocharset=iso8859-2,codepage=852 :/dev/fd0 winNT_C -fstype=smbfs,login=your_id,passwd=xxxxxx WinNT:/C zaloha -fstype=nfs,soft mach1:/Backup kernel -ro,soft,intr ftp.kernel.org:/pub/linux cdcka -fstype=autofs file:/etc/auto.cd
První položka je název přípojného bodu. Za ní je pomlčka, za kterou
následují parametry příkazu mount
oddělené čárkami. Přehled
těch nejdůležitějších:
ro
- připojí pouze pro čtenírw
- připojí pro čtení a zápisblocksize
- velikost bloku zařízenírsize
- velikost čtecího bufferuwsize
- velikost zapisovacího bufferuintr
- povolí zrušit připojování z klávesnice (pokud třeba
systém čeká na server, který je odpojen)nointr
- nepovolí zrušení připojovánísoft
- když server neodpovídá po čase nastaveném
parametrem timeout
vrátí chybu a nebude se snažit o další
spojeníhard
- zkoušet připojení stále, i když server neodpovídá;
raději nepoužívejte bez nastaveného intr
bg
- pokoušet se o obnovu spojení na pozadífg
- pokoušet se o obnovu spojení na popředínosuid
- nepovolit používání SUID bitu na připojeném
systémusuid
- opak předchozíhofstype=typ_ss
- typ souborového systémuasync
- používat asynchronní režim pro čtení/zápis
(používá se mezipaměť; zapsání změn se vynutí příkazem
sync
)sync
- opak předchozíhoauto
- připojit systém při provedení
mount -a
noauto
- opak předchozíhouser
- povolit připojení a odpojení běžnému uživatelinouser
- povolit připojení a odpojení rootovitimeout=cas
- čas, po kterém se přeruší pokusy o navázání
spojeníTřetí položka je fyzická adresa zařízení. Pokud se jedná o váš počítač, není potřeba nic uvádět. Za dvojtečkou pak následuje jméno zařízení. Když je připojovaný souborový systém na síti, uvede se jméno počítače a dvojtečkou oddělená cesta k adresáři, který chceme připojit.
Nyní stačí restartovat démona startovacím skriptem, například
/etc/init.d/autofs restart
nebo
/etc/rc.d/init.d/autofs restart
.
Teď si můžeme vyzkoušet, jak nám automounter funguje. Zkuste vložit CD a
zadat příkaz ls -l /media/cdrom
. Jednotka se připojí a objeví
se výpis adresářů na CD.
Můžete vytvořit i "podbdody" připojení. Například máte dvě jednotky CD a
chcete je mít přístupné pod bodem připojení /media/cdcka
a v
adresářích 0
a 1
. To provede poslední řádek v
ukázkové konfiguraci:
cdcka -fstype=autofs file:/etc/auto.cd
Typ souborového systému je tu nastaven na autofs (souborový systém
spravovaný automounterem) a poslední parametr je odkaz na mapu zařízení. Do
souboru /etc/auto.cd
pak vložíme:
0 -fstype=iso9660,ro :/dev/hdc 1 -fstype=iso9660,ro :/dev/hdd
Startovací skript přijímá kromě parametrů start
,
stop
a restart
ještě:
reload
- načte změny v konfiguracigetmounts
- ukáže body připojení spravované
automounteremstatus
- ukáže nastavené a aktivní body připojeníNa jednotlivé body připojení samozřejmě můžete nastavit i symbolické odkazy. A nyní můžete vesele automountovat.
showmount -e
, ale když jsem začal pracovat se Solarisem, tak jsem si zvykl na cd /net/server/
a bylo to...
ls /media/disketa
a system vam automaticky vypise obsah vlozene diskety.
Proste a jednoduse, nebudete muset rucne pripojovat zarizeni pomoci mount a umount. Je to pohodlne. Zvlaste odpojovani, kdyz vydrzite tech 30 sekund (nebo kolik si nastavite) na zarizeni v systemu nesahat, automaticky se odpoji.
Proč to v jinejch systémech jde a v linuxu ne..Jsem si jistý, že to nějak jde. Ovšem věc se má tak, že automatické připojování a odpojování není ve světě Linuxu/Unixu považováno za výhodu. Je to spíše pro ty, kteří chtějí Linux přiohnout k obrazu právě těch jiných OS. Mně například by asi šiblo, kdyby mi systém kecal do toho, kdy a jak se nějaký filesystém připojí nebo odpojí. Automatické odpojení CD při pouhém stisknutí tlačítka "eject" mi připadá jako noční můra. Samozřejmě by se dalo ošetřit, aby se systém odpojil korektně - tzn. ukončily se před samotným odpojením a vysunutím veškeré operace s ním, ale i tak bych to považoval za nepříjemnost, ne za výhodu.
Mně například by asi šiblo, kdyby mi systém kecal do toho, kdy a jak se nějaký filesystém připojí nebo odpojí.neřikam že kdejakej filesystém.. ale u výměnnej médií
Automatické odpojení CD při pouhém stisknutí tlačítka "eject" mi připadá jako noční můra.určitě musí jít zařídit, aby se CD nevysunulo hned ale až po řádnym odmountování. Mě připadá jako noční můra to, že zapomenu odmountovat CD a vysunu ho.. a co potom... :(( některý věci by přecijenom měli bejt víc user friendly Ale to je jenom muj názor..
neřikam že kdejakej filesystém.. ale u výměnnej médiíNo právě... o tom mluvím.
některý věci by přecijenom měli bejt víc user friendlyPrávě, že se vůbec neshodujeme v tom, co považujeme za "user friendly"...
eject
, dvirka se vysunou, vlozim CD, pristoupim na zarizeni (napr. vlezu do "automountovaneho" adresere), cimz se dvirka "sama" zasunou, zamknou a FS se pripoji. Kdyz chci CD vyndat, napisu eject
, FS se "sam" odpoji, dvirka odblokuji a vysunou. CD vyjmu, a pak opet softwarove dvirka zasunu prikazem eject -t
. Funguje to jak u read-only CD, tak i u read-write ZIP.
prostě nejde nějak odpozorovat akce na mechanice, že jsem zmáčknul tlačítko vysunutí a systém mi CD sám odmountuje?Obávám se, že ty mechaniky nic takového neposílají (*). Takže možnosti jsou buď zamykat a nechaj uživatele ať klikne na ikonku místo mačkání tlačítka, nebo nezamykat a při vysunutí vracet chyby procesům, co z toho ještě čtou. Ta druhá možnost by měla jít nastavit takhle
sysctl -w dev.cdrom.lock=0ale bůhví co za "překvapení" to může generovat. (*) AFAIK se systém ani nedozví o vložení CDčka, Windows to dělají tak, že se periodicky dotazují mechaniky (bez záruky).
No a co si to takhle v tech Windows nastavit, aby to na Vas nervalo/necacheovalo?
Zkuste si skocit do "Device Properties"-"Policies" a tam zvolit "Optimize for quick removal": This setting disable write caching on the disk and in Windows, so you can disconnect this device without using Safe Removal icon.
Žil jsem v domnění, že FHS má zajišťovat jednotnou strukturu FS pro 3rd party vývojáře -- kde jsou nainstalované ostatní programy, kam se mají ukládat logy, etc. K čemu je 3rd party programům užitečný mount-point CD-mechaniky, to je mi záhadou (kromě toho, že programy typu k3b si ho můžou přečíst z /etc/fstab).mno, neni mi jasny, jak z niceho vydedukuje mountpoint. Bud zna device a zjisti mountpoint, nebo z mountpointu device, ale jak z niceho oboji je mi zahadou
Celkom by zaujimalo ako je to vyriesene v Knoppixe/Debian.na zacatku pusti nejakej fdisk, oscannuje partitiony a ulozi je do /etc/fstab. dokonce ti to pri bootovani napise ("Scanning for partitions and creating /etc/fstab...").
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.