Co to jest odpowiednik wiersza polecenia „Bezpiecznie usuń dysk”?

Odpowiedzi:

39

udisksKomenda jest najprawdopodobniej to, czego szukasz.

Chociaż sudo unmount /dev/sdXYbędzie działać, udiski mogą to zrobić bez uprawnień poziomu root (sudo).

Jeśli masz /dev/sdXYzamontowany napęd , gdzie X to litera reprezentująca dysk USB, a Y to numer partycji (zwykle 1), możesz użyć następujących poleceń, aby bezpiecznie usunąć dysk:

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

Dla praktycznego przykładu, jeśli mam /dev/sdb1zamontowaną partycję , uruchomiłbym to, aby odmontować i odłączyć:

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

Znalazłem to na podstawie tego pytania: https://superuser.com/a/430470/176493 .

Korzystanie z udisks2:

W nowszych dystrybucjach ubuntu (nie jestem pewien, kiedy nastąpił przełącznik) zamiast udisk instaluje się udisks2.

Odbicie lustrzane powyższych poleceń, aby odmontować i odłączyć dysk za pomocą udisks2:

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

Przykład, jeśli mój dysk to /dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb
daboross
źródło
Pojawia się, Detach failed: Not Authorizedgdy próbuję uruchomić go bez uprawnień roota. (Nie jest to poważny problem, ale niewielka korekta.)
Jonathan Y.
Jaką wersję Ubuntu używasz? Jak zamontowałeś dysk? Jeśli zamontowałeś przy użyciu uprawnień roota lub zalogowałeś się jako inny użytkownik (w przeciwieństwie do Nautilusa lub udisk w bieżącym użytkowniku), twój użytkownik nie będzie miał uprawnień do odmontowania go udisks.
daboross
2
Tak, zamontowałem z sudo, ale także umounted przed, zanim spróbowałem --detach. To sprawdzone wydanie serwera Ubuntu.
Jonathan Y.
Ach, to może być różnica w stosunku do serwera Ubuntu. Odłącz działa bez uprawnień roota na moim pulpicie.
daboross
2
@morhook zobacz zaktualizowaną odpowiedź z obsługą udisks2!
daboross
21

Rzeczywistym odpowiednikiem operacji Nautilus Mount / Unmount jest gvfs-mount -m -d /dev/ice /some/directoryi gvfs-mount -u /some/directory. Korzysta z tego samego interfejsu API, z którego korzysta Nautilus, wirtualnego systemu plików GIO (gvfs), który udostępnia różne narzędzia do korzystania z kilku usług jako punktów podłączenia, takich jak smb, NFS, FTP, urządzenia blokowe itp.

Aby zidentyfikować urządzenie, które należy odmontować, wystarczy użyć, gvfs-mount -lktóre powinno wystarczyć.

To rozwiązanie ma tę specyfikę, że nie wymaga podwyższonych uprawnień, ponieważ wszystko jest zarządzane przez usługi umount / gvfsd / polkit, co dodatkowo przypomina podobieństwo z zachowaniem Nautilusa.

Braiam
źródło
2
To wydaje się być najbardziej poprawną odpowiedzią. Chociaż wielu z nas jest przyzwyczajonych do myślenia udisks(sugerowanego w innych odpowiedziach) jako o „sposobie”, w jaki użytkownicy inni niż root montują i odmontowują dyski wymienne na pulpicie, jak wspomniano tutaj, gvfs-mountmogą używać innych mechanizmów. (W moim systemie Ubuntu MATE Utopic pakiet udisk nie jest nawet zainstalowany.)
Eliah Kagan,
1
Ubuntu 18.40 ma, gioktóry zastępuje gvfs-mount.
studog
13

Gdy poznasz urządzenie, prawdopodobnie używając dfinformacji jak w odpowiedzi @rcpao , najlepszym sposobem na „wysunięcie” dysku jest, imho, użycie tego samego polecenia, którego używa interfejs graficzny:

udisksctl unmount --block-device /dev/sdc1

Mam skrypt do wykonania kopii zapasowej na dysku, o którym wiem, że pod nim się zamontuje /media/romano/movlin, a po utworzeniu kopii zapasowej wykonuję:

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

Tutaj mount | grep movlin | cut -d" " -f1wyodrębni urządzenie zamontowane pod etykietą „movlin” (byłoby /dev/sdc1w takim przypadku), a następnie je odłączy.

Rmano
źródło
Jest to naprawdę konieczne, aby uruchomić ręcznie syncprzed udisksctl unmount?
Eliah Kagan
Prawdopodobnie nie. Ale ogólnie nie jestem pewien prawidłowego zachowania pamięci podręcznej; Czasem mam wrażenie, że dysk USB wciąż miga po umount ... przez kilka sekund. Powiedzmy, że to pozostałość po starym sync; sync; sync && poweroff...
Rmano,
@Rmano Wiele razy widziałem flashowanie na rzekomo zdemontowanym dysku flash (zwykle wykonywanym przez GUI w KDE). Próbuję to poczekać przed odłączeniem. To wygląda (dla mojego niedoświadczonego oka) na coś, co nie jest całkiem właściwe. Byłoby jeszcze gorzej z dyskiem flash bez kontrolki aktywności.
Joe
1
Rmano, ponieważ udisksnie jest już domyślnie obecny w Ubuntu, udisksctlmoże być preferowanym rozwiązaniem. udisksctl power-off --block-device /dev/sdcwyłącza światło na zewnętrznym dysku flash USB, więc może być odpowiednie jako następne polecenie do wykonania po twoim.
H2ONaCl
8
  1. df, aby znaleźć punkt instalacji dysku 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. Odmontuj za pomocą / dev / sdc1 lub / media / rcpao / SD024-64GB.

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

    lub

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
  3. Powinieneś być w stanie zobaczyć, jak ikona wysuwania dysku flash znika w nautilusie, jak tylko skończy się umount.

rcpa0
źródło
2
dfwygląda bardzo przydatnie do identyfikacji, gdzie znajduje się urządzenie.
H2ONaCl
2
W przypadku dysku flash jest to uzasadnione. W przypadku napędu dyskowego „Bezpiecznie usuń” również go obraca, czego nie robi to rozwiązanie (zobacz odpowiedź DaboRoss na ten temat).
Nate Eldredge
3
Tak, udisks --detachpomaga całkowicie odłączyć dyski po odmontowaniu.
daboross
1
dfi umountsą standardowymi narzędziami UNIX. Zawsze dobrze jest je znać, ponieważ będą one zawsze działać, podczas gdy udiskszależą od dbus i działającego udisksd .
Simon Richter,
1
@NateEldredge: „W przypadku dysku flash jest to uzasadnione ...” - tak naprawdę nie jest i głosuję z tego powodu: w zeszłym roku musiałem wdrożyć aplikację qa i naiwnie zastosowałem szybkie polecenie z cp /path/to /drive && umount drive. To sprawiło, że 2 dyski flash (tymczasowo) stały się nieczytelne, dopóki nie zdałem sobie sprawy, że to polecenie je spowodowało. Uruchomienie funkcji „Skanuj i napraw” na komputerze z systemem Windows naprawiło dyski. Odpowiedź DaboRoss poniżej jest znacznie bezpieczniejsza.
Andy E,
2

ejectz pakietu wysuwania :

sudo eject /dev/sdX

pojawia się na umountwszystkich partycjach i ustaw urządzenie w stanie, który należy usunąć, i podłącz je ponownie w celu ponownego zamontowania.

Ciro Santilli
źródło
W przypadku kilku aplikacji najlepszym sposobem na to jest polecenie wysuwania. Większość innych odpowiedzi jest „wystarczająco dobra”, ale technicznie ikona wysuwania na Nautalis nie powoduje wyłączenia urządzenia. Z mojego doświadczenia wynika, że ​​wysuwanie jest bliższe funkcjonalności samego przycisku wysuwania USB. Jeśli chcesz uniknąć sudo, możesz dodać siebie do grupy dysków (wymaga wylogowania i zalogowania). Poleceniem tego jest „dysk użytkownika
addoser