Automatizzare la sequenza dei comandi di montaggio


9

Quando collego un dispositivo (tablet, fotocamera, unità flash, disco rigido esterno) al mio laptop con Linux, spesso digito la seguente sequenza di comandi.

$ ls /dev/sd*
Diciamo che il mio dispositivo è / dev / sdc
opzionale $ sudo mkdir /media/my_flash
opzionale$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash

Quindi copierò alcuni file e

$ sudo umount /dev/sdc

Questa sequenza mi garantisce che i file vengono copiati e non accadrà nulla di brutto.

Potresti dirmi come automatizzare questa sequenza di comandi? Quindi collegherò solo il dispositivo, riconoscerà in quale directory dovrebbe essere montato, quindi eseguirò un trasferimento di file e poi mi segnalerà (in qualche modo) che posso scollegare il dispositivo? Ci sono alcune impostazioni nel sistema operativo Linux per questo?

Risposte:


6

Il componente di sistema che reagisce alla connessione di un dispositivo rimovibile è Udev , come indicato da SHW . Anche il tutorial di udev può essere un po 'scoraggiante; Ti mostrerò un paio di esempi.

Sono previsti due passaggi: associare un file del dispositivo (ad es. /dev/sdc) Al dispositivo hardware e montare il dispositivo per accedere al filesystem. Il lavoro di Udev è il primo passo, anche se puoi dirgli di eseguire un comando esterno come mount.

Per i dispositivi rimovibili noti, mi piace usare un nome di dispositivo dedicato in /dev/removable(quel nome di directory è una convenzione personale). Le seguenti regole udev (da inserire /etc/udev/rules.d/my_removable_disks.rules) creano collegamenti simbolici con nomi noti per due dischi, entrambi identificati da una proprietà del filesystem sulla loro partizione 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"

Potrebbero essere necessarie versioni precedenti di udev /udev/lib/vol_id -u %N1(per l'UUID, -lper l'etichetta) invece della blkidchiamata. Ci sono più cose su cui puoi abbinare, ad esempio ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(invece di PROGRAM==…, RESULT==…) per abbinare il fornitore di un dispositivo e il numero di serie.

Quindi puoi usare una linea come questa in /etc/fstab:

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

Se preferisci un mount automatico, puoi aggiungere qualcosa di simile , RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo"alla linea udev. Non dimenticare di umount /media/fooprima di scollegare.


Grazie per un'ottima soluzione. Ho LVM su alcune unità esterne, quindi una sequenza più lunga di encomi (inclusa l'attivazione di VG ecc.), Ora posso anche aggiungere script di backup a questo :).
Grzegorz Wierzowiecki,

Caro lettore, se vuoi conoscere gli ATTR disponibili, prova questo con il tuo dispositivo:udevadm info --name=/dev/DEVICE --attribute-walk
Grzegorz Wierzowiecki

8

Puoi farlo scrivendo una regola UDEV, che "eseguirà" lo script bash ottenendo gli stessi comandi bash, di cui hai parlato. Ogni volta che si collegano i suddetti dispositivi, UDEV lo riconoscerà e inizierà a comportarsi secondo la regola.

Per la scrittura delle regole, puoi seguire questo link.


Ooh bello. Non lo sapevo ancora - Aggiungere il link ai segnalibri e aggiungerlo al mio repertorio.
Shadur,

Potresti per favore essere più specifico? Quali paragrafi del link sono rilevanti per me?
Xralf,

Sembra la cosa che sto cercando. Solo non ho tempo di leggerlo tutti questi giorni. Lo studierò e incollerò la risposta giusta nel tuo commento nel momento in cui lo capirò. Grazie
xralf,

4

Al giorno d'oggi ci sono diversi demoni a montaggio automatico, così come il pmountcomando che è specificamente pensato per consentire agli utenti di montare dispositivi rimovibili /mediasenza richiedere l' sudoaccesso.

Sia Gnome che KDE hanno la possibilità di montare automaticamente volumi rimovibili quando sono connessi; a seconda della distribuzione installata, questa funzione potrebbe anche essere impostata su "on".

In GNOME, le opzioni che governano questa funzione sono disponibili sotto System -> Preferences -> Removable Media; Non ho esperienza recente con KDE.


Mi piacerebbe farlo indipendentemente su Window Management Environement (come KDE, GNOME ecc.) (Come se X non fosse avviato).
Xralf,

Quindi dovrai leggere quel link pubblicato da SHW e leggerne praticamente tutto.
Shadur,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.