Odpowiedzi:
Nie. Nie muszą być; eject
służy do otwierania napędów optycznych, w których nie można bezpośrednio wyciągnąć nośnika.
Odinstalowanie jest wystarczające dla USB / eSATA / itp. urządzenia pamięci masowej.
sync
przed
eject
, sterownik urządzenia USB może nadal (próbować) pisać PO umount
zwróceniu. Można to wyraźnie zobaczyć, jeśli dysk ma diodę LED stanu. Szarpnięcie pendrive'a zaraz po jego umount
zakończeniu jest PRZEPISEM NA AWARIĘ.
Tak. Na przykład:
sudo eject /dev/sda
Inne odpowiedzi, które wskazują, że potrzebujesz sprzętu do wyrzucania mechanicznego, są niepoprawne.
Odmontowanie to nie to samo, co wysuwanie.
sudo
tej komendy do zakończenia (wystarczyło odmontować dysk, zanim powiedział, że nie można otworzyć pliku). Poza tym pomocna odpowiedź.
eject
będzie działać, ale tak naprawdę nie „dokończy zadania” w odniesieniu do napędów obrotowych USB.
Najlepszym sposobem na odłączenie zewnętrznego dysku twardego USB po prawidłowym odmontowaniu jest:
udisks --detach /dev/sdb
Zwykle powoduje to, że dysk obraca się płynnie.
Właśnie obecne wdrożenie :
Ten proces jest zbliżony do procedury ręcznej, która jest tutaj sugerowana . Początkowa odpowiedź była na askubuntu .
EDYCJA: Ponadto, jak wskazuje g.rocket , to polecenie może być równoważne:
udisksctl power-off -b /dev/sdb
udisksctl
który nie ma jeszcze okazji, --detach
jest dostępny. Co robić w tym przypadku? Dziękuję Ci.
udisks
.
udisks
? Nie ma go w moim systemie. Znalazłem paczkę udisks2
, ale ta nie została udostępniona udisks
ani udisks2
udostępniona.
udisksctl power-off -b /dev/sdwhatever
wydaje się robić to samo.
Kroki ręczne odmontowywania dysku / dev / sdb (wymaga sudo):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
Spowoduje to całkowite wyłączenie urządzenia i odłączenie go od systemu. Nie zostanie wykryty ponownie, dopóki nie zostanie odłączony i ponownie podłączony.
hdparm -Y
jest również przydatny w przypadku napędów SATA / IDE.
Jeśli dokładnie przeczytasz stronę podręcznika eject (1) , zobaczysz, że istnieją 4 metody wysuwania:
-r This option specifies that the drive should be ejected using a CDROM
eject command.
-s This option specifies that the drive should be ejected using SCSI
commands.
-f This option specifies that the drive should be ejected using a remov‐
able floppy disk eject command.
-q This option specifies that the drive should be ejected using a tape
drive offline command.
Po wywołaniu eject na HDD / SCSI wydaje ioctl(fd, SG_IO, (void *)&io_hdr);
polecenie (kopiowanie ze eject.c
źródeł).
Jest to równoważne, gdy bezpiecznie usuwasz urządzenie w MS Windows lub MaxOSX.
W przypadku niektórych urządzeń ma to szczególne znaczenie. Na przykład Kindle 3 po przeniesieniu polecenia wysuwania do trybu ładowania i umożliwia przeglądanie na urządzeniu, zanim ekran był zablokowany.
Inne narzędzia robią to samo, jak to
scsi-spin --force --down /dev/sda
„Wyrzucanie” nie ma znaczenia dla sprzętu bez tacy lub innego mechanizmu ładowania (zakładam, że działa również z napędami taśmowymi).
Jednak testy z zewnętrznym dyskiem flash USB wskazują, że eject
działa podobnie umount
- z efektem ubocznym powodującym zniknięcie węzłów urządzenia, np.
% ls /dev/sdc*
/dev/sdc /dev/sdc1
% sudo eject /dev/sdc
% ls /dev/sdc*
/dev/sdc
Zauważ, że /dev/sdc1
zniknął.
mt rewoffl
jest to bardziej wygodne, ponieważ również przewija), ale to nie działa z napędem dyskietek, takich jak te znajdujące się na starych komputerach Mac i Sun stacjach roboczych.
udisks --detach /dev/sdX
gdzie (X) to ostatnia litera urządzenia USB. Działa dobrze na każdym systemie Linux.
OK postaram się wyjaśnić to lepiej:
Polecenie udisks całkowicie usuwa i wyłącza każde urządzenie USB zamontowane lub podłączone w systemie. polecenie odmontowania wystarczy odmontować partycję, tj .: dev / sdb1 lub cokolwiek innego niż usb jest nadal obecny w systemie.
Więc nie jest to samo odmontowanie, wysunięcie i odłączenie
udisks = wyłącz USB
umount = po prostu odmontuj partycję, a nie cały pendrive
eject = to samo lub bardzo blisko polecenia umount
eject /dev/sdX
jestsg_start -s /dev/sdX
(zsg3_utils
pakietu), oba używają poleceń SCSI, aby wysłać do urządzenia.