Ответы:
Нет, они не должны быть; eject
используется для открытия оптических приводов, где нельзя извлечь носитель напрямую.
Отключение достаточно для USB / eSATA / и т. Д. устройства хранения данных.
sync
прежде чем его
eject
лежащий в основе драйвер устройства USB может (попытаться) написать сообщение ПОСЛЕ umount
возврата. Это хорошо видно, если на диске есть индикатор состояния. Дрожание USB-накопителя сразу после umount
завершения - РЕЦЕПТ АВАРИИ.
Да. Например:
sudo eject /dev/sda
Другие ответы здесь, которые указывают на то, что вам требуется механический аппарат для выброса, неверны.
Размонтирование - это не то же самое, что извлечение.
sudo
эту команду для завершения (все, что нужно сделать, это размонтировать диск, прежде чем сказать, что он не может открыть файл). Кроме этого, полезный ответ.
eject
будет работать, но на самом деле не "завершит работу" относительно USB вращающихся дисков.
Лучший способ отсоединить внешний жесткий диск USB после правильного отсоединения :
udisks --detach /dev/sdb
Это обычно заставляет двигатель вращаться изящно.
Точно, текущая реализация :
Этот процесс близок к ручной процедуре, которая предлагается здесь . Первоначальный ответ был на аскубунту .
РЕДАКТИРОВАТЬ: Кроме того, как указывает g.rocket , эта команда может быть эквивалентна:
udisksctl power-off -b /dev/sdb
udisksctl
который не имеет --detach
otion. Что делать в этом случае? благодарю вас.
udisks
.
udisks
? Это не в моей системе. Я нашел пакет udisks2
, но тот не сделал udisks
или не udisks2
доступен.
udisksctl power-off -b /dev/sdwhatever
кажется, делает то же самое.
Ручные шаги для размонтирования диска / dev / sdb (требуется sudo):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
Это полностью отключит устройство и отсоединит его от системы. Он не будет обнаружен снова, пока не будет отключен и снова подключен.
hdparm -Y
также удобно для дисков SATA / IDE.
Если вы внимательно прочитали справочную страницу eject (1), вы можете увидеть, что существует 4 метода извлечения:
-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.
Когда вы вызываете eject на HDD / SCSI, он выдает ioctl(fd, SG_IO, (void *)&io_hdr);
команду (копирование из eject.c
источников).
Это эквивалентно безопасному удалению устройства в MS Windows или MaxOSX.
Для некоторых устройств это имеет особое значение. Например, Kindle 3 после команды извлечения перешел в режим зарядки и позволяет просматривать на устройстве, пока экран не был заблокирован.
Другие утилиты делают то же самое, как это
scsi-spin --force --down /dev/sda
«Извлечение» не имеет значения для оборудования без лотка или другого загрузочного механизма (я полагаю, что оно работает и с ленточными накопителями).
Тем не менее, тестирование с помощью внешнего USB-накопителя показывает, что это eject
работает примерно так же umount
- с побочным эффектом исчезновения узлов устройства, например
% ls /dev/sdc*
/dev/sdc /dev/sdc1
% sudo eject /dev/sdc
% ls /dev/sdc*
/dev/sdc
Обратите внимание, что /dev/sdc1
исчез.
mt rewoffl
более удобно , потому что он также перематывает), но это делает работу с моторизованными гибкими дисками , как те , что на старых компьютерах Mac и Sun рабочих станциях.
udisks --detach /dev/sdX
где (X) - последняя буква вашего USB-устройства. Он отлично работает на любой системе Linux.
Хорошо, я постараюсь объяснить это лучше:
Команда udisks полностью удаляет и отключает питание любого USB-устройства, подключенного или подключенного к системе. Команда unmount просто демонтирует раздел, то есть: dev / sdb1 или что-то еще, но usb все еще присутствует в системе.
Так не то же самое размонтировать, извлечь и отсоединить
udisks = выключить USB
umount = просто размонтировать раздел не весь pendrive
eject = то же самое или очень близко к команде umount
eject /dev/sdX
issg_start -s /dev/sdX
(изsg3_utils
пакета), обе используют команды SCSI для отправки на устройство.