web-dev-qa-db-fra.com

Montage CLI vs montage GUI

Sur Ubuntu 12.10, lorsque je veux monter un disque dur, je peux simplement cliquer sur le lecteur non monté et tout fonctionne correctement (en montant sur /media/username/partitionlabel).

En gros, je voudrais faire exactement cela via la ligne de commande (pour un script sur lequel je travaille).

Depuis que je ne pas veux monter automatiquement au démarrage, fstab est hors de question (non?).

Lorsque j'utilise mount sur la CLI, je dois spécifier un point de montage (qui doit avoir un point de montage déjà créé; je dois également m'occuper des autorisations et autres). Ce que je ne comprends pas, c'est où l'interface graphique prend-elle tout ses infos de? Le point de montage semble dépendre de l'étiquette de la partition, mais un tel répertoire n'existe pas avant le montage. De plus, l'interface utilisateur graphique ne semble pas trop se soucier du fait qu'un utilisateur ne soit pas root.

Existe-t-il un moyen "facile" de monter via la CLI, tout comme sur l'interface graphique en cliquant sur un lecteur non monté?

21
NicApicella

Nautilus et les autres gestionnaires de fichiers qui montent des lecteurs (c'est-à-dire l'interface graphique ) utilisent la commande udisks.

Ceci fournit un montage dynamique , où le point de montage est créé pour le lecteur à la volée, et lorsque le lecteur est démonté, le point de montage passe un moyen.

Voir man 1 udisks pour plus d'informations sur l'utilisation de cette commande (manuellement ou à partir d'un script/d'une application). Pour en savoir plus sur le fonctionnement de udisks, voir man 7 udisks .

Pour monter un périphérique avec udisks, vous devez spécifier un nom de périphérique valide pour le périphérique. Spécifier le nom de volume du périphérique ne fonctionnera pas. Donc, vous pouvez utiliser udisks comme ceci:

_udisks --mount /dev/sdb1
_

Lorsque vous utilisez manuellement udisks à partir de la ligne de commande, vous avez peut-être intérêt à simplement brancher un périphérique, puis à exécuter _dmesg | tail_ peu de temps après (voir man dmesg et man tail ) pour découvrir le nom du périphérique qui vient d'être connecté.

Cependant, ce n'est peut-être pas la meilleure façon d'écrire un script qui monte des périphériques avec udisks. Je ne sais pas exactement comment vous devriez le faire, et il serait difficile de savoir puisque vous ne nous avez pas dit précisément ce que vous voulez ce script à faire et quand vous voulez monter des périphériques.

16
Eliah Kagan

Puisque je ne veux pas monter automatiquement au démarrage, fstab est hors de question (non?).

Nan. Le mot clé noauto le fait sauter le montage au démarrage.

Existe-t-il un moyen "facile" de monter via la CLI, tout comme sur l'interface graphique en cliquant sur un lecteur non monté?

Le plus simple serait de l'ajouter à /etc/fstab avec noauto et d'utiliser ...

mount /dir

Cela aura la sonde de montage pour un point de montage et si non trouvé, alors pour un périphérique dans /etc/fstab. /dir doit exister cependant.

Si un périphérique ou un UUID est fourni, /etc/fstab n'est pas interrogé. Ainsi ...

mount /dev/sda1 /media/directory

Ou utilisez udisks (je laisserai Eliah gérer cela> :-))


mount est généralement un super utilisateur uniquement.

Exemple d'options:

  • rw,noauto,user le monte en lecture + écriture mais pas au démarrage et vous pouvez le faire en tant qu'utilisateur.

  • Vous pouvez également ajouter des autorisations pour un utilisateur dans /etc/fstab pour des fichiers. Vous pouvez utiliser umask pour cela.

  • umask = 0444: tout le monde lit, pas d'écriture, pas d'exécution.

  • umask = 0333: tout le monde lit, exécute.
  • umask = 0338: propriétaire, groupe lu et exécuté; d'autres, rien
6
Rinzwind

Dans l'un des commentaires, vous avez dit:

Pour une raison quelconque, je reçois le message "Mount failed: Not Aouthorized" lorsque je l'exécute via ssh

J'utilise pmount au lieu de udisks. Cela fonctionne sur ssh.

Si je me souviens bien, c'est la syntaxe/etc que j'utilise avec elle - la plupart des miennes sont cachées derrière des alias à ce stade:

pmount /dev/sdb1 my_usb
ls /media/my_usb/
eject /media/my_usb
3
Izkata

Utilisation

udisks --mount /dev/sdb1

(remplacez /dev/sdb1 par le périphérique que vous souhaitez monter)

2
Florian Diesch