Quel est l'équivalent en ligne de commande de «Safely Remove Drive»?

Réponses:

40

La udiskscommande est probablement ce que vous recherchez.

Bien que sudo unmount /dev/sdXYcela fonctionne, les disques Udisks peuvent le faire sans autorisations de niveau racine (sudo).

Si vous avez un lecteur /dev/sdXYmonté, où X est une lettre représentant votre disque USB et Y le numéro de partition (généralement 1), vous pouvez utiliser les commandes suivantes pour retirer le lecteur en toute sécurité:

udisks --unmount /dev/sdXY
udisks --detach /dev/sdX

Pour un exemple pratique, si la partition est /dev/sdb1montée, je l’exécute pour la démonter et la détacher:

udisks --unmount /dev/sdb1
udisks --detach /dev/sdb

A l'origine, j'ai trouvé ceci grâce à cette question: https://superuser.com/a/430470/176493 .

Utiliser udisks2:

Dans les nouvelles distributions ubuntu (je ne sais pas quand le commutateur s'est produit), udisks2 est installé à la place d'udisks.

En miroir des commandes ci-dessus, pour démonter et détacher un disque avec udisks2:

udisksctl unmount -b /dev/sdXY
udisksctl power-off -b /dev/sdX

Exemple si mon lecteur est /dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb
Daboross
la source
Je reçois Detach failed: Not Authorizedquand j'essaye de l'exécuter sans privilèges root. (Ce n'est pas un problème grave, mais une petite correction.)
Jonathan Y.
Quelle version d'Ubuntu utilisez-vous? Aussi, comment avez-vous monté le lecteur? Si vous avez monté à l'aide d'autorisations root ou que vous êtes connecté en tant qu'autre utilisateur (par opposition à Nautilus ou udisks dans l'utilisateur actuel), votre utilisateur ne sera pas autorisé à démonter à l'aide de udisks.
daboross
2
Oui, je suis monté avec sudo, mais j'ai aussi umounted avant d'essayer --detach. C'est une version fiable du serveur Ubuntu.
Jonathan Y.
Ah, peut-être une différence avec le serveur Ubuntu alors. Detach fonctionne sans autorisation root sur mon bureau.
daboross
2
@morhook voir la réponse mise à jour avec le support udisks2!
daboross
21

L'équivalent réel de l'opération Nautilus Mount / Unmount est gvfs-mount -m -d /dev/ice /some/directoryet gvfs-mount -u /some/directory. Cela utilise la même API que Nautilus, le système de fichiers virtuel GIO (gvfs), qui fournit différents outils pour utiliser plusieurs services en tant que points de montage, tels que smb, NFS, FTP, des périphériques en mode bloc, etc.

Pour identifier le périphérique que vous devez démonter, utilisez simplement gvfs-mount -lce qui devrait suffire.

Cette solution a la particularité de ne pas nécessiter d'autorisations élevées, car tout est géré par les services umount / gvfsd / polkit, ce qui ressemble davantage à la similitude avec le comportement de Nautilus.

Braiam
la source
2
Cela semble être la réponse la plus correcte. Bien que beaucoup d’entre nous aient l’habitude de penser udisks(suggéré dans d’autres réponses) comme "la manière" que les utilisateurs non root montent et démontent des disques amovibles sur le bureau, comme indiqué ici, ils gvfs-mountpeuvent utiliser d’autres mécanismes. (Sur mon système Ubuntu MATE Utopic, le paquet udisks n'est même pas installé.)
Eliah Kagan
1
Ubuntu 18.40 a giole remplacement de gvfs-mount.
studog
13

Une fois que vous connaissez le périphérique, en utilisant éventuellement les dfinformations comme dans @rcpao answer , le meilleur moyen "d'éjecter" le disque est, à mon humble avis, à l'aide de la même commande que celle utilisée par l'interface graphique:

udisksctl unmount --block-device /dev/sdc1

J'ai un script pour faire une sauvegarde sur un disque sur lequel je sais que je vais monter /media/romano/movlin, et après la sauvegarde, je fais:

sync
udisksctl unmount -b $(mount | grep movlin   | cut -d" "  -f1)

Ici, mount | grep movlin | cut -d" " -f1extraire le périphérique qui est monté sous l’étiquette "movlin", (ce serait le cas /dev/sdc1dans ce cas), puis le démonter.

Rmano
la source
Est-il vraiment nécessaire de lancer manuellement syncavant udisksctl unmount?
Eliah Kagan
Probablement pas. Mais je ne suis pas sûr du comportement correct de la mémoire cache en général; J'ai parfois le sentiment que le lecteur USB continue de clignoter après le démontage ... pendant quelques secondes. Disons que c'est un vestige de l'ancien sync; sync; sync && poweroff...
Rmano
@Rmano J'ai vu le clignotement de nombreuses fois sur un lecteur flash supposé démonté (généralement par le biais d'une interface graphique sous KDE). J'essaie de l'attendre avant de le débrancher. Cela ressemble (à mon œil non averti) comme si quelque chose ne va pas tout à fait. Ce serait encore pire avec un lecteur flash sans voyant d'activité.
Joe
1
Rmano, car udisksn'est plus présent par défaut dans Ubuntu udisksctlpeut être une solution préférée. udisksctl power-off --block-device /dev/sdcéteint la lumière sur un lecteur flash USB externe afin qu'il puisse être la prochaine commande à suivre la vôtre.
H2ONaCl
8
  1. df pour trouver le point de montage de votre lecteur flash.

    rcpao@bun:~$ df
    Filesystem                   1K-blocks       Used  Available Use% Mounted on
    /dev/mapper/ubuntu--vg-root 1916153032  658404668 1160390336  37% /
    none                                 4          0          4   0% /sys/fs/cgroup
    udev                          16438692          4   16438688   1% /dev
    tmpfs                          3289976       2156    3287820   1% /run
    none                              5120          0       5120   0% /run/lock
    none                          16449860      18768   16431092   1% /run/shm
    none                            102400         48     102352   1% /run/user
    /dev/sda1                       240972      98990     129541  44% /boot
    /dev/sdc1                     60915712      20992   60894720   1% /media/rcpao/SD024-64GB
    
  2. Démontez à l’aide de / dev / sdc1 ou de / media / rcpao / SD024-64GB.

    rcpao@bun:~$ sudo umount /dev/sdc1
    [sudo] password for rcpao: 
    rcpao@bun:~$
    

    ou

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
  3. Vous devriez pouvoir voir l'icône d'éjection du lecteur flash disparaître dans Nautilus dès la fin du démontage.

rcpa0
la source
2
dfsemble très utile pour identifier où se trouve l'appareil.
H2ONaCl
2
Pour un lecteur flash, c'est raisonnable. Pour un lecteur de disque, "Safely Remove" le désactive également, ce que cette solution ne fait pas (voir la réponse de DaboRoss pour cela).
Nate Eldredge
3
Ouais, udisks --detachest utile pour détacher complètement les disques après le démontage.
daboross
1
dfet umountsont des utilitaires UNIX standard. Il est toujours bon de les connaître, car ils fonctionneront toujours, tout en udisksdépendant de dbus et d’un udisksd en cours d’ exécution .
Simon Richter
1
@NateEldredge: "Pour un lecteur flash, c'est raisonnable ..." - en fait, ce n'est pas le cas et je ne vote pas pour cette raison: l'année dernière, j'ai dû faire un déploiement d'application qa et utilisé naïvement une commande rapide le long des lignes. de cp /path/to /drive && umount drive. Cela a rendu 2 lecteurs flash (temporairement) non lisibles jusqu'à ce que je réalise que c'est la commande qui l'a provoquée. L'exécution de "Scan & Repair" sur une machine Windows a corrigé les lecteurs. La réponse de DaboRoss ci-dessous est beaucoup plus sûre.
Andy E
3

ejectà partir du paquet d'éjection :

sudo eject /dev/sdX

apparaît pour umounttoutes les partitions et placez le périphérique dans un état que vous devez supprimer et rattachez-le pour le remonter.

Ciro Santilli 改造 心心
la source
Pour quelques applications, cette commande d'éjection est le meilleur moyen de le faire. La plupart des autres réponses sont "assez bonnes" mais techniquement, l'icône d'éjection sur Nautalis ne fait pas des choses comme mettre l'appareil hors tension. Dans mon expérience, éjecter est plus proche de la fonctionnalité du bouton d'éjection USB lui-même. Si vous voulez éviter sudo, vous pouvez vous ajouter au groupe de disques (nécessite une déconnexion et une connexion). La commande pour cela est "sudo adduser user disk"
SpiRail