Не удается извлечь USB-накопитель без sudo?

Я пытаюсь извлечь USB-диск в командной строке с eject /dev/sdg1 но я получаю следующую ошибку:

eject: unable to open `/dev/sdg'

Команда размонтирует диск, но не извлекает его. Тем не менее, запуск с sudo работает просто отлично. Это ошибка или ожидаемое поведение? Я пытаюсь включить это в приложение Python, поэтому sudo на самом деле не вариант. Обратите внимание, что umount работает просто отлично без sudo.

Это флешка. Я думаю, что есть только один раздел на нем

2 ответа

Решение

Нет механизма извлечения USB-устройства. Размонтировать его с помощью (в вашем случае umount /dev/sdg1 и вручную удалить его. (Предполагается, что / dev / sdg1 является единственным подключенным разделом в / dev / sdg). Вы можете проверить, какие разделы смонтированы на устройстве, с помощью команд, таких как lsblk а также mount | grep sdX где sdX соответствует вашему устройству (в вашем случае sdg).

eject предназначен специально для съемных носителей, таких как оптические, флоппи-диски, магнитные ленты, ZIP, JAZ и не поддерживается флешками вообще.

Источники:

man eject

Я думаю, что "извлечение" в случае USB-накопителей означает отключение и отключение питания, как это реализовано некоторыми инструментами GUI (с символом извлечения).

Вы можете посмотреть в udisks и инструмент udisksctl,

Читать руководства

man udisks
man udisksctl

Например, вы найдете команды

   udisksctl mount {--object-path OBJECT | --block-device DEVICE}
             [--filesystem-type TYPE] [--options OPTIONS...]
             [--no-user-interaction]

   udisksctl unmount {--object-path OBJECT | --block-device DEVICE} [--force]
             [--no-user-interaction]

   udisksctl power-off {--object-path OBJECT | --block-device DEVICE}
             [--no-user-interaction]

я думаю

udisksctl unmount --block-device <device> && \
udisksctl power-off --block-device <device>

Команды могут делать то, что вы хотите. В этом случае с одним разделом в 'SDG' <device> является /dev/sdg1

   power-off
       Arranges for the drive to be safely removed and powered off. On the OS
       side this includes ensuring that no process is using the drive, then
       requesting that in-flight buffers and caches are committed to stable
       storage. The exact steps for powering off the drive depends on the
       drive itself and the interconnect used. For drives connected through
       USB, the effect is that the USB device will be deconfigured followed by
       disabling the upstream hub port it is connected to.

       Note that as some physical devices contain multiple drives (for example
       4-in-1 flash card reader USB devices) powering off one drive may affect
       other drives. As such there are not a lot of guarantees associated with
       performing this action. Usually the effect is that the drive disappears
       as if it was unplugged.
Другие вопросы по тегам