Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: как определить соответствие usb-устройства и файла устройства.  (Прочитано 11796 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн efimov_nick

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Например была такая ситуация - нужно было скинуть файлики на сервер с флэшки,
вставляю флешку, смотрю /dev а там на экранов 5 вывод sd* файлов и нипонятно где флэшка.
ну или например флешка воткнута кем-то в ПК удаленный, там несколько устройст , а я знаю например название,фирму , что позволяет каким либо образом ее индифицировать. Вопрос в том как однозначно установить связь между флэшкой и файлом устройства, причем существующие в системе в данный момент, а не подключенный там когдато.
lsusb - показывает информацию об устройстве, но ни слова о файле устройства.
в message, как и в dmesg - может быть и можно что-то найти, но там все не прозрачно(не получится например в каком-либо скрепте вытащить информацию) и сохраняется информация по прошлым манипуляциям с usb устройствами. 

Оффлайн Trident

  • Dmitry V. Lysoff
  • Активист
  • *
  • Сообщений: 907
  • Негодяй и мерзавец
    • Просмотр профиля
Добро пожаловать в систему Посейдон. Пожалуйста, представьтесь.

Оффлайн efimov_nick

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Вот например он мне показывает:
/dev/sda1 on / type ext3
а как узнать какое именно устройство связанно с /dev/sda

Пользователь решил продолжить мысль 14 Августа 2009, 12:58:57:
Вот я например знаю, что хард у меня Hitach, в dmesg  нашел его Hitachi HTS542516K9SA00, типа он нашелся, все хорошо, но как определить что ему именно /dev/sda соответствует, а если он и не подмонтированн , то в mount он и не попадет как я понимаю
« Последнее редактирование: 14 Августа 2009, 12:58:57 от efimov_nick »

Оффлайн Trident

  • Dmitry V. Lysoff
  • Активист
  • *
  • Сообщений: 907
  • Негодяй и мерзавец
    • Просмотр профиля
Что с тобой, %юзернейм%? Ты первый раз поставил линупс и не почитал мануалы?
Вот в славные времена, когда еще были /dev/hd*, было так: /dev/hda — primary, /dev/hdb — primary slave, /dev/hdc /dev/hdd — соответственно secondary. Посмотри на своё железо, что в самой первой дырке sata сидит, то и есть /dev/sda
Добро пожаловать в систему Посейдон. Пожалуйста, представьтесь.

Оффлайн efimov_nick

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Прошу написанное не воспринимать дословно, приводил в качестве примера.
Постараюсь обяснить на примере:
Например пишу скрипт для резервного копирования на флэшку. Буду использовать флэшку всегда одну и туже, например ее можно будет идентифицировать в системе как Hitachi HTS542516K9SA00. Она во время запуска скрипта может быть воткнута в любой порт USB. Так же флешка может быть подмонтированна, а может и нет. По этому нужно зная Hitachi HTS542516K9SA00 узнать какой файл в данный момент времени к ней относиться, и по этой информации я уже определю подмонтированна она или нет, если да, то куда, если нет - сам подмонтирую куда надо.

Оффлайн Trident

  • Dmitry V. Lysoff
  • Активист
  • *
  • Сообщений: 907
  • Негодяй и мерзавец
    • Просмотр профиля
Добро пожаловать в систему Посейдон. Пожалуйста, представьтесь.

Оффлайн efimov_nick

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Почти то что надо, это удовлетворяет описанному примеру, но мне не савсем подходит. Мне нужно определить usb-устройство именно по вендору.


Пользователь решил продолжить мысль 14 Августа 2009, 14:39:57:
Вот например(пример уже не про флэшку, просто щас в системе нет флэшки, но аналог я думаю можно провести):
lsusb -v показывает про одно из usb устройств
  idVendor           0x0b05 ASUSTek Computer, Inc.
  idProduct          0x1712 BT-183 Bluetooth 2.0+EDR adapter

Вот зная например про usb-устройство idVendor и   idProduct на любой машине где подключено данное устройство , хотел бы узнавать файл этого устройства в /dev
« Последнее редактирование: 14 Августа 2009, 14:39:57 от efimov_nick »

Оффлайн fwhr

  • Старожил
  • *
  • Сообщений: 2104
    • Просмотр профиля
Довольно часто встречаю разные флешки с одинаковым idVendor:idProduct. Как поступать в этом случае?
Имхо, проще задать каждой флешке уникальную метку и она будет монтироваться в /media/Disk_Label. Если автоматическое монтирование не происходит,
ls -l /dev/disk/by-labelтебе поможет. Если флешка на удалённом компе - смотри dmesg в момент подключения, тоже по идее понять что-то сможешь.
Обычно люди получают не то, что заслуживают, а то, что получилось... © Доктор Хауз

Оффлайн efimov_nick

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Я конечно сам увел разговор немного не в то русло, ну и формулировал немного не правильно, поэтому разговор ушел немного не в то направление(тема поста была "как определить соответствие usb-устройства и файла устройства") , но щас я сформулировал довольно точно вопрос:
lsusb -v показывает про одно из usb устройств
  idVendor           0x0b05 ASUSTek Computer, Inc.
  idProduct          0x1712 BT-183 Bluetooth 2.0+EDR adapter

Вот зная например про usb-устройство idVendor и   idProduct на любой машине где подключено данное устройство , хотел бы узнавать файл этого устройства в /dev

Прошу обратить внимание на - usb-устройство - а не флешка, idVendor: idProduct не обязательно ASUSTek Computer, Inc.:BT-183 Bluetooth 2.0+EDR adapter, а любое другое

Пользователь решил продолжить мысль 14 Августа 2009, 15:00:20:
Прочем не именно это-же usb-устройство которое в данной системе, а просто того же производителя и такойже модели
« Последнее редактирование: 14 Августа 2009, 15:00:20 от efimov_nick »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Может копать в сторону udev? См. /lib/udev/rules.d/* Ну, и документация поди есть, как конкретное устройство привязать к конкретному /dev/что-то в системе.

Оффлайн Dixi257

  • Активист
  • *
  • Сообщений: 287
    • Просмотр профиля
Самому вдруг стало жутко интересно. Что думаю:

dmesg | grep 'removable disk'

ls /dev/sd*
потом перебрать все диски при помощи fdisk -l (только запускать надо от root)
fdisk -l  /dev/sdb



Оффлайн efimov_nick

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Очень не хотелось бы привязываться к dmesg, т.к как я понимаю она хранит все манипуляции с начала загрузки системы, соответственно могут возникнуть неоднозначные ситуации(если учесть что все-таки скрипт будет обрабатывать dmesg)

Пользователь решил продолжить мысль 17 Августа 2009, 07:49:35:
нашел почти что нужно:
udevadm info --query=all --name=/dev/sdb
P: /devices/pci0000:00/0000:00:13.5/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0/block/sdb
N: sdb
W:58
S: block/8:16
S: disk/by-id/usb-JetFlash_Transcend_4GB_LEKMZH2J-0:0
S: disk/by-path/pci-0000:00:13.5-usb-0:4:1.0-scsi-0:0:0:0
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:13.5/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0/block/sdb
E: MAJOR=8
E: MINOR=16
E: DEVTYPE=disk
E: DEVNAME=/dev/sdb
E: ID_VENDOR=JetFlash
E: ID_VENDOR_ENC=JetFlash
E: ID_VENDOR_ID=058f
E: ID_MODEL=Transcend_4GB
E: ID_MODEL_ENC=Transcend\x204GB\x20\x20\x20
E: ID_MODEL_ID=6387
E: ID_REVISION=8.07
E: ID_SERIAL=JetFlash_Transcend_4GB_LEKMZH2J-0:0
E: ID_SERIAL_SHORT=LEKMZH2J
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_BUS=usb
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usb-storage
E: ID_PATH=pci-0000:00:13.5-usb-0:4:1.0-scsi-0:0:0:0
E: DEVLINKS=/dev/block/8:16 /dev/disk/by-id/usb-JetFlash_Transcend_4GB_LEKMZH2J-0:0 /dev/disk/by-path/pci-0000:00:13.5-usb-0:4:1.0-scsi-0:0:0:0

Как и надо было, по  ID_VENDOR=JetFlash и ID_MODEL=Transcend_4GB пожно получить N: sdb.
Останавливает только то что нужно переберать все устройства в системе и то что для freebsd есть более удобный способ:
usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),
VIA(0x0000), rev 1,00
port 1 addr 2: full speed, self powered, config 1, Palm
Handheld(0x0060), Palm, Inc.(0x0830), rev 1,00
port 2 powered

Подобной программки в linux не нашел, может кто подскажет.
« Последнее редактирование: 17 Августа 2009, 07:49:35 от efimov_nick »

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.