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

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.


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.


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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.