Was ist das Befehlszeilenäquivalent zu "Laufwerk sicher entfernen"?

43

Was ist das Befehlszeilenäquivalent der Nautilus-Funktion "Sicheres Entfernen des Laufwerks"? Insbesondere entferne ich ein USB-Flash-Laufwerk.

H2ONaCl
quelle
Sie können feststellen , superuser.com/a/430470/176493 hilfreich
daboross

Antworten:

39

Der udisksBefehl ist höchstwahrscheinlich das, wonach Sie suchen.

Während sudo unmount /dev/sdXYfunktionieren wird, diese udisks ohne Root - Ebene tun (sudo) Berechtigungen.

Wenn Sie ein Laufwerk /dev/sdXYaktiviert haben, wobei X ein Buchstabe ist, der Ihre USB-Festplatte darstellt, und Y die Partitionsnummer ist (normalerweise 1), können Sie das Laufwerk mit den folgenden Befehlen sicher entfernen:

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

In einem praktischen Beispiel würde ich, wenn ich die Partition /dev/sdb1bereitgestellt habe, Folgendes ausführen, um die Bereitstellung aufzuheben und sie zu trennen:

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

Ich fand dies ursprünglich durch diese Frage: https://superuser.com/a/430470/176493 .

Udisks2 verwenden:

In den neueren Ubuntu-Distributionen (ich bin mir nicht sicher, wann der Wechsel stattgefunden hat) wird udisks2 anstelle von udisks installiert.

Spiegeln Sie die obigen Befehle, um die Bereitstellung eines Datenträgers mit udisks2 aufzuheben und zu trennen:

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

Beispiel, wenn mein Laufwerk ist /dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb
Daboross
quelle
Ich bekomme, Detach failed: Not Authorizedwenn ich versuche, es ohne root-Rechte auszuführen. (Kein ernstes Problem, aber eine kleine Korrektur.)
Jonathan Y.
Welche Ubuntu-Version verwenden Sie? Wie haben Sie das Laufwerk gemountet? Wenn Sie mit Root-Berechtigungen bereitgestellt haben oder als ein anderer Benutzer angemeldet sind (im Gegensatz zu Nautilus oder udisks im aktuellen Benutzer), hat Ihr Benutzer keine Berechtigung zum Aufheben der Bereitstellung mit udisks.
Daboross
2
Ja, ich habe mitgemacht sudo, aber ich habe es auch gemacht, umountbevor ich es versucht habe --detach. Es ist eine vertrauenswürdige Version des Ubuntu-Servers.
Jonathan Y.
Ah, könnte dann ein Unterschied zum Ubuntu-Server sein. Das Trennen funktioniert ohne Root-Berechtigung auf meinem Desktop.
Daboross
2
@ Morhook siehe aktualisierte Antwort mit Unterstützung von udisks2!
Daboross
21

Das tatsächliche Äquivalent zum Ein- / Aushängen von Nautilus ist gvfs-mount -m -d /dev/ice /some/directoryund gvfs-mount -u /some/directory. Dies verwendet dieselbe API wie Nautilus, das virtuelle GIO-Dateisystem (gvfs), das verschiedene Tools zur Verwendung mehrerer Dienste als Mount-Punkte wie smb, NFS, FTP, Block-Geräte usw. bereitstellt.

Um festzustellen, welches Gerät Sie aushängen gvfs-mount -lmüssen, reicht es aus, welches zu verwenden.

Diese Lösung hat die Besonderheit, dass sie keine erhöhten Berechtigungen erfordert, da alles von den Diensten umount / gvfsd / polkit verwaltet wird, was der Ähnlichkeit mit Nautilus noch ähnlicher ist.

Braiam
quelle
2
Dies scheint die richtigste Antwort zu sein. Obwohl viele von uns es gewohnt sind, sich udisks(wie in anderen Antworten vorgeschlagen) vorzustellen, wie Nicht-Root-Benutzer Wechseldatenträger auf dem Desktop ein- und aushängen (wie hier angegeben), gvfs-mountkönnen andere Mechanismen zum Einsatz kommen. (Auf meinem Ubuntu MATE Utopic-System ist das udisks-Paket noch nicht einmal installiert.)
Eliah Kagan,
1
Ubuntu 18.40 gioist der Ersatz für gvfs-mount.
Studog
13

Wenn Sie das Gerät kennen und möglicherweise die dfInformationen wie in @rcpao answer verwenden , können Sie die Festplatte am besten mit demselben Befehl "auswerfen", den die grafische Benutzeroberfläche verwendet:

udisksctl unmount --block-device /dev/sdc1

Ich habe ein Skript, mit dem ich ein Backup auf eine Festplatte erstellen kann, unter der ich weiß, dass sie gemountet /media/romano/movlinwird. Nach dem Backup mache ich Folgendes:

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

Hier mount | grep movlin | cut -d" " -f1wird das Gerät extrahiert, das unter der Bezeichnung "movlin" gemountet ist (wäre /dev/sdc1in diesem Fall), und dann wird es gemountet.

Rmano
quelle
Muss man wirklich syncvorher manuell laufen udisksctl unmount?
Eliah Kagan
Wahrscheinlich nicht. Aber ich bin mir ziemlich unsicher, wie sich der Cache im Allgemeinen verhält. Manchmal habe ich das Gefühl, dass das USB-Laufwerk nach dem Umount noch einige Sekunden lang blinkt. Sagen wir, es ist ein Überbleibsel der alten sync; sync; sync && poweroff...
Rmano
@Rmano Ich habe das Flashen auf einem vermeintlich demontierten Flash-Laufwerk (normalerweise über eine GUI unter KDE) oft gesehen. Ich versuche es abzuwarten, bevor ich den Stecker aus der Steckdose ziehe. Dies sieht (für mein ungeübtes Auge) so aus, als ob etwas nicht ganz stimmt. Noch schlimmer wäre es mit einem Flash-Laufwerk ohne Aktivitätsanzeige.
Joe
1
Rmano, da udiskses in Ubuntu nicht mehr standardmäßig vorhanden ist, udisksctlkann eine bevorzugte Lösung sein. udisksctl power-off --block-device /dev/sdcSchaltet das Licht auf einem externen USB-Flash-Laufwerk aus, sodass es möglicherweise als nächster Befehl geeignet ist, Ihrem zu folgen.
H2ONaCl
8
  1. df, um den Einhängepunkt Ihres Flash-Laufwerks zu finden.

    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. Hängen Sie die Verbindung mit / dev / sdc1 oder / media / rcpao / SD024-64GB aus.

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

    oder

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
  3. Sie sollten in der Lage sein, das Auswurfsymbol des Flash-Laufwerks im Nautilus zu sehen, sobald umount beendet ist.

rcpa0
quelle
2
dfsieht sehr nützlich aus, um festzustellen, wo sich das Gerät befindet.
H2ONaCl
2
Für ein Flash-Laufwerk ist dies sinnvoll. Bei einem Festplattenlaufwerk wird es durch "Sicheres Entfernen" ebenfalls heruntergefahren, was bei dieser Lösung nicht möglich ist (siehe die Antwort von DaboRoss dazu).
Nate Eldredge
3
Ja, udisks --detachist hilfreich, um Laufwerke nach dem Abmelden vollständig abzutrennen.
Daboross
1
dfund umountsind Standard-UNIX-Dienstprogramme. Es ist immer gut, sie zu kennen, da diese immer funktionieren, während sie udisksvon dbus und einem laufenden udisksd abhängig sind .
Simon Richter
1
@NateEldredge: "Für ein Flash-Laufwerk ist das vernünftig ..." - eigentlich nicht, und ich stimme aus diesem Grund nicht ab: Letztes Jahr musste ich eine App für die Bereitstellung durchführen und benutzte naiv einen kurzen Befehl in der Art und Weise von cp /path/to /drive && umount drive. Dies machte 2 Flash-Laufwerke (vorübergehend) unbeschreibbar, bis mir klar wurde, dass es der Befehl war, der es verursachte. Durch Ausführen von "Scan & Repair" auf einem Windows-Computer wurden die Laufwerke repariert. Die Antwort von DaboRoss unten ist viel sicherer.
Andy E
2

ejectaus dem Eject Package :

sudo eject /dev/sdX

wird für umountalle Partitionen angezeigt und versetzt das Gerät in einen Zustand, in dem Sie es entfernen und erneut anbringen müssen, um es erneut zu aktivieren.

Ciro Santilli ist ein Schauspieler
quelle
Für einige Anwendungen ist dieser Auswurfbefehl der beste Weg, dies zu tun. Die meisten anderen Antworten sind "gut genug", aber technisch gesehen funktioniert das Auswurfsymbol von Nautalis nicht wie das Ausschalten des Geräts. Nach meiner Erfahrung ist Eject näher an der Funktionalität der Eject-USB-Taste. Wenn Sie sudo vermeiden möchten, können Sie sich selbst zur Datenträgergruppe hinzufügen (erfordert Abmelden und Anmelden). Der Befehl hierfür lautet "sudo adduser user disk"
SpiRail