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

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

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

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

21
задан Kzqai
10.05.2023 10:38 Количество просмотров материала 3565
Распечатать страницу

12 ответов

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

77
отвечен zigdon 2023-05-11 18:26

до тех пор, как вы работаете 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 вообще не производит никакого вывода.

53
отвечен 2023-05-11 20:43

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

mount

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

51
отвечен AnotherLongUsername 2023-05-11 23:00

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

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

обновление

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

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

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

24
отвечен Eltariel 2023-05-12 01:17

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

blkid -c /dev/null

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

23
отвечен toh 2023-05-12 03:34

/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 и вашем оборудовании вообще.

11
отвечен Grumbel 2023-05-12 05:51
sudo fdisk -l

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

8
отвечен Felipe 2023-05-12 08:08

использовать

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

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

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

8
отвечен DJ Capelis 2023-05-12 10:25

для 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"
6
отвечен lemsx1 2023-05-12 12:42

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

2
отвечен Ted Percival 2023-05-12 14:59

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

2
отвечен 2023-05-12 17:16

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

0
отвечен Howler 2023-05-12 19:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх