Ответы:
Нет, они не должны быть; 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который не имеет --detachotion. Что делать в этом случае? благодарю вас.
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/sdXissg_start -s /dev/sdX(изsg3_utilsпакета), обе используют команды SCSI для отправки на устройство.