Montage CLI vs montage GUI

21

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

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

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

Lorsque j'utilise mount sur CLI, je dois spécifier un point de montage (qui doit avoir un point de montage précédemment créé; aussi, je dois prendre soin des autorisations et ainsi de suite) - 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, la façon dont l'interface graphique semble ne pas trop se soucier qu'un utilisateur ne soit pas root.

Existe-t-il un moyen «facile» de monter via CLI, comme il le fait sur l'interface graphique en cliquant sur un lecteur non monté?

NicApicella
la source

Réponses:

16

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

Cela 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 disparaît.

Voir man 1 udiskspour plus de détails sur l'utilisation de cette commande (manuellement ou appelée à partir d'un script / d'une application). Pour en savoir plus sur le udisksfonctionnement, 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. La spécification du nom de volume de l'appareil ne fonctionnera pas. Donc, vous pouvez utiliser udiskscomme ceci:

udisks --mount /dev/sdb1

Lors d'une utilisation manuelle à udiskspartir de la ligne de commande, il est préférable de simplement brancher un périphérique, puis d'exécuter dmesg | tailpeu de temps après (voir man dmesget man tail) pour découvrir le nom du périphérique du périphérique nouvellement connecté.

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

Eliah Kagan
la source
Merci beaucoup - udisksc'est exactement ce que je cherchais! Pour une raison quelconque, je reçois "Mount failed: Not Aouthorized" lorsque je l'exécute via ssh; si je ne pousse pas ma chance, des conseils seraient appréciés pour savoir comment y remédier. ^^
NicApicella
2
@NicolaApicella Comment le gérez-vous? Vous obtiendrez un message non autorisé si vous essayez de l'exécuter à partir d'une session distante (y compris SSH) ou d'une crontab; par défaut, les utilisateurs non root ne peuvent monter des volumes qu'avec udisksdes connexions interactives locales. (Ils peuvent toujours exécuter un script à partir d'une connexion interactive locale qui utilise udisks, cependant.)
Eliah Kagan
Oui, désolé, je viens de remarquer (et de modifier) ​​mon commentaire précédent: je le lance en effet ssh. (Et actuellement googler un correctif.)
NicApicella
6

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

Nan. noautole mot-clé fait sauter le montage au démarrage.

Existe-t-il un moyen «facile» de monter via CLI, comme il le fait sur l'interface graphique en cliquant sur un lecteur non monté?

Simple serait d'ajouter à /etc/fstabavec noautoet l' utilisation ...

mount /dir

Cela aura une sonde de montage pour un point de montage et s'il n'est pas trouvé, alors pour un périphérique dans /etc/fstab. /dirdoit exister cependant.

Si l'appareil ou l'UUID sont fournis, ils /etc/fstabne sont pas sondés. Ainsi ...

mount /dev/sda1 /media/directory

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


le montage est généralement super utilisateur uniquement.

Exemples 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/fstabdes fichiers. Vous pouvez l'utiliser umaskpour 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
Rinzwind
la source
OK, je vais probablement aller de l'avant et essayer, car cela semble être la "façon de le faire" de toute façon. :-) Je suppose que je devrai quand même créer un répertoire de points de montage (avec les droits corrects). ;-)
NicApicella
@Rinzwind Un utilisateur non root pourra-t-il monter l'appareil?
Eliah Kagan
1
@EliahKagan Oui, si vous définissez les options appropriées dans fstab (uid, user, ...).
NicApicella
@NicolaApicella J'espère que cette réponse pourrait être développée pour inclure des informations à ce sujet. :)
Eliah Kagan
@NicApicella il aime me diriger autour: =)
Rinzwind
3

Dans l'un des commentaires, vous avez dit:

Pour une raison quelconque, je reçois "Échec du montage: non autorisé" lorsque je l'exécute via ssh

J'utilise à la pmountplace 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
Izkata
la source
2

Utilisation

udisks --mount /dev/sdb1

(remplacez /dev/sdb1par l'appareil que vous souhaitez monter)

Florian Diesch
la source