Automatiser la séquence des commandes de montage


9

Lorsque je connecte un appareil (tablette, appareil photo, lecteur flash, disque dur externe) à mon ordinateur portable avec Linux, je tape souvent la séquence de commandes suivante.

$ ls /dev/sd*
Disons que mon appareil est / dev / sdc en
option en $ sudo mkdir /media/my_flash
option$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash

Ensuite, je vais copier quelques fichiers et

$ sudo umount /dev/sdc

Cette séquence me garantit que les fichiers sont copiés et que rien de grave ne se produira.

Pourriez-vous me dire comment automatiser cette séquence de commandes? Donc, je ne brancherai que l'appareil, il reconnaîtra dans quel répertoire il doit être monté, puis je ferai un transfert de fichier et ensuite il me signalera (en quelque sorte) que je peux débrancher l'appareil? Y a-t-il des paramètres dans Linux OS pour cela?

Réponses:


6

Le composant système qui réagit à la connexion d'un périphérique amovible est Udev , comme mentionné par SHW . Même le tutoriel udev peut être un peu intimidant; Je vais vous montrer quelques exemples.

Deux étapes sont nécessaires: associer un fichier de périphérique (par exemple /dev/sdc) au périphérique matériel et monter le périphérique pour accéder au système de fichiers. Le travail d'Udev est la première étape, bien que vous puissiez lui dire d'exécuter une commande externe telle que mount.

Pour les périphériques amovibles connus, j'aime utiliser un nom de périphérique dédié sous /dev/removable(ce nom de répertoire est une convention personnelle). Les règles udev suivantes (à placer dans /etc/udev/rules.d/my_removable_disks.rules) créent des liens symboliques avec des noms connus pour deux disques, tous deux identifiés par une propriété du système de fichiers sur leur partition 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"

Les anciennes versions d'udev peuvent avoir besoin /udev/lib/vol_id -u %N1(pour l'UUID, -lpour l'étiquette) au lieu de l' blkidappel. Il y a plus de choses sur lesquelles vous pouvez faire correspondre, par exemple ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(au lieu de PROGRAM==…, RESULT==…) pour faire correspondre le fournisseur et le numéro de série d'un appareil.

Ensuite, vous pouvez utiliser une ligne comme celle-ci dans /etc/fstab:

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

Si vous préférez un montage automatique, vous pouvez ajouter quelque chose comme , RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo"à la ligne udev. N'oubliez pas de le umount /media/foodébrancher.


Merci pour la bonne solution. J'ai LVM sur certains disques externes, donc une séquence de recommandations plus longue (y compris l'activation VG, etc.), maintenant je peux même ajouter des scripts de sauvegarde à cela :).
Grzegorz Wierzowiecki

Cher lecteur - si vous voulez connaître les ATTRS disponibles, essayez ceci avec votre appareil:udevadm info --name=/dev/DEVICE --attribute-walk
Grzegorz Wierzowiecki

8

Vous pouvez le faire en écrivant des règles UDEV, qui "exécuteront" le script bash contenant les mêmes commandes bash, comme vous l'avez mentionné. Chaque fois que vous branchez lesdits appareils, UDEV le reconnaîtra et commencera à se comporter conformément à la règle.

Pour la rédaction des règles, vous pouvez suivre ce lien.


Ooh bien. Je ne le connaissais pas encore - Marquer le lien et l'ajouter à mon répertoire.
Shadur

Pourriez-vous s'il vous plaît être plus précis? Quels paragraphes du lien me concernent?
xralf

Cela ressemble à ce que je recherche. Je n'ai que le temps de le lire tous ces jours. Je vais l'étudier et coller la bonne réponse dans votre commentaire dans le temps que je comprendrai. Merci
xralf

4

Il existe plusieurs démons à montage automatique de nos jours, ainsi que la pmountcommande qui est spécifiquement destinée à permettre aux utilisateurs de monter des périphériques amovibles sous /mediasans nécessiter d' sudoaccès.

Gnome et KDE ont tous deux la possibilité de monter automatiquement des volumes amovibles lorsqu'ils sont connectés; en fonction de la distribution que vous avez installée, cette fonction peut même être activée par défaut.

Dans GNOME, les options régissant cette fonctionnalité sont disponibles sous System -> Preferences -> Removable Media; Je n'ai aucune expérience récente avec KDE.


Je voudrais le faire indépendamment sur l'environnement de gestion de fenêtres (comme KDE, GNOME etc.) (comme si X n'était pas démarré).
xralf

Ensuite, vous devrez lire ce lien que SHW a publié et lire à peu près tout.
Shadur
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.