Как определить, какой /dev является флеш-накопителем USB?

Я хочу установить USB-накопитель, два из них, и мне нужны две точки монтирования. К сожалению, ядро ​​Linux претерпело изменение имени, и я не могу понять, какое место /dev является правильным. Есть ли способ просмотреть dmesg или /proc или где-нибудь еще, чтобы узнать, какой узел устройства является USB-накопителем.

(Я использую ArchLinux, если это помогает любому ... /dev/sda - первый жесткий диск, /dev/sr0 - это DVD-диск и т. д. .)

edit: USB-накопитель подключен к USB-концентратору. Я просмотрел dmesg, и он говорит, что концентратор был подключен, и он сканировал для 3 подключенных к нему устройств. Тем не менее, я не вижу, где мой USB-накопитель.

151 голос | спросил Rudolf Olah 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 07:51:40 +0400 2008, 07:51:40

12 ответов


77

Самый простой способ: Посмотрите на вывод dmesg после подключения USB-устройства. Он должен показать вам, что ему был назначен узел /dev.

ответил zigdon 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 07:53:52 +0400 2008, 07:53:52
52

Пока вы используете udev , вы можете сделать это легко, указав /dev /disk /by -id /USB- ManufacturerName _ SerialNumber . Они отображаются в виде символических ссылок, которые вы можете напрямую ссылаться в своем fstab, или которые вы можете разыменовать с помощью readlink -e , чтобы определить связанное блочное устройство.

Вот пример реального мира. На моей машине у меня подключено 3 жестких диска USB. Каждый из них отображается в /dev /disk /by-id с уникальными серийными номерами (хотя они имеют общую строку производителя). Я создал символические ссылки на каждую из этих трех уникальных записей и теперь могу быстро определить, какой диск является (и какое устройство связано с каждым диском), запустив readlink -e linkname . Например, при запуске readlink -e /root /disk2 на моей машине в настоящее время отображается « /dev /sde », а readlink -e /root /disk3 не производит никакого вывода.

ответил 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 23:29:52 +0400 2008, 23:29:52
50

Все это хорошие предложения, но самый быстрый и наименее сложный метод - просто ввести в терминал следующее:

mount

, который предоставит список всех установленных устройств (предполагается, что USB-накопитель установлен, что обычно происходит с современными дистрибутивами Linux).

ответил AnotherLongUsername 4 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 04 Sep 2012 22:51:43 +0400 2012, 22:51:43
24

Попробуйте выполнить команду udevinfo -q all -n /dev/sda, где /dev/sda - это путь к вашему диску. Это дает вам информацию о диске, на который вы смотрите, - есть запись, в которой рассказывается о подключенной к ней шине.

Это, конечно, избавляет вас от необходимости использовать grep через dmesg и /или журналы.

Обновить

udevadm info --query=all -n /dev/sda 

От по крайней мере июль 2010 [ 1 ] udevinfo был заменен на Debian (и получен) на udevadm info с небольшим переходным процессом, с которым были вскоре устарели и удалены символические ссылки (вы все еще можете найти их на старой не обновленной машине ). Всегда из [ 1 ] мы можем прочитать:

  

В udev 117 был введен udevadm и udevinfo, а другие программы превратились в символические символы совместимости. Символьные ссылки были устарели в udev 128 и удалены навсегда в udev 147 .

ответил Eltariel 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 07:59:28 +0400 2008, 07:59:28
23

Самый простой способ увидеть, что происходит, это просто набирать (как правило, root):

blkid -c /dev/null

это дает вам полный обзор обо всех блочных устройствах, даже если они не установлены

ответил toh 2 Jpm1000000pmWed, 02 Jan 2013 12:37:01 +040013 2013, 12:37:01
11

/dev/disk/by-* - это самый простой способ в этом случае, если по какой-то причине вы хотите сделать жизнь более интересной, вы можете использовать HAL.

Чтобы перечислить все используемые вами устройства:

hal-device

Чтобы получить конкретное свойство, которое вы используете (это вернет /dev/sd* на запоминающее устройство USB):

hal-get-property --udi $UDI --key block.device

Существует также:

hal-find-by-capability
hal-find-by-property

Если вы хотите сделать это еще более сложным, вы можете относительно легко написать себе автоматический автомат HAL , который может быть весьма полезен, если вы хотите полностью автоматизировать работу.

И только для полноты есть также:

lsusb -v
lshw

Что дает общую информацию о USB и вашем оборудовании в целом.

ответил Grumbel 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 25 Sep 2009 02:36:40 +0400 2009, 02:36:40
8

Использование

ls -l /dev/disk/by-id/usb*

В соответствии с правилами udev по умолчанию, которые покажут вам большинство устройств usb, и он покажет вам символическую ссылку на их имя блочного устройства в системе.

Если это не сработает, посмотрите на /dev/disk/by-id/ напрямую.

ответил DJ Capelis 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 08:18:39 +0400 2008, 08:18:39
7
sudo fdisk -l

И просто проанализируйте результат.

ответил Felipe 10 22015vEurope/Moscow11bEurope/MoscowTue, 10 Nov 2015 05:47:28 +0300 2015, 05:47:28
6

Для устройств USB вы можете просто сделать

 REMOVABLE_DRIVES=""
for _device in /sys/block/*/device; do
    if echo $(readlink -f "$_device")|egrep -q "usb"; then
        _disk=$(echo "$_device" | cut -f4 -d/)
        REMOVABLE_DRIVES="$REMOVABLE_DRIVES $_disk"
    fi
done
echo Removable drives found: "$REMOVABLE_DRIVES"
ответил lemsx1 24 PM00000090000005631 2012, 21:37:56
2

Посмотрите на дерево под /dev/disk. Он перечисляет диски и их разделы (файловые системы) различными схемами.

ответил Ted Percival 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 07:55:24 +0400 2008, 07:55:24
2

/var /log /message, если dmesg больше не имеет информации.

ответил 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 07:56:03 +0400 2008, 07:56:03
0

Если вы отсоедините USB-накопитель и подключите его обратно, вы должны увидеть его инициализацию из ядра (dmesg)

ответил Howler 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2008 07:53:27 +0400 2008, 07:53:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132