Узнайте, какое конкретное устройство является запоминающим устройством USB

контекст

Я автоматизирую визуализацию SD-карты с существующего образа фабрики dd . SD-карта всегда подключается через внешний USB-считыватель карт и, таким образом, отображается в системе как блок SCSI-устройства /dev/sd* .

В настоящее время синтаксис моей команды: write-image DEVICE где DEVICE является блочным устройством SD-карты, например. /dev/sdd .

проблема

Я уже делаю базовую проверку на DEVICE чтобы убедиться, что она имеет форму /dev/sd* но этого недостаточно: я боюсь, что пользователи (люди, не использующие Linux) производят ошибку и указывают другое, казалось бы, действительно устройство, например. /dev/sda . Вы можете увидеть надвигающуюся катастрофу, тем более, что для моего сценария визуализации нужны привилегии root (чтобы не писать само изображение, заметьте, а затем измените SD-карту, включая настройку размера раздела в зависимости от реального размера SD-карты) …

Вопрос

Я хотел бы проверить, что указанное устройство фактически является некоторым запоминающим устройством USB (или, по крайней мере, съемным устройством), чтобы я мог случайно защитить компьютерные диски. Как я могу это сделать?

Я не нашел ничего значимого в /proc или в Интернете, теперь я совершенно потерян.

One Solution collect form web for “Узнайте, какое конкретное устройство является запоминающим устройством USB”

Просмотрите каталог /sys/ . В частности, /sys/block/ содержит символические ссылки для блокировки устройств в /sys/devices/ .

/sys/block/sdX/removable выглядит как 1 для съемного устройства и 0 в противном случае. Это дает вам базовую проверку на возможность удаления.

Я не уверен, есть ли лучший способ проверить, является ли это USB-устройством, но readlink /sys/block/sde выдаст что-то вроде ../devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1.2/6-1.2:1.0/host7/target7:0:0/7:0:0:0/block/sde . Проверка того, что содержит папку usb* может работать как простая проверка.

Вы можете получить информацию о других устройствах, таких как поставщик и модель, из /sys/block/sdX/device/ , которые также могут пригодиться.

  • USB-устройства не распознаются, когда ноутбук работает от аккумулятора
  • Раздел NTFS для подключения USB не подключен
  • Безопасное извлечение USB-накопителя (Kindle) из командной строки
  • монтаж съемных USB-дисков с nodev, noexec, nosuid
  • Почему я не могу установить с USB? Для установки Kali USB требуется CD-ROM. Как я могу обойти это?
  • Как установить openSUSE 12.1 с внешнего жесткого диска?
  • Установите LVM-объем в качестве внешнего USB-накопителя? CentOS 6
  • Почему мой накопитель большого пальца переходит в режим только для чтения?
  • Установите параметры монтирования по умолчанию для usb
  • Простой Linux для Cyclone V - Arm Cortex A9
  • Подключить Asus Zenfone 5 к Linux
  • Почему в LiveUSB используются файловые системы squashfs (и аналогичные)?
  • Interesting Posts

    Невозможно установить linux-headers-4.7 в пакеты после установки ядра 4.7 Debian Jessie

    Как читать одновременно из двух файлов и печатать их по строкам, bash?

    Mac запрашивает с помощью `Enter passphrase для ключа при каждом входе в систему

    Поиск локальных процессов, запускающих TCP-соединения

    Centos 7 Управление свободным пространством от CLI

    Команды bash, похоже, не работают в .xinitrc

    Установка переменной среды с помощью сценария оболочки

    Как ограничить использование ресурсов для экономии CPU + RAM для определенного процесса?

    Необходимая помощь

    tar целую вложенную папку и один файл из другой подпапки, сохраняя структуру каталогов?

    Вывести как ps, так и Date в одной строке, в файл?

    Проблема с Mint 18 и инструментами VMware

    Создайте службу, которая регистрирует все входные данные

    Изменение разрешений папок в Debian

    Как определить определенный порядок для значков лотков в i3

    Linux и Unix - лучшая ОС в мире.