Wysuń / bezpiecznie usuń kontra umount

42

Korzystam z Ubuntu 12.04, a kiedy dokładnie klikam ikonę dysku flash (na lewym pasku Unity), dostaję dwie opcje, które mnie mylą: wysuwanie i bezpieczne usuwanie .
Im bliżej znalazłem odpowiedź na ten wątek na forum , który stwierdza, że ​​(w przypadku dysku flash) są one równe i równoważne z użyciem umountpolecenia. To ostatnie stwierdzenie wydaje się jednak fałszywe.
Jeśli użyję umountkonsoli do odmontowania nurkowania flash, a następnie lsblkużyję polecenia , nadal widzę swoje urządzenie (oczywiście bez MOUNTPOINT). Z drugiej strony, jeśli wysunę lub bezpiecznie wyjmę dysk flash, lsblknie będzie go już na liście.

Moje pytanie brzmi: jakie byłoby polecenie / polecenia konsoli, które naprawdę odtworzyłyby zachowanie wysuwania i bezpiecznego usuwania ?

LGenzelis
źródło
3
Możesz znaleźć plik .desktop ikony pod ikoną /usr/share/applications/lub coś w tym rodzaju. Jeśli otworzysz go w edytorze tekstów, pole Exec = ... odpowiada poleceniu uruchamianemu po kliknięciu.
spelufo

Odpowiedzi:

64

Jeśli używasz, systemdużyj udisksctlnarzędzia z power-offopcją:

wyłączenie zasilania

Umożliwia bezpieczne usunięcie napędu i wyłączenie zasilania. Po stronie systemu operacyjnego obejmuje to upewnienie się, że żaden proces nie korzysta z napędu, a następnie żądanie, aby bufory i pamięci podręczne zostały przydzielone do stabilnego przechowywania.

Polecam najpierw odmontować wszystkie systemy plików na tym usb. Można to zrobić również za pomocą udisksctl, więc kroki będą:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

Jeśli nie używasz, systemdstary towar udiskspowinien działać:

udisks --unmount /dev/sda1
udisks --detach /dev/sda
jimmij
źródło
O rany - dopiero teraz zdałem sobie sprawę, że pytanie brzmi: jak to zrobić z wiersza poleceń - a nie jaka jest różnica między jedną rzeczą a drugą. nie usunę mojej odpowiedzi, ponieważ myślę, że oferuje ona pewną perspektywę - ale myślę, że twoja odpowiedź jest odpowiednia dla systemów linuxowych (nawet nie wiem, czy to jest pytanie bsd istotne ...) .
mikeserv
4
udisksctl power-offw moim przypadku nie wydaje się równoważne z „bezpiecznym usunięciem”. Z kartą micro-SD w moim wewnętrznym czytniku kart, urządzeniu /dev/sdd, bez zamontowanych systemów plików, kiedy używam polecenia udisksctl power-off -b /dev/sdd, dioda LED czytnika gaśnie, ale wtedy całe urządzenie przestaje działać, tak myślę, ponieważ, cóż, dosłownie całkowicie się wyłączyło. Muszę ponownie uruchomić system, aby znów mógł być używany.
ack
1
Dla @ack: możesz wyłączyć / włączyć hub (być może wewnętrzny), do którego podłączony jest czytnik. Ponieważ jest to koncentrator, również upuści, a następnie ponownie wyliczy wszystko, w tym brakujące urządzenie. Mam nadzieję, że możesz przeczytać ten przykład: udisksctl power-off -b /dev/mmcblk0mmc0: karta aaaa usunęła USB 3-1.8: USB odłączenie, numer urządzenia 41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedhub 3-1: 1.0: Znaleziono hub USB USB 3-1: Upoważniono do podłączenia USB 3-1.8: Znaleziono nowe urządzenie USB , idVendor = 0bda, idProduct = 0129 mmc0: nowa ultraszybka karta SDR50 SDHC pod adresem aaaa
AB
14

umountjest całkowicie bezpieczny dla dysku. Gdy już to zrobisz, pomyślnie zdemontowałeś system plików i nie musisz się martwić o to. Podstawowa różnica między wysuwaniem i umountwcale nie dotyczy dysku - chodzi raczej o moc wyjściową portu USB 5 V.

Po umounttym, jak nadal widzisz swój dysk na liście, lsblkponieważ nadal jest włączony i podłączony. umountsystem plików wewnętrznego dysku twardego i zobaczysz to samo zachowanie z tego samego powodu. Ale kiedy wyjmujesz urządzenie USB, wyłączasz je i przestaje on pobierać napięcie 5 V, co zwykle - myślę, że spadnie do 0,5 V, ale ta klasa zdarzyła się dawno temu.

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

Oto ścieżka autobusu USB ...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

Chociaż prawie nigdy go nie montuję, jest podłączony i miga przez długi czas, tak myślę ...

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

Powinienem coś z tym zrobić:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

Teraz jeszcze raz na to spojrzę ...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

Hmmm...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device
mikeserv
źródło
1
Dzięki. Czy po umountzewnętrznym dysku twardym można bezpiecznie usunąć zewnętrzny dysk twardy z komputera?
Tim
1
Nie sądzę, że umountjest to równoważne z „bezpiecznym usunięciem”, i nie jest udisksctl power-off, proszę zobaczyć mój komentarz do drugiej odpowiedzi. Porównaj na przykład z zachowaniem w systemie Windows. Domyślam się, że Windows robi coś więcej niż tylko „odmontowanie” systemów plików na urządzeniu. Zauważyłem, że spinuje zewnętrzne dyski twarde, wyłącza diody LED czytników kart ( bez powodowania, że urządzenie nie nadaje się do użytku, dopóki nie zostanie ponownie zainstalowane lub system nie zostanie ponownie uruchomiony) itp.
ack
2
@ack - co Windows ma z tym wspólnego? i dlaczego zgadujesz? i nie trzeba go ponownie uruchamiać, aby znów mógł zostać użyty. ty umountto. wtedy wyłączysz to. i nigdy nie sugerowałem niczego w udiskctlten czy inny sposób.
mikeserv
1
@mikeserv „Bezpiecznie usuń sprzęt” to wyrażenie używane w systemie Windows. Jest prawdopodobne, że inne systemy skopiowały to wyrażenie ze względu na znajomość użytkownika. Ważne jest, aby odróżnić go od zwykłego odmontowywania systemu plików. Przykładem, w którym ma to ogromne znaczenie, jest brak pewności systemu operacyjnego co do buforowania zapisu urządzenia pamięci masowej. Osobiście doświadczyłem dość znacznej utraty danych (uszkodzony superblok i pliki) po zwykłym odmontowaniu i odłączeniu zewnętrznego dysku twardego. Później dowiedziałem się, że Linux ostrzegał przed tym: „Nie znaleziono strony trybu buforowania”, „Zakładając pamięć podręczną dysku: zapisz przez”.
ack
1
@ack - nie, to nie jest ważne. twoim problemem jest prawdopodobnie twój acpi. nie ma to nic wspólnego z systemem operacyjnym - wystarczy, że producent twojej płyty napisał sterowniki tylko dla jednego systemu operacyjnego. te małe urządzenia z wieloma kartami wymagają dość niskiego poziomu dostępu do karty docelowej - muszą być w stanie wykonywać takie czynności, jak łączenie oka. nie są urządzeniami blokowymi - są urządzeniami postaci. w niczym nie przypominają dysków USB. board-rom musi poradzić sobie z nimi osobno, a jeśli twój dostawca słabo go obsługuje (to nie jest niezwykłe - spróbuj uruchomić z jednego), nie masz szczęścia. ale to nie jest problem z Linuksem.
mikeserv