Некоторые подробности

Некоторые подробности

Я знаю, чтоejectЭту команду можно использовать для извлечения практически любого подключенного аппаратного компонента, но можно ли ее использовать для извлечения USB-накопителей?

Можно ли извлекать USB-накопители и внешние жесткие диски с помощьюejectкоманда?

решение1

Да. Например:

sudo eject /dev/sda

Другие ответы, указывающие на необходимость механического выталкивающего оборудования, неверны.

Размонтирование — это не то же самое, что извлечение.

  1. Если вы отмонтируете том, вы сможете немедленно смонтировать его обратно, поскольку базовое устройство по-прежнему доступно.В некоторых ситуациях это может представлять угрозу безопасности.При извлечении устройства перезагрузить его можно только путем сброса подсистемы USB (например, перезагрузки).
  2. Извлекая устройство, вы фактически блокируете любой дальнейший доступ к устройству. Только сброс подсистемы USB (например, перезагрузка) перезагрузит устройство. В противном случае вам придется физически отключить USB-устройство и подключить его снова, чтобы снова получить к нему доступ.
  3. Перед извлечением эта команда отмонтирует все тома на устройстве, которые были смонтированы.
  4. Если тома используются, эта команда завершится ошибкой, как и команда unmount, за исключением того, что некоторые тома могут быть размонтированы, а некоторые могут остаться смонтированными.

решение2

НаЛинукс, ejectбудет работать, но не сможет полностью «завершить работу» в отношении USBвращающийсядиски.

Итак, сначала вы eject /dev/sdb(или umountвсё).

Изатем,после правильного демонтажа, лучший способ отключить внешний жесткий диск USB:

    udisksctl power-off -b /dev/sdb

или

    udisks --detach /dev/sdb

Обычно это приводит к плавному замедлению вращения диска.

Примечание: udisksctlможет быть более «мейнстримовым» инструментом по сравнению с udisks(первый уже установлен на моем Debian, последний нет и былкритиковалидля ненужного вращения вверх/вниз).

Некоторые подробности

udisksctl

Theв документации говорится(о возможности отключения питания):

Обеспечивает безопасное извлечение и выключение накопителя. Со стороны ОС это включает в себя обеспечение того, что ни один процесс не использует накопитель, а затем запрос на то, чтобы буферы и кэши в полете были зафиксированы в стабильном хранилище. Точные шаги для выключения накопителя зависят от самого накопителя и используемого соединения. Для накопителей, подключенных через USB, эффект заключается в том, что устройство USB будет деконфигурировано с последующим отключением порта концентратора восходящего потока, к которому оно подключено.

Обратите внимание, что поскольку некоторые физические устройства содержат несколько дисков (например, USB-устройства чтения флэш-карт 4-в-1), отключение одного диска может повлиять на другие диски. Таким образом, не существует большого количества гарантий, связанных с выполнением этого действия. Обычно эффект заключается в том, что диск исчезает, как будто его отключили.

udisks (устарело?)

Именно,текущая реализация(по состоянию на 2014 год):

  • отправляет команду SCSI sync-cache,
  • отправляет команду остановки SCSI,
  • отвязывает драйвер ядра usb-storage,
  • приостанавливает работу USB-устройства (питание),
  • логически отключает/удаляет его из USB-порта.

Этот процесс близок к предлагаемой ручной процедуре.здесь. Первоначальный ответ былна askubuntu.

решение3

Ручные действия по размонтированию диска /dev/sdb (требуется sudo):

echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete

Это полностью отключит устройство и отсоединит его от системы. Оно не будет обнаружено снова, пока не будет отключено и снова подключено.

решение4

Если вы внимательно прочиталивыбросить(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.

Когда вы звонитевыталкиватьна HDD/SCSI выдается ioctl(fd, SG_IO, (void *)&io_hdr);команда (копировать из eject.cисточников).

Это эквивалентно безопасному извлечению устройства в MS Windows или MaxOSX.

Для некоторых устройств это имеет особое значение. Например, Kindle 3 послевыталкиватькоманда переведена в режим зарядки и позволяет просматривать веб-страницы на устройстве, хотя раньше экран был заблокирован.

Другие утилиты делают то же самое, например так

scsi-spin --force --down /dev/sda

Связанный контент