Automatyzacja sekwencji poleceń montowania


9

Kiedy podłączam urządzenie (tablet, aparat, pamięć flash, zewnętrzny dysk twardy) do mojego laptopa z Linuksem, często wpisuję następującą sekwencję poleceń.

$ ls /dev/sd*
Powiedzmy, że moje urządzenie jest / dev / sdc
opcjonalne $ sudo mkdir /media/my_flash
opcjonalne$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash

Następnie skopiuję niektóre pliki i

$ sudo umount /dev/sdc

Ta sekwencja gwarantuje, że pliki zostaną skopiowane i nic złego się nie stanie.

Czy możesz mi powiedzieć, jak zautomatyzować tę sekwencję poleceń? Więc podłączę tylko urządzenie, rozpozna, do którego katalogu powinien zostać podłączony, a następnie dokonam transferu plików, a następnie zasygnalizuje mi (w jakiś sposób), że mogę odłączyć urządzenie? Czy w tym systemie operacyjnym są jakieś ustawienia?

Odpowiedzi:


6

Składnikiem systemu, który reaguje na połączenie urządzenia wymiennego, jest Udev , jak wspomniano w SHW . Nawet samouczek udev może być nieco zniechęcający; Pokażę ci kilka przykładów.

Istnieją dwa etapy: skojarzenie pliku urządzenia (np. /dev/sdc) Z urządzeniem sprzętowym i zamontowanie urządzenia w celu uzyskania dostępu do systemu plików. Zadanie Udev jest pierwszym krokiem, chociaż możesz mu powiedzieć, aby uruchomił zewnętrzne polecenie, takie jak mount.

W przypadku znanych urządzeń wymiennych lubię używać dedykowanej nazwy urządzenia pod /dev/removable(ta nazwa katalogu to osobista konwencja). Następujące reguły udev (do umieszczenia /etc/udev/rules.d/my_removable_disks.rules) tworzą dowiązania symboliczne o znanych nazwach dla dwóch dysków, z których oba są identyfikowane przez właściwość systemu plików na ich partycji 1:

KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s UUID %N1", RESULT=="1234-5678", SYMLINK+="removable/foo"
KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s LABEL %N1", RESULT=="Joe's disk", SYMLINK+="removable/joe"

Starsze wersje udev mogą wymagać /udev/lib/vol_id -u %N1(dla UUID, -ldla etykiety) zamiast blkidwywołania. Jest więcej rzeczy, które możesz dopasować, np. ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(Zamiast PROGRAM==…, RESULT==…), aby dopasować dostawcę urządzenia i numer seryjny.

Następnie możesz użyć takiej linii w /etc/fstab:

/dev/removable/joe  /media/joe  vfat  noauto,user

Jeśli wolisz automatyczne montowanie, możesz dodać coś podobnego , RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo"do linii udev. Nie zapomnij o tym umount /media/fooprzed odłączeniem.


Dzięki za świetne rozwiązanie. Mam LVM na niektórych dyskach zewnętrznych, więc dłuższa sekwencja poleceń (w tym aktywacja VG itp.), Teraz mogę nawet dodać do tego skrypty zapasowe :).
— Grzegorz Wierzowiecki,

Drogi Czytelniku - jeśli chcesz wiedzieć o dostępnych ATTRS, wypróbuj to na swoim urządzeniu:udevadm info --name=/dev/DEVICE --attribute-walk
— Grzegorz Wierzowiecki

8

Możesz to zrobić, pisząc reguły UDEV, które „uruchomią” skrypt bash zawierający te same polecenia bash, o których wspomniałeś. Ilekroć podłączysz te urządzenia, UDEV rozpozna to i zacznie się zachowywać zgodnie z regułą.

Do pisania reguł możesz użyć tego linku.


OOH nieźle. Jeszcze tego nie wiedziałem - dodanie zakładki do linku i dodanie go do mojego repertuaru.
— Shadur

Czy mógłbyś być bardziej szczegółowy? Które akapity linku są dla mnie istotne?
— xralf

Wygląda na to, czego szukam. Nie mam tylko czasu, żeby je czytać przez te wszystkie dni. Przestudiuję go i wkleję właściwą odpowiedź do twojego komentarza w czasie, gdy ją zrozumiem. Dzięki
— xralf

4

Obecnie istnieje kilka demonów z automatycznym montażem, a także pmountpolecenie, które ma na celu umożliwienie użytkownikom montowania urządzeń wymiennych /mediabez konieczności sudodostępu.

Zarówno Gnome, jak i KDE mają opcję automatycznego montowania woluminów wymiennych po ich podłączeniu; w zależności od zainstalowanej dystrybucji ta funkcja może nawet domyślnie być włączona.

W GNOME opcje rządzące tą funkcją są dostępne pod System -> Preferences -> Removable Media; Nie mam doświadczenia z KDE.


Chciałbym to zrobić niezależnie w środowisku zarządzania oknami (np. KDE, GNOME itp.) (Jakby X nie został uruchomiony).
— xralf

Następnie musisz przeczytać ten link opublikowany przez SHW i przeczytać prawie wszystko.
— Shadur
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.