Portál AbcLinuxu, 1. července 2025 23:44

Automatické mountování v Arch Linuxu

28.12.2010 18:54 | Přečteno: 1172× | Archlinux | Výběrový blog

Rozhodnul jsem se, že si pohraju s udev a nastavím si automatické mountování především USB Mass Storage zařízení. A rád se podělím, jak jsem na to šel:

Jako první uvedu, odkud jsem čerpal: zdrojem byla Arch Linux wiki

Příprava

Nejdříve jsem vytvořil primitivní skript tohoto obsahu:

#!/bin/bash
# jednoduchý skript vypíše, kdo je aktuálně přihlášený na tty1:

PREF1='/bin'

PREF2='/usr/bin'

${PREF2}/who -s | ${PREF1}/grep tty1 | ${PREF1}/cut -f '1' -d ' '

Tento skript tedy vypisuje, kdo je právě přihlášen na tty1. Tuto informaci použijeme v udev pravidlech (vím, že je primitivní a velmi zjednodušuju situaci). Dále přepokládám, že jsme nastavili příznak spustitelnosti a že absolutní cesta k němu je /usr/bin/whos_on_tty1.sh

Samotná pravidla udev

Přepokládám, že udev pravidla zapisujeme do souboru /etc/udev/rules.d/10vlastni.rules a že máme nainstalovaný program pmount. A pravidla jsou následující:

## Muj osobni soubor s udev pravidly:

# V případě, že se bude jednat o zařízení různé od regulárního výrazu
# sd[c-z]* tak "skočíme" (GOTO) na návěstí 'konec_vlast_pravidel'.
# Schválně začínám až od 'c', protože sda a sdb jsou moje interní SATA disky.
KERNEL!="sd[c-z]*", GOTO="konec_vlast_pravidel"

# V případě, že program blkid skončí s chybou, provede se "skok"
# (GOTO) na návěstí konec_vlast_pravidel
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="konec_vlast_pravidel"

# Získáme labely. Výstup programu blkid přiřadíme
# do proměnné adresar:
PROGRAM=="/sbin/blkid -o value -s LABEL %N", ENV{adresar}="%c"

# Ošetříme případy, kdy by label byl tvaru jako ../mnt/foo
PROGRAM=="/usr/bin/basename '%E{adresar}'", ENV{adresar}="%c"

# Pokud proměnná adresar má za hodnotu prázdný řetězec, tak přiřaď
# do této proměnné hodnotu usbhd-%k (%k zastupuje název zařízení, tak jak ho produkuje Linux (jádro)):
ENV{adresar}=="", ENV{adresar}="usbhd-%k"

# Teď je čas použít náš skript, jehož absolutní cesta je
# /usr/bin/whos_on_tty1.sh. Vím, že velmi zjednodušuju,
# ale mně to slouží.
PROGRAM=="/usr/bin/whos_on_tty1.sh", ENV{mount_uziv}="%c"

# V případě, že nebude nikdo přihlášený na tty1,
# bude zařízení připojeno pod uživatelem "uzivatel"
ENV{mount_uziv}=="", ENV{mount_uziv}="uzivatel"

# Mountujeme zařízení programem pmount:
ACTION=="add", ENV{adresar}!="", RUN+="/bin/su %E{mount_uziv} -c '/usr/bin/pmount %N %E{adresar}'"
ACTION=="remove", ENV{adresar}!="", RUN+="/bin/su %E{mount_uziv} -c '/usr/bin/pumount /media/%E{adresar}'"

LABEL="konec_vlast_pravidel"

Poznámka: Je třeba mít nainstalovaný program pmount. Zařízení se připojí automaticky, ale odpojit (unmount) se provádí pomocí programu pumount (jako normální uživatel). Udev lze restartovat příkazem udevadm control restart

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

28.12.2010 19:03 little-drunk-jesus | skóre: 14
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Doporucuji se spise podivat na udisks (prejmenovany DeviceKit - spolupracuje s udev), ktery je k temto ukonum urcen. Umoznuje definovat prava na pripojeni odpojeni oddilu atp. jednotlivym uzivatelum pomoci PolicyKit. Skripty s pouzitim udisks jsou pak jednodussi a robustnejsi reseni.
28.12.2010 19:05 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu

Díky! Určitě se na to podívám.

Amarok avatar 28.12.2010 22:10 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
A nebo autofs. Ale vlastnim skriptum fandim (i kdyz se podruhe vynalezne kolo), ja zadny automount nemam - pouzivam takove primitivni skripty a mountuju pres menu.
GNUniverse - May the source be with you...
gtz avatar 28.12.2010 22:31 gtz | skóre: 27 | blog: gtz | Brno
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
udisks je výborná věc, ale třeba já jsem přes něj nedokázal dokopat ieee1394 box, aby se mountoval tam kam jsem chtěl.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
28.12.2010 20:58 Neel | skóre: 10
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Proč musí být layout Abc rozhozen snad při každém prvku kromě <p>. Na většině stránek je pak vynechané prázdné místo až po konec pravého sloupce. Chce to konečně něco udělat s celým layoutem abc.
Michal Fecko avatar 28.12.2010 22:22 Michal Fecko | skóre: 31 | blog: Poznámkový blog
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Presne koli takymto veciam mam dualboot WinXP/Slax - Slax na windows particii... Inac dobry navod. ;-)
28.12.2010 22:58 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Inac dobry navod. ;-)

To jsem rád. Díky. :-)

xkucf03 avatar 28.12.2010 22:42 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkné, ale přiznám se, že nejvíc mi vyhovuje ruční připojování – většinou ne z konsole, ale tak, že KDE dá vědět, že je připojený nový disk (USB, CD…) a když chci, tak jednou kliknu a je připojený. Přijde mi to jako rozumný kompromis bušením do konsole a zcela automatickým připojováním (když člověk zastrčí flešku a hned se začnou „dít věci“).

P.S. docela nepříjemné je, když má člověk KDE a GNOME a GNOME mu ty disky připojuje automaticky – z KDE se pak nedají (v GUI) odpojit a nedá se (např. z digiKamu) přistupovat k PTP foťákům.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
28.12.2010 23:01 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu

Mně právě vyhovuje "plně automatické" připojování. Jinak díky za ocenění.

29.12.2010 00:16 Brokarna | skóre: 18 | blog: problemy_s_r_o
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Já si podobný ruční připojování napsal od openboxího menu (díky bohu za možnost dynamický generace), o skript se radši dělit nebudu, protože je to hroznej hnusák a chybí tam připojování USB blbin s víc oddílama (doma nic takhle nemam, takže zatim nebyla motivace). Vlastně sem s tim začal, když sem se snažil zbavit halu, takže to běží pěkně přes udisks...
29.12.2010 23:09 Karel Zak | blog: kzak
Rozbalit Rozbalit vše Re: Automatické mountování v Arch Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Koukal jste se jak udev vola blkid? S parametry "-p -o udev" to kouka jen a pouze na zadanou device a na vystupu (v ID_FS_LABEL_ENC) jsou osetreny vsechny "nepekne" znaky.

Jinak grep+cut je hrozne, co treba

who -s | awk '/tty1/ { print $1 }'

... a udisks je asi vazne lepsi nez tato lidova tvorivost :-)

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.