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


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

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

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


151
2017-09-16 03:51


Источник


Не видите? Может, подожди немного. Или попробуйте другой USB-порт. Посмотрите, какие различия существуют в 'lsusb' - Nick Devereaux
Возможно, нужно немного перефразировать вопрос - не все устройства USB - это диски. - Arafangion
df команда показывает вам, где она была смонтирована - Will Sheppard


Ответы:


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


77
2017-09-16 03:53



dmesg отлично работает, но у меня есть случай, когда dmesg не показывает /dev узел: [421963.864281] usb 3-6: new high-speed USB device number 32 using xhci_hcd Что это значит? Как смонтировать это устройство? Устройство отображается на lsusb... - modulitos
Вообще-то, я понял это. С момента последней перезагрузки явилось обновление ядра, которое вызывало эту проблему. После перезагрузки мой USB-накопитель просто отлично. Надеюсь, это поможет кому-то! - modulitos


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

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


52
2017-09-16 19:29



Короткий и простой: for devlink in /dev/disk/by-id/usb*; do readlink -f ${devlink}; done - Felipe Alcacibar


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

mount

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


50
2017-09-04 18:51



Нет, он не волшебным образом монтирует ваше устройство. Вы должны указать его с помощью mount /dev/id /mount/point, так что это не сработает. - polym
Мой ответ затрагивает вопрос пользователя «Есть ли способ просмотреть dmesg или / proc или где-нибудь еще, чтобы узнать, какой узел устройства является USB-накопителем» и не предназначен для указания руководства по практичности установки диска под Linux , - AnotherLongUsername
Этот ответ решил для меня почти идентичный вопрос. - Matthew Brown aka Lord Matt
Я думаю, что автоматическое поведение зависит от типа дистрибутива. - jiggunjer
df тоже, полагаю. - Alexey


Попробуйте выполнить команду 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,


24
2017-09-16 03:59



В Debian, udevinfo переименовано udevadm, - Steve Pomeroy
На Ubuntu команда кажется «udevadm info --query = all -n / dev / sda» - machineghost
Я предполагаю, что они переименовали команду в какой-то момент - когда я написал ответ (давным-давно), команда работала над системой ubuntu, которую я отправил из;) - Eltariel
Команда работает еще в ubuntu, udevadm info --query=all -n /dev/ttyUSB1 - Siddharth
udevadm info --query=all -n /dev/ttyUSB в Fedora тоже. - slm


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

blkid -c /dev/null

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


23
2018-01-02 08:37



Не у всех дистрибутивов это есть. Что вы использовали? - New Alexandria
Это ничего не выводит на мой дистрибутив Raspbian. - Igor G.
Команда не найдена: blkid - Igor G.
Никакой выход из этой команды на Ubuntu 14.04 64-бит. - gbmhunter


/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
2017-09-24 22:36



/ dev / disk / by-id / * usb * очень полезно. - Rob
/ dev / disk / by-label ftw. Благодаря :) - Triptych


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

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

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

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


8
2017-09-16 04:18