Как восстановить поврежденный USB-накопитель в Linux
Флешка есть у всех. Это отличные мелочи, которые упрощают перемещение данных. Однако иногда флешки могут быть повреждены или просто полностью перестать работать. К счастью, если вы используете Linux, у вас уже есть доступ к набору инструментов, которые могут помочь вам решить проблему. В этом руководстве мы используем Ubuntu, но все применимо к большинству современных дистрибутивов Linux. Вот как вы можете восстановить поврежденный USB-накопитель в Linux.
В этой статье мы уделяем приоритетное внимание безопасности ваших данных. Сначала вы увидите, как создать резервную копию содержимого флэш-накопителя, а затем приступите к различным исправлениям возникшей проблемы. Таким образом, если попытка решить проблему приведет к ее усугублению, вы все равно сможете вернуться к моментальному снимку текущего состояния вашего флеш-накопителя.
Сделайте сжатый полный образ резервной копии
В Linux есть множество инструментов для резервного копирования любого устройства хранения. Однако проверенный подход основан на dd
и GunZip (более известном как gzip).
1. Чтобы сделать резервную копию флешки, сначала подключите ее к компьютеру. Запустите свой любимый терминал (или нажмите CTRL + Alt + T).
2. Найдите флешку:
4. Чтобы создать резервную копию вашего флеш-накопителя в файл изображения, сжатый с помощью ZIP, с помощью одной команды, используйте:
5. Чтобы восстановить резервную копию, вам нужно будет изменить последовательность двух команд и определить свою флешку в качестве устройства вывода. Полная команда будет выглядеть так:
Исправить поврежденную файловую систему с помощью FSCK
После резервного копирования содержимого флеш-накопителя пора попытаться исправить это. Для этого вы можете обратиться к fsck
. Этот инструмент отлично подходит для удаления плохих файловых блоков, поскольку большая часть (если не все) повреждение и нечитаемость происходит из-за подобных проблем.
Для этой команды вам нужно будет определить раздел, а не полный диск. Вы найдете его с таким же именем, как и ваше устройство, введя:
Затем запустите на нем fsck
с помощью:
В этой команде:
sudo fsck
запускает инструмент исправления с правами администратора.-v
указывает ему показать нам подробную информацию о процессе.-a
указывает, что мы хотим, чтобы он автоматически пытался исправить все найденные ошибки./ dev / disk…
— это раздел, который будет проверяться на наличие ошибок.
Отформатируйте USB-накопитель с помощью Fdisk / MKFS из Терминала
Если fsck не удалось восстановить файловую систему устройства, вы можете попробовать отформатировать ее, чтобы использовать как новую.
1. Первый шаг — стереть все существующие структуры файловой системы и воссоздать их с нуля. Для этого вы можете использовать fdisk
. Запустите его с помощью sudo
на своем устройстве с помощью:
2. Нажмите o, а затем Enter, чтобы создать новую таблицу разделов DOS, чтобы ваш USB-накопитель был доступен для чтения повсюду. Если вы хотите использовать его только на своем современном компьютере и ОС, вы можете заменить o на g, чтобы вместо этого создать новую таблицу разделов GPT.
3. Нажмите n, а затем Enter, чтобы создать новый раздел, затем p, чтобы сделать его основным. Если вы использовали e вместо p, он был бы создан как расширенный раздел, но нет смысла делать это, если вы не планируете создавать более трех разделов на драйве. Затем вы можете просто нажать Enter, когда вас спросят о номере раздела, первом и последнем секторах, чтобы принять значения по умолчанию и разделить весь USB-накопитель.
4. Нажмите p, а затем Enter, чтобы проверить новую структуру хранения на вашем USB-накопителе. Затем нажмите w, а затем Enter, чтобы записать изменения на USB-накопитель и выйти из fdisk.
5. Ваш раздел будет неформатирован, и, поскольку на нем еще не будет файловой системы, его нельзя будет использовать. Чтобы создать файловую систему, вы можете использовать один из инструментов mkfs, который поставляется со всеми современными дистрибутивами Linux. Чтобы отформатировать раздел в FAT32, который можно использовать на большинстве устройств, используйте:
6. Чтобы отформатировать раздел в NTFS для использования с современными версиями Windows или с EXT4 для использования только с Linux, используйте:
или же
Графический интерфейс для проверки и исправления USB-накопителя с дисками
Если вам не нравится вводить команды, вы можете воспользоваться инструментом «Диски» для проверки и форматирования USB-накопителя. Диски предустановлены в Ubuntu.
1. Зайдите в меню приложений и найдите «диски». Запустите приложение, когда найдете его.
2. Выберите USB-накопитель из списка слева и щелкните значок с двумя шестеренками. Выберите «Восстановить файловую систему» и следуйте инструкциям мастера, чтобы исправить файловую систему.
3. В нашем случае мы имели дело не с аппаратной проблемой, а с повреждением файловой системы. Хотя проблема не подлежала устранению, мы могли переформатировать USB-накопитель и продолжать его использовать. Чтобы сделать это с дисками, с выбранным USB-накопителем, снова щелкните значок с двумя шестеренками и выберите «Форматировать раздел…»
4. Введите имя USB-накопителя в поле Имя тома и выберите для него одну из трех самых популярных файловых систем:
- Ext4 для использования с Linux
- NTFS для использования с современными версиями Windows
- FAT для использования с обоими, а также с другими типами устройств (от смартфонов до игровых консолей)
5. Обратите внимание на опцию «Стереть». Оставьте его отключенным для быстрого форматирования. Установите для него значение «Вкл.», Чтобы выполнить полное форматирование, при котором содержимое вашего устройства будет полностью удалено. При работе с поврежденными устройствами, на которых также могут быть плохие блоки, лучше использовать опцию полного стирания.
Обновленный USB-накопитель
Теперь, когда вы отремонтировали свой поврежденный USB-накопитель, вы можете снова использовать его как новый накопитель. А если вы хотите создать USB-накопитель Linux Live, следуйте приведенным здесь инструкциям.
По теме:
Wi-Fi не работает в Linux? Вот как это исправить
Как настроить и использовать SSH в Linux
7 лучших инструментов для очистки системы Linux
Программный ремонт USB flash в Linux
Сегодня речь пойдет о так называемом «программном ремонте» USB flash накопителей. Вопросы аппаратного ремонта рассматриваться не будут по причине копеечной стоимости новых абсолютно исправных устройств; вопрос же снятия данных с неисправных флешей не рассматривается из-за отсутствия у автора желания публично его рассматривать 🙂 .
Поводом для написания статьи послужило обилие на различных форумах советов по устранению программных глюков флешек с помощью различных утилит «низкоуровневого форматирования» и пр. Не отрицая существования утилит «от производителя», хочу заметить, что существует весьма простой и вполне надежный метод удаления софт-бэдов на флешках, устранения проблем с файловой системой, бутсектором и MBR, возникающих, как правило, при небезопасном извлечении этих устройств из компьютера, либо же из-за иных программных или аппаратных сбоев компьютера (одни только глючные южные мосты ICH5 от Intel чего стоят).
Существующие методы «излечения» этих болезней под ОС Microsoft Windows имеют ряд существенных недостатков, причиной которых является отсутствие в Windows достаточно функциональных средств дискменеджмента даже от сторонних производителей. Простой пример: после «заливки» флешки нулями, Windows форматирует её как super-floppy, т. е. без организации MBR, что для корректной работы флешки под разными ОС недопустимо. Сторонние дискменеджеры либо не умеют работать с USB-устройствами (Norton Partition Magic), либо работают некорректно (Paragon Partition Manager). Работа же с флешкой под различными ОС ведется именно как с жестким диском, поэтому и предъявляемые требования к организации логической структуры аналогичны винчестеру, а не дискете. Для этих целей воспользуемся правильной ОС и правильным софтом, который, как оказалось, к тому же абсолютно бесплатен, в отличие от недофункциональных платных поделок.
Итак… Имеет место флешка, которая либо виснет в Windows, либо просится быть отформатированной, но не форматируется («Виндовз не может завершить форматирование», о, ужас!), либо сыплет бэдами при сканировании тем же HDDScan’ом.
Если с Линуксом вы незнакомы, то я предложу для начала выкачать один из LiveCD-дистрибутивов и, предварительно записав образ на CD, загрузиться с него. Я, как Слаковод, естественно, предложу Slax — он невелик по размерам, несложен (впрочем, как и всякий LiveCD общего назначения) , быстро грузится и в нем есть всё необходимое для «ремонта». Если же какой-либо из Линуксов у вас уже стоит на HDD и вы с ним дружите, то буду рад добавить в вашу копилку знаний еще несколько советов.
Лично мной работа велась под локализованным неофициальным портом Slackware для 64-битных процессоров BlueWhite64
Немного о форматировании: сейчас пойдут большие
куски кода. Обычным моноширинным шрифтом
мы будем
показывать вывод консоли, жирным
— наш ввод. Сразу за решеткой красным — #мои комментарии
.
Итак, загрузились. Если вы не root, то станьте им , выполнив команду su и введя пароль , ибо борьба с ополоумевшим железом по праву только суперпользователю 🙂 .
Подключаем флешку, смотрим список USB-устройств. Вводим lsusb, нажимаем Enter, смотрим вывод:
root@H84_103:~# lsusb
#Наблюдаем вывод: вот она,
родимая, даже, вроде "аппаратно" живая.
Bus 005 Device 003: ID 0ea0:2168 Ours Technology, Inc. Transcend
JetFlash 2.0 / Astone USB Drive
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
#Это сканер, он нам не мешает.
Bus 001 Device 003: ID 04a5:20fc Acer Peripherals Inc. (now BenQ Corp.)
Benq 5000
Bus 001 Device 001: ID 0000:0000
Флеш-накопители распознаются как SCSI-диски, т.е., устройства /dev/sdX, но работает с ними почему-то типично IDE-дисковая утилита hdparm 🙂 . Внимание!!! SATA-винчестеры у нас тоже обозначаются как /dev/sdX! У меня SATA-винчестер, потому ему по праву принадлежит /dev/sda, а флешке — следующая буква b, т. е. /dev/sdb. Попытаемся познакомиться с ней поближе:
root@H84_103:~# hdparm /dev/sdb
/dev/sdb:
#Защита от записи выключена
readonly = 0 (off)
readahead = 256 (on)
#Транслируемая геометрия
соответсвует реальной: 1017856 секторов это ~512 МБ
geometry = 1014/17/59, sectors = 1017856,
start = 0
Теперь сделаем ей «низкоуровневое форматирование»,
т. е. забъем всё пространства накопителями нулевыми байтами. Таким
образом мы удалим софт-бэды, сотрем ошибочные таблицы FAT, загрузочный
сектор, MBR. Внимание! Все оставшиеся данные на флешке будут
безвозвратно утеряны!
root@H84_103:~# dd if=/dev/zero
of=/dev/sdb
#dd вводили без параметров, теперь
он ругается на нехватку места на флешке. И правильно, генератор нулей
то у нас безразмерный :)
dd: запись в `/dev/sdb': No space left on device
1017857+0 записей считано
1017856+0 записей написано
скопировано 521142272 байта (521 MB), 144,185 секунд, 3,6 MB/s
Флешка USB 2.0 на 512 МБ стиралась 2,5 минуты
Теперь «по-фирменному» создаём раздел.
root@H84_103:~# fdisk /dev/sdb
#fdisk ругается, что не нашел ни
DOS-овской таблицы разделов, ни метки диска в стиле BSD. Оно и понятно
- вся флеш забита нулями.
Device contains neither a valid DOS partition table, nor Sun, SGI or
OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by
w(rite)
#Умный fdisk сразу предлагает
помощь. Давим m
Command (m for help): m
#Вывод списка команд:
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
#Нам нужна новый раздел. Жмем
n, как написано:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
#Естественно, первичный раздел.
Жмем p
p
#И первый, естественно. Жмем 1
Partition number (1-4): 1
#Здесь соглашаемся со всем, что
предлагает fdisk. Он умный, сам разберется :)
First cylinder (1-1014, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1014, default 1014):
Using default value 1014
#Смотрим, чего мы наваяли :) .
Жмем
p
Command (m for help): p
Disk /dev/sdb: 521 MB, 521142272 bytes
17 heads, 59 sectors/track, 1014 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes
Device Boot
Start
End Blocks Id System
/dev/sdb1
1
1014 508491+ 83 Linux
#По умолчанию фдиск создал,
естественно, линуксовый раздел (ну не виндовый же ему создавать). Надо
поменять ID раздела. Жмем t.
Command (m for help): t
#Выбираем первый раздел для
изменения ID
Selected partition 1
#предусмотрительный fdisk
предлагает посмотреть, на что мы можем поменять тип раздела
Hex code (type L to list codes): l
0
Empty
1e Hidden W95 FAT1 80 Old
Minix be Solaris boot
1
FAT12
24 NEC DOS
81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan
9 82 Linux
swap c1 DRDOS/sec (FAT-
3 XENIX usr 3c
PartitionMagic 83
Linux
c4 DRDOS/sec (FAT-
4 FAT16 <32M 40
Venix 80286 84 OS/2 hidden C:
c6 DRDOS/sec (FAT-
5 Extended
41 PPC PReP Boot 85 Linux extended
c7 Syrinx
6
FAT16
42
SFS
86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d
QNX4. x 87
NTFS volume set db CP/M / CTOS / .
8
AIX
4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part
8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack
DM 93
Amoeba e1
DOS access
b W95 FAT32 51
OnTrack DM6 Aux 94 Amoeba BBT
e3 DOS R/O
c W95 FAT32 (LBA) 52
CP/M
9f BSD/OS
e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM
Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54
OnTrackDM6 a5
FreeBSD ee EFI GPT
10
OPUS
55 EZ-Drive a6
OpenBSD ef EFI
(FAT-12/16/
11 Hidden FAT12 56 Golden
Bow a7
NeXTSTEP f0
Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk
a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61
SpeedStor a9
NetBSD f4
SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys
ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI
fs fd Linux raid
auto
18 AST SmartSleep 65 Novell Netware b8
BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard
hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
#Елки-палки, а мы думали, что
кроме Винды и ФАТ32 на свете ничего и нет :) . Меняем ID партишна на
ФАТ16 - топчем 6
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)
#Еще раз посмотрим на дело рук
своих
Command (m for help): p
Disk /dev/sdb: 521 MB, 521142272 bytes
17 heads, 59 sectors/track, 1014 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes
Device Boot
Start
End Blocks Id System
/dev/sdb1
1
1014 508491+ 6 FAT16
#Всё ОК. Пишем изменения и выходим
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
И всё!? Ан нет. Это создан раздел для FAT16. А его надо отформатировать, а по науке говоря, создать на нем чистую файловую систему. В Линуксе есть простая и прямая как рельс утилитка для этого — mkdosfs. Просто пишем, на каком разделе мы хотим создать чистую FAT16
root@H84_103:~# mkdosfs
/dev/sdb1
mkdosfs 2.11 (12 Mar 2005)
Линкусоиды могут тут же примонтировать новообретенный девайс и что-нибудь записать на него. Пользователи дружественной и удовлетворяющей все запросы пользователей ОС грузятся в Windows и радуются, что стали «настоящими» линуксоидами 🙂 .
Необходимое послесловие.
Автор не несет никакой ответственности за то, что
счастливые обладатели SATA-дисков попутали буквы и постирали информацию
со своих винчестеров (а такие будут, это я гарантирую 🙂 ) . Если вы из
статьи ничего не поняли, и проблеск мысли в мозгу не воссиял 🙂 , то
лучше статью сразу забыть, флешку выкинуть и идти в магазин за новой. Данная технология справедлива для флешек до 2 ГБ включительно.
Автор искренне благодарит Алексея Хована за помощь в
написании статьи и дополнительную проверку работоспособности метода.
Виталий Розизнаный, специально для rlab.ru.
Перепечатка или цитирование разрешены при условии сохранения ссылки вида R.LAВ восстановление данных на первоисточник.
Как использовать Linux для поиска названий устройств на вашем компьютере
Автор Глеб Захаров На чтение 6 мин. Просмотров 294 Опубликовано
Изучив, как монтировать устройства с помощью Linux, вы можете захотеть увидеть список подключенных устройств. Это руководство покажет вам, как составить список устройств, дисков, PCI-устройств и USB-устройств на вашем компьютере. Чтобы узнать, какие диски доступны, вам будет кратко показано, как показать подключенные устройства и как показать все диски.
Содержание
- Используйте команду Mount
- Используйте lsblk для просмотра списка блочных устройств
- Как составить список устройств PCI
- Список USB-устройств, подключенных к компьютеру
- Резюме
Используйте команду Mount
Самый простой синтаксис, который вы можете использовать, выглядит следующим образом:
mount
Вывод вышеупомянутой команды довольно многословен и будет примерно таким:
/dev/sda4 в/тип ext4 (rw, relaytime, ошибки = remount-ro, данные = упорядочены)
securityfs в/sys/kernel/security type securityfs (rw, nosuid, nodev, noexec, relat
время)
Информации так много, что ее не так просто прочитать.
Жесткие диски обычно начинаются с/dev/sda или/dev/sdb, поэтому вы можете использовать команду grep, чтобы уменьшить вывод следующим образом:
mount | grep/dev/sd
Результаты на этот раз покажут что-то вроде этого:
/dev/sda4 on/type ext4 (rw, relaytime, errors = remount-ro, data = упорядоченный)
/dev/sda1 on/boot/efi type vfat (rw, relaytime, fmask = 0077, dmask = 0077, кодовая страница = 437, iocharset = iso8859-1, короткое имя = смешанный, ошибки = remount-ro)
Это не перечисляет ваши диски, но это перечисляет ваши смонтированные разделы. В нем не перечислены разделы, которые еще не смонтированы.
Устройство/dev/sda обычно обозначает жесткий диск 1, и если у вас есть второй жесткий диск, он будет подключен к/dev/sdb. Если у вас есть SSD, то он, вероятно, будет сопоставлен с/dev/sda, а жесткий диск – с/dev/sdb.
Как вы можете видеть на скриншоте. этот компьютер имеет один диск/dev/sda с двумя установленными разделами. Раздел/dev/sda4 имеет файловую систему ext4, и именно там установлена Ubuntu./Dev/sda1 – это раздел EFI, используемый в первую очередь для загрузки системы.
Этот компьютер настроен на двойную загрузку с Windows 10. Чтобы увидеть разделы Windows, нам нужно их смонтировать.
Используйте lsblk для просмотра списка блочных устройств
Mount подходит для вывода списка подключенных устройств, но он не показывает все имеющиеся у вас устройства, а вывод очень подробный, что затрудняет чтение.
Лучший способ вывести список дисков в Linux – использовать lsblk следующим образом:
lsblk
Информация отображается в виде дерева со следующей информацией:
- название
- Major Minor номер версии
- Это съемный
- Размер
- Это только для чтения
- Это диск или раздел
- Где установлен раздел
Дисплей выглядит примерно так:
- sda – 8,0 – 0 – 931 ГБ – 0 – диск
- sda1 – 8. 1 – 0 – 500M – 0 – part -/boot/efi
- sda2 – 8,2 – 0 – 128M – 0 – часть
- sda3 – 8,3 – 0 – 370,6 G – 0 – часть
- sda4 – 8,4 – 0 – 554,4 G – 0 – часть/
- sda5 – 8,5 – 0 – 5,9G – 0 – часть – [SWAP]
- ср0 – 11: 0 – 1 – 1024M – 0 – rom
Информация гораздо легче читается. Вы можете видеть, что у нас есть один диск с именем sda, который имеет 931 гигабайт. SDA разделен на 5 разделов – 2 или которые смонтированы, а третий разделен на своп.
Существует также привод под названием sr0, который является встроенным приводом DVD.
Как составить список устройств PCI
Одна вещь, которую действительно стоит узнать о Linux, это то, что если вы хотите что-то перечислить, то обычно есть команда, которая начинается с букв «ls».
Вы уже видели, что «lsblk» перечисляет блочные устройства и может использоваться для демонстрации расположения дисков.
Вы также должны знать, что команда ls используется для получения списка каталогов.
Позже вы будете использовать команду lsusb для вывода списка USB-дисков на компьютере.
Вы также можете перечислить устройства с помощью команды lsdev, но вам нужно убедиться, что procinfo установлена, чтобы использовать эту команду.
Чтобы вывести список устройств PCI, используйте команду lspci следующим образом:
lspci
Вывод вышеупомянутой команды снова очень многословен, означая, что вы, вероятно, получите больше информации, чем ожидали.
Вот краткий снимок из нашего списка:
00: 02.0 VGA-совместимый контроллер: Intel Corporation 3-го поколения Core Grap
Контроллер hics (версия 09)
00: 14.0 USB-контроллер: Intel Corporation серии 7/C210 семейство наборов микросхем США
B xHCI Host Controller (версия 04)
В списке перечислены все – от контроллеров VGA до контроллеров USB, звука, Bluetooth, беспроводных сетей и Ethernet.
По иронии судьбы стандартный список lspci считается базовым, и если вам нужна более подробная информация о каждом устройстве, вы можете выполнить следующую команду:
lspci -v
Информация для каждого устройства выглядит примерно так:
02: 00. 0 Сетевой контроллер: Qualcomm Atheros AR9485 Беспроводной сетевой адаптер (версия 01)
Подсистема: Dell AR9485 Беспроводной сетевой адаптер
Флаги: мастер шины, быстрая защита, задержка 0, IRQ 17
Память на c0500000 (64-разрядная, без предварительной выборки) [size = 512K]
ПЗУ расширения на c0580000 [отключено] [size = 64K]
Возможности:
Используется драйвер ядра: ath9k
Модули ядра: ath9k
Вывод команды lspci -v на самом деле более читабелен, и вы можете ясно видеть, что у нас есть беспроводная карта Qualcomm Atheros.
Вы можете получить еще более подробный вывод, используя следующую команду:
lspci -vv
Если этого недостаточно, попробуйте следующее:
lspci -vvv
И если этого недостаточно … Нет, мы только шутим. Это останавливается там.
Наиболее полезным аспектом lspci, помимо перечисления устройств, является драйвер ядра, который используется для этого устройства. Если устройство не работает, возможно, стоит выяснить, есть ли лучший драйвер для устройства.
Список USB-устройств, подключенных к компьютеру
Чтобы вывести список USB-устройств, доступных для вашего компьютера, используйте следующую команду:
lsusb
Результат будет примерно таким:
Шина 002, устройство 002: идентификатор 8087: 0024 Intel Corp. Интегрированный концентратор согласования скоростей
Шина 002, устройство 001: идентификатор 1d6b: 0002 корневой центр Linux Foundation 2.0
Шина 001, устройство 005: ID 0c45: 64ad Microdia
Шина 001 Устройство 004: ID 0bda: 0129 Realtek Semiconductor Corp. Контроллер устройства чтения карт
Шина 001 Устройство 007: ID 0cf3: e004 Atheros Communications, Inc.
Шина 001 Устройство 002: ID 8087: 0024 Intel Corp. Интегрированный концентратор согласования скорости
Шина 001 Устройство 001: ID 1d6b: 0002 Корневой концентратор Linux Foundation 2.0
Шина 004 Устройство 002: ID 0bc2: 231a Seagate RSS LLC
Шина 004 Устройство 001: идентификатор 1d6b: 0003 корневой концентратор Linux Foundation 3. 0
Шина 003 Устройство 002: идентификатор 054c: 05a8 Sony Corp.
Автобус 003 Устройство 003: идентификатор 1d6b: 0002 корневой концентратор Linux Foundation 2.0
Если вы вставите в компьютер USB-устройство, например внешний жесткий диск, а затем запустите команду lsusb, вы увидите, что устройство появится в списке.
Резюме
Подводя итог, можно сказать, что лучший способ перечислить что-либо в Linux – запомнить следующие команды ls:
- ls – список файлов в файловой системе
- lsblk – список блочных устройств (то есть дисков)
- lspci – список устройств pci
- lsusb – список устройств USB
- lsdev – список всех устройств
Как использовать команду LSUSB — подсказка для Linux
Команда lsusb, широко известная как команда «Список USB», является одной из наиболее часто используемых команд в Linux. Как следует из названия, эта команда используется для вывода списка всех USB-устройств, подключенных к вашей системе Linux. В сочетании с другими параметрами или опциями эту команду также можно использовать для других целей. В этой статье показано, как использовать команду lsusb в Linux.
Примечание: Linux Mint 20 используется в этой статье для демонстрации использования этой команды. Однако вы можете работать с любым дистрибутивом Linux по вашему выбору.
Установите пакет usbutils
Перед началом работы с командой lsusb установите usbutils пакет в вашу систему Linux Mint 20. Чтобы установить пакет, выполните следующие действия:
Запустите терминал, щелкнув значок терминала, выделенный на следующем изображении:
После того, как вы нажмете на этот значок, сразу же появится окно терминала, как показано ниже:
Перед установкой пакета usbutils настоятельно рекомендуется обновить систему Linux Mint 20, чтобы избежать помех во время установки. Это можно сделать, выполнив команду обновления следующим образом:
$ судо подходящее обновление
Эту команду можно увидеть на изображении, показанном ниже:
После обновления вашей системы вы увидите следующий результат, как показано на изображении на вашем терминале:
После успешного обновления вашей системы вы можете без проблем выполнить следующую команду:
$ судо подходящий установить usbutils
Эта команда установит пакет usbutils в вашу систему Linux Mint 20.
При успешной установке указанного пакета на вашем терминале будет отображаться следующий вывод:
Использование команды lsusb
Команда lsusb предоставляет информацию об устройствах USB, подключенных к вашей системе Linux. Эту команду можно использовать по отдельности или в сочетании с различными вариантами выбора. В этом разделе нас интересует только запуск команды lsusb независимо, то есть без каких-либо дополнительных параметров или опций. Для этого просто запустите следующую команду в своем терминале Linux Mint 20:
$ lsusb
После успешного выполнения этой команды вы увидите всю информацию, относящуюся к любым шинам USB и устройствам, подключенным к вашей системе, как на следующем изображении:
Параметры, используемые с командой lsusb
Как упоминалось ранее, команду lsusb также можно использовать в сочетании с различными параметрами. Эти варианты включают следующее:
- -s: Отображает информацию о любом конкретном USB-устройстве в соответствии с номером шины устройства и номером устройства.
- -v: Показывает более подробную информацию о USB-устройствах, подключенных к вашей системе.
- -D: Предоставляет подробную информацию, считываемую из определенного файла USB-устройства.
- -t: Отображает все подключенные USB-устройства в виде дерева или иерархии.
В приведенных ниже примерах вы узнаете больше об использовании этих параметров.
Пример 1: отображение определенного USB-устройства
Чтобы отобразить конкретное USB-устройство, вам необходимо знать две вещи об устройстве: номер его шины и номер устройства. Эти два элемента можно определить, просто выполнив команду lsusb, как описано выше. Как только вы узнаете номера шины и устройства USB-устройства, выполните следующую команду на своем терминале:
$ lsusb –s BusNum: DeviceNum
Замените BusNum и DeviceNum номером шины устройства и номером устройства соответственно. Для демонстрации этого метода мы использовали шину номер 1 и порт номер 1, которые вы можете проверить на изображении ниже:
После выполнения этой команды вы увидите USB-устройство вместе с указанным номером шины и номером устройства на вашем терминале, как показано на следующем изображении:
Пример 2: Отображение подробной информации обо всех USB-устройствах
Чтобы отобразить все подробности обо всех USB-устройствах, подключенных к вашей системе, выполните в терминале следующую команду:
$ lsusb –v
Вы также можете увидеть эту команду на изображении ниже для большей ясности:
После успешного выполнения этой команды вы сможете увидеть более подробную информацию обо всех USB-устройствах, подключенных к вашей системе, как показано на изображении ниже:
Пример 3: Отображение информации о конкретном USB-устройстве
Как вы могли заметить, в приведенном выше методе вывод с параметром –v был довольно длинным. В некоторых ситуациях вам может потребоваться подробная информация только об одном устройстве, вместо того, чтобы иметь ее для всех USB-устройств, подключенных к вашей системе. Если это цель, то подробный вывод об одном USB-устройстве можно получить, выполнив следующую команду в вашем терминале:
$ lsusb –D /разработчик/автобус/USB/BusNum/DeviceNum
Опять же, чтобы запустить эту команду, вам необходимо знать номер шины и номер устройства конкретного USB-устройства, о котором вы хотели бы получить дополнительную информацию из конкретного файла устройства. В этом примере мы заменили «BusNum» на 001 и «DeviceNum» на 002, как показано на изображении ниже:
После выполнения этой команды вы сможете увидеть все сведения об указанном USB-устройстве, прочитанные непосредственно из файла устройства, как показано на следующем изображении:
Пример 4: Отображение всех USB-устройств в древовидной структуре
Иногда вы также можете перечислить все подключенные USB-устройства в виде иерархии или древовидной структуры для облегчения чтения. Это можно сделать, выполнив следующую команду в вашем терминале:
$ lsusb –t
Эту команду также можно увидеть на изображении ниже:
Выполнение этой команды отобразит все USB-устройства, подключенные к вашей системе, в виде древовидной структуры, как показано на следующем изображении:
Вывод
В этой статье представлен подробный обзор использования команды lsusb в Linux Mint 20. Теперь, когда вам потребуется дополнительная информация о USB-устройствах, подключенных к вашей системе, вы можете легко воспользоваться этой командой.
Обнаруживать и монтировать устройства
Обнаруживать и монтировать устройстваЯ обновил Ubuntu сегодня, и все работает нормально, за исключением того, что Ubuntu не обнаруживает никаких других устройств хранения. Мои /
и /home
разделы работают нормально, но другие мои разделы просто не обнаружены. Я бы не возражал, кроме той же проблемы с USB-флешками.
Когда я подключаю флешку, свет горит, но компьютер ничего не обнаруживает. Просто чтобы быть понятным, моя мышь и клавиатура подключены через USB и работают нормально.
Есть идеи, как решить эту проблему? Ни одно из предложений, которые я нашел в Интернете, не имеет никакого эффекта.
usb mount hard-drive usb-drive partitions
—
Calixte
источник
Ответы:
Решение 1. Попробуйте программу Disks (если вы запускаете Ubuntu с графическим интерфейсом ).
(убедитесь, что пакет gnome-disk-utility установлен) (убедитесь, что установлен пакет udisk2)
Нажмите, SUPERAчтобы открыть линзу приложения и введите Disks
в поле поиска приложений.
( SUPERвероятно, это ключ со значком Windows.)
На дисках вы можете играть с опциями автомонтирования.
Например:
Вы должны нажать на маленький значок с двумя шестернями и выбрать «Редактировать параметры крепления».
Решение 2. Использование CLI (для установки без головы)
Шаг 1. Проверьте блочные устройства и файловые системы, которые назначены этим блочным устройствам.
lsblk
Здесь вы видите блок sdb с разделом / sdb1. Но это не установлено. Там нет файла, назначенного на это.
Шаг 2. Какое устройство SDB?
sudo lshw
или же
sudo lshw | less
Таким образом, флешка — блочное устройство / sdb — имеет логическое имя / dev / sdb. И файловая система FAT32 на этой карте имеет логическое имя / dev / sdb1.
Шаг 3. Монтирование USB-флешки
Мы будем монтировать / dev / sdb1 в / media / usbstick
sudo mkdir /media/usbstick sudo mount -t vfat /dev/sdb1 /media/usbstick
Прочитайте man-страницу mount для других опций.
Шаг 4. Это сработало?
lsblk
Да, мы видим, что файловая система на USB-накопителе монтируется в / media / usbstick
Приложение : если нет логических имен, таких как / dev / sdb, вы должны сначала их создать. Посмотрите эту информацию о настройке и управлении устройствами петли с помощью команды losttup
sudo lsusb
расскажет вам, какие USB-устройства обнаруживает Linux. Монтируется ли USB-накопитель или обнаруживается, это отдельная проблема. sudo lsusb -v
даст подробный вывод, возможно, больше информации, чем вы хотите, если ОС действительно не распознает устройство.
Кроме того, вы можете сравнить списки устройств /dev
до и после подключения USB-устройства. Есть много способов сделать это; Я бы, наверное, просто использовал:
ls -l /dev/* | wc -l
Это даст вам несколько распознанных устройств. Выполнение этого до и после подключения устройства скажет вам, если ОС назначила устройство /dev/
.
Другой вариант — посмотреть, что происходит, dmesg
когда вы подключаете USB-устройство. dmesg
может рассказать вам, например, как устройство вышло из строя.
Если USB-устройство, с которым у вас возникают проблемы с подключением, есть в списке lsusb, вы можете попробовать подключить устройство. На этом этапе было бы хорошо узнать тип файловой системы. sudo fdisk -l
скажет вам тип файловой системы, в форме идентификатора. Возможно, вам придется искать идентификационный номер. Для этого есть много ссылок в Интернете. Как только вы знаете список устройств, то есть /dev/hda1
тип файловой системы, вы можете попытаться смонтировать устройство вручную с помощью mount
команды.
sudo mount /dev/hda1 /home/user/Desktop/whereEver
Возможно, вам придется убедиться, что место, в которое вы хотите установить устройство, существует. Если ОС распознает файловую систему, она mount
может просто работать, если файловая система не относится к собственному типу файловой системы; Возможно, вам придется указать флаги для монтажа.
Отправьте обратно свой вывод dmesg
(не все, только из-за подключения USB-устройства) и sudo lsusb
.
Linux / UNIX: файлы устройств могут оказаться полезными при попытке определить тип устройства.
Я пишу это, предполагая, что все ваши нераспознанные устройства являются устройствами блочного типа. Существует много способов решения этой проблемы и множество возможных решений. Для предоставления решения необходима более конкретная информация.
Есть также много приложений с графическим интерфейсом, которые могут сделать то же самое. Вы можете попытаться найти подключенное оборудование в «Дисковой утилите».
—
j0h
источник
Запоминающее устройство USB, подключенное к системе, обычно подключается автоматически, но если по каким-либо причинам оно не подключается автоматически, его можно подключить вручную, выполнив следующие действия.
- Нажмите Ctrl+ Alt+, Tчтобы запустить Терминал.
- Введите,
sudo mkdir /media/usb
чтобы создать точку монтирования с именем usb . - Нажмите Enter,
sudo fdisk -l
чтобы найти USB-накопитель, уже подключенный, скажем, диск, который вы хотите смонтировать/dev/sdb1
. Чтобы подключить USB-накопитель, отформатированный в системе FAT16 или FAT32 , введите:
sudo mount -t vfat /dev/sdb1 /media/usb -o uid=1000,gid=100,utf8,dmask=027,fmask=137
ИЛИ, Чтобы подключить USB-накопитель, отформатированный в системе NTFS , введите:
sudo mount -t ntfs-3g /dev/sdb1 /media/usb
Чтобы размонтировать его, просто войдите sudo umount /media/usb
в Терминал.
источник
—
αғsнιη
источник
Вы можете использовать одну из следующих команд для получения подробной информации о подключенных устройствах: все разные команды используются для получения различной информации по-разному, результаты . ..
- dmesg
- sudo fdisk ИЛИ sudo fdisk -l
- Судо Блкид
- lsblk
- крепление
- lsusb
- USB-устройство
- дф-ч
—
Premal
источник
Вы упомянули только один тип устройства хранения — флешка. Всякий раз, когда USB-устройства не монтируются правильно, убедитесь, что у вас не установлен пакет с именем usbmount . Если это так, удалите его, и жизнь должна вернуться к нормальной жизни после этого (может потребоваться перезагрузка).
—
Танель Мэй
источник
У меня тоже была похожая ситуация, когда мой перьевой привод стал невидимым.
Я решил это с помощью служебной программы Ubuntu с именем Disks . Внутри дискового инструмента, ручка была видна. Я нажал на значок шестеренки внутри диска (убедитесь, что вы выбрали правильное устройство) и использовал опцию форматирования раздела с FAT (совместимо со всеми системами и устройствами)
—
Хосе КДж
источник
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.
Доступ к устройствам в Linux
Классическая модель доступа к драйверам
В файловой системе Unix существуют специальные объекты — файлы устройств. Как правило, они создаются в каталоге /dev, но могут сбыть созданы и в любом другом каталоге. Каждый специальный файл — это точка доступа к драйверу устройства. Если драйвер предоставляет операции чтения/записи, то файл устройства может быть открыт как обычный файл cat /dev/modem > /dev/null. Для выполнения других операций с устройством (например выдвижение лотка CDROM) требуется отправка команд драйверу через системный вызов ioctl(). Файлам устройств права доступа назначаются так же , как и обычным файлам.
ВНИМАНИЕ: сетевые карты не отображаются в файлы устройств в /dev. Все сетевые интерфейсы живут в своём пространстве имён.
Команда создания специального файла:
mknod <name> <type> <major> <minor>
- name — имя в файловой системе,
- type — b|c — блочный или посимвольный тип устройства,
- major, minor — номер драйвера в таблице драйверов и номер устройства в таблице устройств, обслуживаемых этим драйвером.
Имя устройства не имеет значения для функционирования ОС и выбирается по некоторым мнемоническим правилам. Например, SCSI диск может иметь следующие имена:
- Linux — /dev/sda1 — первый раздел (1) на первом (a) SCSI диске
- Solaris — /dev/dsk/c0t2d0s3 — контроллер 0, устройство 2 (SCSI ID), логическое устройство 0 (LUN Logical Unit Number — обычно 0), слайс 3 (Номер раздела)
- Solaris — /devices/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a — диск на контроллере ide, подключенном по шине pci
Функциональность файла устройства определяется парой чисел major/minor, которые должны соответствовать номерам в некой таблице регистрации драйверов в ядре ОС. Назначение minor, обычно, определяется логикой работы драйвера. Для согласованного назначения номера major драйверам и специальным файлам существует несколько способов :
- Статические номера major. Разработчики драйверов регистрируются у мантейнеров ядра и получают фиксированные номера major. . Разработчики дистрибутива добавляют в поставку скрипт для создания соответствующих специальных файлов в каталоге /dev.
- Инициализация драйвера на основе специального файла. При инициализации драйвера в ядре он просматривает каталог /dev, обнаруживает по имени свой специальный файл и читает из него major/minor.
- Динамическое назначение major/minor. При обнаружении нового устройства ядро инициализирует драйвер и назначает ему major/minor. Специальный сервис (udev) получает через сокет уведомление о найденном устройстве (тип, шина, производитель, идентификатор) и его major/minor. На основании этой информации и набора правил генерации имён сервис, создаёт для устройства специальный файл.
Традиционно свойства процессов и некоторые параметры ядра отображаются в Linux в каталог /proc через драйвер псевдофайловой системы procfs. Начиная с ядра 2.6 параметры ядра, связанные с драйверами устройств и файловых системам, были вынесены в каталог /sys и псевдофайловую систему sysfs.
/proc
Через файл /proc/cpuinfo можно получить информацию о физических процессорах, физических ядрах и гипертрединговых логических ядрах.
$ cat /proc/cpuinfo ... model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz .... cpu MHz : 1733.000 ...
Через файл /proc/net/dev можно получить список сетевых интерфейсов и статистику по ним
Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed eth0: 1767479002126 7440045654 0 209199 176227535 ... lo: 809098010894 313483867 0 0 0 0 ...
/sys
Каталог содержит информацию об инициализированных устройствах, сгруппированную по разным критериям: типам устройств, шинам, диагностическим протоколам доступа и т.п. Одни и те же устройства могут быть показаны в разных каталогах через символические ссылки.
- /sys/devices — основной каталог, на который ссылаются остальные
- /sys/dev — классификация по type, major, minor
- /sys/bus — классификация по шине — pci, usb, scsi и т. п.
- /sys/block — драйверы блочных устройств.
- /sys/class — классификация по типу устройства
Заряд батареи
cat /sys/class/power_supply/BAT0/charge_full cat /sys/class/power_supply/BAT0/charge_full_design cat /sys/class/power_supply/BAT0/charge_now
Альтернативный путь к тем же данным
/proc/acpi/battery/BAT0/*
- dmesg — сообщения ядра. Включают информацию об обнаруженных устройствах.
- lscpu — список процессоров (ядер). Выводит информацию из /proc/cpuinfo
- lsusb — список устройств на шине USB (/sys/bus/usb/devices)
- lspci — список устройств на шине PCI (/sys/bus/pci/devices)
- lsblk -список дисков, разделов, логических томов и т.п.
- hdparm — считывание параметров жёстких дисков и управление этими параметрами.
- smartctl — считывание параметров S.M.A.R.T. жёсткого диска. Диагностика диска.
- dmidecode — список устройств на материнской плате, в том числе информация о BIOS и о планках памяти.
Утилиты acpi, acpitool отсутствуют в большинстве современных дистрибутивов.
linux — найти путь узла устройства к последнему вставленному USB-накопителю
Предварительное примечание
Этот ответ был написан до того, как ОП добавила следующее:
Я ищу решение, которое можно вызвать внутри сценария bash или Makefile (и, скорее всего, без предварительного доступа суперпользователя), и которое предполагает, что диск был вставлен до запуска сценария, поэтому решения, требующие создания файлов для мониторинга ядра информация заранее не будет работать здесь.
Чтобы ответ заработал, вам нужно создать файл с определенным содержимым. Для этого требуется root-доступ, но создание файла — это разовое действие . Файл переживет перезагрузку. После создания файла решение заработает.
Базовое решение
Создайте /etc/udev/rules.d/91-usb-info.rules
со следующим содержимым:
SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", SUBSYSTEMS=="usb", ACTION=="добавить", RUN+="/bin/sh -c 'echo \"$name\" >/dev/shm/usb-info'"
Записывает (а не добавляет) в /dev/shm/usb-info
. Файл будет содержать не более одного имени, имя последнего вставленного USB-накопителя. Это означает, что вам не нужно анализировать или фильтровать файл, вам достаточно его прочитать.
/dev/shm
это временная файловая система, tmpfs
, она не выдерживает перезагрузки. Если файла нет, значит, ни одно устройство еще не активировало правило.
Есть как минимум две проблемы:
Перенаправление с
>
сначала обрезает файл, запись происходит позже. Может случиться так, что вы читаете файл, когда он пуст. Стандартный способ справиться с этим — обновить файл, записав в другой файл в той же файловой системе, а затем атомарно переместив (mv
) на желаемое имя (я полагаю, чтоmv
в пределахtmpfs
является атомарным).Если устройство будет удалено, то его имя не будет удалено из файла. Обратите внимание, что технически это по-прежнему имя «последнего вставленного USB-накопителя», даже если этого диска больше нет. Итак, это то, что вы явно просили; Хотя я не уверен, что это то, чего ты действительно хотел. 9$name$/d\» /dev/shm/usb-info»
Теперь
/dev/shm/usb-info
— это список имен, заканчивающийся новой строкой. Получите последний сtail -n 1 /dev/shm/usb-info 2>/dev/null
. Пустой результат означает, что «ни одно устройство еще не было подключено» или «все ранее подключенные устройства уже были отключены»; так или иначе: «нет подходящего устройства».Решение не совсем идеальное. Несколько проблем:
$name
встроен вш
/код
сед. Неудачное имя может сломать код (сравните с встраиванием{}
, похожая история). Однако такие имена, какsdb
, удачны.Неудачное имя может вести себя неправильно с
echo
. Однако такие имена, какsdb
, удачны.Мы ожидаем, что добавление короткой строки с
echo … >> …
использует один системный вызов, поэтому он атомарный. Я имею в видуtail -n 1 /dev/shm/usb-info
никогда не даст вам строчку, которая еще не написана полностью; он увидит файл доecho
или послеecho
, но не во времяecho
. В общем, если вы хотите написать более длинную строку, то вы должны использоватьsed -i
и здесь, или что-то вродеcp /dev/shm/usb-info /dev/shm/elsewhere && echo … >>/ dev/shm/в другом месте && mv /dev/shm/в другом месте /dev/shm/usb-info
.Если несколько USB-устройств подключаются/отключаются в течение нескольких секунд, может случиться так, что многие экземпляры правил пытаются обработать
/dev/shm/usb-info
одновременно. Чтобы избежать условий гонки, которые могут привести к тому, что файл пропустит некоторые устройства (или пропустит их отсутствие), мы должны убедиться, что правила выполняются по одному. Возможности:Я не специалист по udev, но полагаю, что
udevadm control -m 1
может быть самым простым решением. См.man 8 udevadm
.В качестве альтернативы то, что мы запускаем внутри
RUN+
, должно использоватьflock
. Подсказка: не используйте/dev/shm/usb-info
как файл, на который нацеленflock
, потому чтоsed -i
заменяет файл файлом с другим индексным узлом, и это сделает блокировку бесполезной. Создайте отдельный файл исключительно для стаи
Тем не менее, в большинстве случаев решение, которое я вам дал, должно вести себя хорошо. Теперь вы знаете некоторые потенциальные недостатки, поэтому улучшите решение, если считаете, что это необходимо. Я не собираюсь создавать полностью надежное решение здесь.
Если вы решите улучшить решение, рассмотрите возможность размещения кода в отдельном скрипте (например,
/usr/local/bin/usb_info_helper
) и сохраните простое правило udev (например,RUN+="/usr/local/bin/usb_info_helper add $имя"
). Дело в том, что улучшенный код не будет тривиальным. Наличие его в отдельном файле позволит вам сохранить его чистым, многострочным, с правильным отступом; кроме того, будет легче правильно цитировать.Подключение USB-устройств | Microsoft Узнайте
Обратная связь Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 3 минуты на чтение
В этом руководстве описаны шаги, необходимые для подключения USB-устройства к дистрибутиву Linux, работающему на WSL 2, с использованием проекта USB/IP с открытым исходным кодом, usbipd-win.
Настройка проекта USB/IP на вашем компьютере с Windows позволит использовать стандартные USB-сценарии для разработчиков, такие как прошивка Arduino или доступ к считывателю смарт-карт.
Предварительные требования
- Запуск Windows 11 (сборка 22000 или более поздняя). (возможна поддержка Windows 10, см. примечание ниже).
- Требуется машина с процессором x64/x86. (В настоящее время Arm64 не поддерживается usbipd-win).
- Дистрибутив Linux установлен и настроен на WSL 2.
- Работает ядро Linux версии 5.10.60.1 или выше.
Примечание
Чтобы проверить версию и номер сборки Windows, выберите Клавиша с логотипом Windows + R , введите winver , выберите OK . Вы можете выполнить обновление до последней версии Windows, выбрав Пуск > Настройки > Центр обновления Windows > Проверить наличие обновлений . Чтобы проверить версию ядра Linux, откройте дистрибутив Linux и введите команду:
uname -a
. Чтобы вручную обновить ядро до последней версии, откройте PowerShell и введите команду: «wsl —update».Важно
Windows 11 рекомендуется для подключения USB-устройств к дистрибутиву Linux, работающему на WSL 2. Однако Windows 10 можно использовать для подключения USB-устройств, создав собственное ядро WSL 2 с поддержкой USBIP, следуя инструкциям в USBIPD-WIN. репозиторий проекта.
Установите проект USBIPD-WIN
Поддержка подключения USB-устройств изначально недоступна в WSL, поэтому вам потребуется установить проект usbipd-win с открытым исходным кодом.
- Перейти на страницу последней версии проекта usbipd-win.
- Выберите файл .msi, который загрузит программу установки. (Вы можете получить предупреждение с просьбой подтвердить, что вы доверяете этой загрузке).
- Запустите скачанный установочный файл usbipd-win_x.msi.
Примечание
Кроме того, вы также можете установить проект usbipd-win с помощью диспетчера пакетов Windows (winget). Если вы уже установили winget, просто используйте команду:
winget install --interactive --exact dorssel. usbipd-win
для установки usbipd-win. Если вы пропустите —interactive, winget может немедленно перезагрузить компьютер, если это необходимо для установки драйверов.Будет установлено:
- Служба под названием
usbipd
(отображаемое имя: USBIP Device Host). Вы можете проверить состояние этой службы с помощью приложения «Службы» в Windows. - Средство командной строки
usbipd
. Расположение этого инструмента будет добавлено в переменную среды PATH. - Правило брандмауэра под названием
usbipd
, чтобы разрешить подключение к сервису всем локальным подсетям. Вы можете изменить это правило брандмауэра, чтобы точно настроить контроль доступа.
Установка инструментов USBIP и базы данных оборудования в Linux
После завершения установки проекта USB/IP вам потребуется установить инструменты пользовательского пространства и базу данных идентификаторов оборудования USB. Эти инструкции предназначены для Ubuntu — для других дистрибутивов может потребоваться другой клиентский пакет usbip.
В Ubuntu выполните эту команду:
sudo apt install linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
На данный момент в Windows запущена служба для совместного использования USB-устройств, а в WSL установлены необходимые инструменты для подключения к общим устройствам.
Подключение USB-устройства
Перед подключением USB-устройства убедитесь, что командная строка WSL открыта. Это сохранит активную упрощенную виртуальную машину WSL 2.
Список всех USB-устройств, подключенных к Windows, открыв PowerShell в режиме администратора и введя команду:
список usbipd wsl
Выберите идентификатор шины устройства, которое вы хотите подключить к WSL, и выполните эту команду. WSL запросит у вас пароль для запуска команды sudo. Подключаемый дистрибутив Linux должен быть дистрибутивом по умолчанию. (См. документ Основные команды для WSL, чтобы изменить дистрибутив по умолчанию).
usbipd wsl attach --busid
Откройте Ubuntu (или предпочтительную командную строку WSL) и выведите список подключенных USB-устройств с помощью команды:
лсусб
Вы должны увидеть только что подключенное устройство и иметь возможность взаимодействовать с ним с помощью обычных инструментов Linux. В зависимости от вашего приложения вам может потребоваться настроить правила udev, чтобы разрешить пользователям без полномочий root доступ к устройству.
Когда вы закончите использовать устройство в WSL, вы можете либо физически отключить USB-устройство, либо запустить эту команду из PowerShell в администратор режим:
usbipd wsl отсоединить --busid
Чтобы узнать больше о том, как это работает, см. блог командной строки Windows и репозиторий usbipd-win на GitHub.
Видеодемонстрацию см. в разделе WSL 2: подключение USB-устройств (показ «Вкладки против пробелов»).
Обратная связь
Отправить и просмотреть отзыв для
Этот продукт Эта страница
Просмотреть все отзывы о странице
Распознавайте больше устройств в Linux с помощью этого репозитория идентификаторов USB
На рынке представлены тысячи USB-устройств — клавиатуры, сканеры, принтеры, мыши и бесчисленное множество других устройств, которые работают в Linux. Сведения об их поставщиках хранятся в репозитории USB ID.
lsusb
Команда Linux
lsusb
выводит информацию о USB-устройствах, подключенных к системе, но иногда эта информация неполная. Например, недавно я заметил, что марка одного из моих USB-устройств не распознается. устройство было в рабочем состоянии, но перечисление сведений о моих подключенных USB-устройствах не предоставило идентификационной информации. Вот результат моегоlsusb
команда:$ lsusb
Шина 002 Устройство 001: ID 1d6b:0003 Корневой концентратор Linux Foundation 3.0
Шина 001 Устройство 004: ID 046d:082c Logitech, Inc. Технология
Шина 001 Устройство 002: ID 18f8:1486
Шина 001 Устройство 005: ID 051d:0002 Источник бесперебойного питания American Power Conversion
Шина 001 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0в последней колонке указано одно устройство без описания производителя. Чтобы определить, что это за устройство, мне пришлось бы провести более глубокую проверку моего дерева USB-устройств. К счастью, 9Команда 0018 lsusb имеет больше параметров. Одним из них является
-D устройство
, чтобы получить сведения об устройстве, как объясняется на странице руководства:«Не сканируйте каталог /dev/bus/usb, вместо этого отображайте только информацию об устройстве, файл устройства которого указан. Файл устройства должен выглядеть примерно так: /dev/bus/usb/001/001. Этот параметр отображает подробную информацию, как параметр v ; для этого у вас должны быть права root».
Я не думал, что будет легко понять, как передать путь к устройству команде lsusb, но после внимательного прочтения справочной страницы и начального вывода я смог определить, как его построить. USB-устройства находятся в файловой системе UDEV. Их путь к устройству начинается в каталоге USB-устройства
/dev/шина/usb/
. Остальная часть пути состоит из идентификатора шины устройства и идентификатора устройства. Мое неописуемое устройство — это Bus 001, Device 002, которое преобразуется в 001/002 и завершает путь/dev/bus/usb/001/002
. Теперь я могу передать этот путь наlsusb
. Я также направлю наmore
, так как там часто содержится довольно много информации:$ lsusb -D /dev/bus/usb/001/002 |more
Устройство: ID 18f8:1486
Дескриптор устройства:
bДлина 18
bDescriptorType 1
bcdUSB 1. 10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x18f8
idProduct 0x1486
bcdDevice 1.00
iManufacturer 0
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
BnumendPoints 1
BINTERFACECLASS 3 Устройство интерфейса человека
BINTERFACESUBSCLASS 1 Подкласс Boot Interface
BINTERFACEPROTOCOL 2 MOSE
IInterface 0
HID DENCART DENTAR:К сожалению, это не дало детали. Я был нахождение устройства HID. Два поля, которые появляются в начальном выводе,
idVendor
иidProduct
, оба пусты. Есть некоторая помощь, так как небольшое сканирование показывает слово Мышь . АГА! Итак, это устройство — моя мышь.Это заставило меня задуматься, как я могу заполнить эти поля не только для себя, но и для других пользователей Linux. Оказывается, для этого уже есть проект с открытым исходным кодом: USB ID Repository. Это общедоступный репозиторий всех известных идентификаторов, используемых в USB-устройствах. Он также используется в различных программах, включая USB Utilities, для отображения удобочитаемых имен устройств.
Изображение:
(Алан Форми-Дюваль, CC BY-SA 4.0)
Вы можете просмотреть репозиторий для определенных устройств либо с веб-сайта, либо загрузив базу данных. Пользователи также могут отправлять новые данные. Это то, что я сделал для своей мыши, которая отсутствовала.
Обновите свои идентификаторы USB
База данных идентификаторов USB хранится в файле с именем
usb.ids
. Это расположение может различаться в зависимости от дистрибутива Linux.В Ubuntu 18.04 этот файл находится в
/var/lib/usbutils
. Для обновления базы используйте командуupdate-usbids
, который нужно запустить с привилегиями root или сsudo
:$ sudo update-usbids
Если доступен новый файл, он будет загружен. Текущий файл будет скопирован и заменен новым:
$ ls -la
total 1148
drwxr-xr-x 2 root root 4096 15 января 00:34 .
drwxr-xr-x 85 root root 4096 7 ноября 08:05 ..
-rw-r--r-- 1 root root 614379 9 января 15:34 usb.ids
-rw-r--r-- 1 корень корень 551472 Янв 15 00:34 usb.ids.oldПоследние версии Fedora Linux хранят файл базы данных в
/usr/share/hwdata
. Также отсутствует скрипт обновления. Вместо этого база данных хранится в пакете с именемhwdata
.# DNF Информация HWDATA
Установленные пакеты
Имя: HWDATA
Версия: 0,332
Выпуск: 1.FC31
Архитектура: NOARCH
Размер: 7,5 M
Источник: HWDATA-0.333118. : @Система
Из репозитория: обновления
Сводка: Идентификация оборудования и данные о конфигурации
URL-адрес: https://github.com/vcrhonek/hwdata
Лицензия: GPLv2+
Описание: базы данных ids и usb.ids.Теперь в моем списке USB-устройств отображается имя рядом с этим ранее безымянным устройством. Сравните это с выводом выше:
$ lsusb
Шина 002 Устройство 001: ID 1d6b:0003 Корневой концентратор Linux Foundation 3.0
Bus 001 Device 004: ID 046d:082c Logitech, Inc. HD Webcam C615
Bus 001 Device 003: ID 0951:16d2 Kingston Technology
Bus 001 Device 014: ID 18f8:1486 [Maxxter]
Bus 001 Device 005: ID 05d :0002 Источник бесперебойного питания American Power Conversion
Шина 001 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2. 0Вы можете заметить, что другие описания устройств меняются, так как репозиторий регулярно обновляется новыми устройствами и подробностями о существующих.
Отправка новых данных
Есть два способа отправки новых данных: с помощью веб-интерфейса или по электронной почте в специально отформатированном файле исправления. Прежде чем начать, я прочитал правила подачи заявок. Сначала мне нужно было зарегистрировать учетную запись, а затем мне нужно было использовать систему отправки проекта, чтобы указать идентификатор и имя моей мыши. Процесс аналогичен добавлению любого USB-устройства.
Использовали ли вы USB ID Repository? Если да, поделитесь своей реакцией в комментариях.
Эта работа находится под лицензией Creative Commons Attribution-Share Alike 4.0 International License.
208 » Журнал Linux
Дом » вопросы » 2018 » 208
Логин
Тема обложки: Terminal Tuning
DVD: Рабочая станция Fedora 27 (64-разрядная) и NetBSD 7.
1.1Скачать: LMI_DVD_Inlay_208.pdf (231 КБ).
Артикул Код
США/Канада
Великобритания/Австралия
Загрузить этот выпуск в формате PDF:
100 страниц
Цена $12,99
ОКАЗАНИЕ УСЛУГ: Добро пожаловать бесплатно
Недавние действия Федеральной комиссии по связи США по изменению прежней политики и отмене сетевого нейтралитета привлекли большое внимание. Выродкам это, конечно, не понравилось, но и значительному большинству простых граждан не очень понравилось.
подробнее…
ОКАЗАНИЕ УСЛУГ: DVD этого месяца бесплатно
Fedora 27 и NetBSD 7.1.1
подробнее…
НОВОСТИ: Новости бесплатно
Dell начинает 2018 год с совершенно нового ноутбука с Linux, Линус Торвальдс ругает Intel за крах и недостатки Spectre, выпущен CODE 3. 0 на основе LibreOffice, Google объявляет о Kubeflow, чтобы перевести Kubernetes на машинное обучение, и о критической уязвимости в phpMyAdmin.
подробнее…
НОВОСТИ: Zack’s Kernel News бесплатно
Зак Браун обсуждает реализацию управления цифровыми правами в ядре, улучшение управления освещением и обновление printk().
подробнее…
Настройка терминала бесплатно
Некоторые пользователи годами работают с командной строкой и ничего не хотят в ней менять, но других волнуют постоянные инновации. Мы изучаем некоторые полезные инструменты для расширения возможностей вашей оболочки.
подробнее…
ОБЗОРЫ: С помощью простых средств бесплатно
YunoHost предлагает широкий спектр услуг на проверенной платформе Debian, которую вы можете разместить самостоятельно.
ДЕБИАН , веб-приложения
еще. ..
ОБЗОРЫ: Новая шапка бесплатно
Fedora Linux — фаворит среди разработчиков, системных администраторов и других технически подкованных пользователей. В новой версии появился новый Gnome и другие полезные улучшения.
Рабочий стол , федора , Федора , Linux
еще…
ОБЗОРЫ: Организационный талант бесплатно
Занятые люди часто заполняют календари встречами и задачами. Чтобы следить за вещами, менеджеры дел Linux помогают контролировать беспорядок.
подробнее…
ГЛУБОКО: Гибкий импорт/экспорт бесплатно
Скрытая утилита в наборе инструментов LibreOffice, unoconv предлагает широкий набор параметров фильтрации импорта и экспорта для использования в командной строке.
Администрация
подробнее…
ГЛУБОКО: Снимок программирования – Protectli бесплатно
Что заставляет лампочки на маршрутизаторе так возбужденно мигать? Злоумышленник? Мы проводим расследование с помощью pfSense на микроустройстве Protectli и очистке экрана для отправки информации по электронной почте.
подробнее…
1 2 3 Следующий »
Купить этот выпуск
Посетите наш магазин
ПРИЛОЖЕНИЯ ДЛЯ ПЛАНШЕТОВ И СМАРТФОНОВ
США/Канада
Великобритания/Австралия
Экспресс-касса в формате PDF
Страниц: 100
Цена $12,99
(включая НДС)Купить этот выпуск
ПОДПИСКИ
Подписки на печать
5
Диги-подписки5
5
ПРИЛОЖЕНИЯ ДЛЯ ПЛАНШЕТОВ И СМАРТФОНОВ
США/Канада
Все остальные страны *
Express-Checkout в формате PDF
Страниц: 100
Цена $12,99
(включая НДС)Заказ отдельного выпуска
Пробная подписка
Цифровая подписка
Подписка
Прямая загрузка
Купить этот выпуск в формате PDF
Цифровой выпуск: Цена $12,99
(включая НДС)
Новости
Официальный выпуск ядра Linux 6.
0Хотя пройдет некоторое время, прежде чем большинство дистрибутивов Linux будут поставляться с последним ядром, теперь доступен следующий основной выпуск.
ExTiX 22.9 выпущен с поддержкой установки приложений Android
Разработчики дистрибутива ExTiX Linux выпустили новую версию, которая включает дополнительную поддержку, позволяющую упростить установку и использование приложений Android на рабочем столе.
System76 пропускает Pop!_OS 22.10, чтобы сосредоточиться на COSMIC Desktop
Шаг, который наверняка вызовет недоумение, System76 решил сосредоточиться на COSMIC Desktop вместо того, чтобы идти в ногу с выпусками Ubuntu.
Новый вид для System76 Thelio
Компания System76 изменила дизайн своего и без того звездного настольного компьютера Thelio с помощью акцентной панели корпуса.
Магазин программного обеспечения Ubuntu, по слухам, заменит программное обеспечение Gnome
Была написана альтернатива GNOME Software с использованием Flutter, и она производит достаточно шума, поэтому, по слухам, Canonical рассматривает возможность использования ее по умолчанию.
Появился новый дистрибутив Linux на базе Arch
Crystal Linux — это новый дистрибутив, цель которого — донести мощь Arch Linux до широких масс.
Доступна бета-версия Fedora 37
Команда разработчиков Fedora объявила, что бета-версия 37-й версии операционной системы с открытым исходным кодом будет выпущена вовремя — 13 сентября 2022 г.
Salix 15.0 предлагает обновления и модернизированный вид
Salix — это дистрибутив Linux на основе Slackware с новым внешним видом и целью быть быстрым, удобным для пользователя и очень стабильным.
Выпуск Ubuntu 20.04.5 LTS уже доступен
Теперь доступен последний точечный выпуск дистрибутива Ubuntu 20.04 LTS с ядром 5.15.
MX Linux 21.2 предлагает улучшения и исправления ошибок
MX Linux 21.2, также известная как Wildflower, теперь официально доступна и является вторым обновлением версии MX-21.
Облако тегов
Администрация Сообщество Рабочий стол События Аппаратное обеспечение линукс Журнал Linux Pro Мобильный Программирование Программного обеспечения Убунту Веб-разработка Окна свободное программное обеспечение с открытым исходным кодом
Аутентификация USB-устройства для обеспечения безопасности системы Linux
Аутентификация USB-устройства для обеспечения безопасности системы LinuxМеждународный журнал научных и инженерных исследований, том 4, выпуск 9, сентябрь 2013 г. Аутентификация для обеспечения безопасности
Linux System
Supriya
M.Tech From Computer Science & Engineering, Banasthali Vidyapith, Rajasthan
Abstract— В век информации данные, хранящиеся в компьютере, являются самым ценным активом для любой организации. Это могут быть самые ценные данные, личная информация, конфиденциальные файлы и папки. Из-за этого безопасность является обязательной, так как любой может использовать запоминающее устройство и копировать эти ценные активы. А если это случилось, то результат будет опасным и необратимым. Так что контролируйте USB-устройства, какие данные они обрабатывают. Таким образом, создается список авторизованных устройств, если авторизованное устройство подключено, оно приемлемо, в противном случае оно отклоняется с сообщением «Это устройство не авторизовано».
Ключевые слова — Несанкционированный доступ, USB-устройства, Контроль доступа, Безопасность
—————————— ——————————
1 ВВЕДЕНИЕ
Аутентификация — это средство проверки личность сущности. Его также можно использовать для проверки того, что передаваемая информация и данные являются той же самой информацией, которая была отправлена изначально, и тем, кто ее отправил. С аутентификацией тесно связана авторизация, которая определяет уровень прав и привилегий, доступных аутентифицированному объекту. Аутентификация пользователей позволяет организациям контролировать доступ к своим системам. Аутентификация пользователей — это современный способ завоевать доверие в деловом мире. Это гарантирует, что вы точно контролируете, кто получает доступ к вашей системе и с кем вы в конечном итоге ведете бизнес.
Аутентификация устройства — это область безопасности, в которой система имеет доступ только к авторизованным устройствам. Каждое USB-устройство имеет уникальный серийный номер, идентификатор производителя и идентификатор продукта. Эти уникальные идентификаторы извлекаются нами с помощью некоторых команд в терминале Linux.
Основные сведения, представленные в этой статье, сводятся к следующему:
• Сначала мы извлекаем уникальные идентификаторы USB-устройств из устройств с помощью некоторых команд.
• Список проверки создается при подключении USB-устройства к
система этот список вызывается или выполняется.
• Также создаются два других списка, в которых находится серийный номер устройства и идентификаторы его производителя и продукта.
2 КОНСТРУКЦИЯ
В этом разделе мы описываем принципы проектирования, которым мы следуем.
Наш принцип заключается в использовании самых простых инженерных решений для обеспечения разумного повышения безопасности, включая аутентификацию личности и авторизацию соединения. Наша философия разработки изложена следующим образом:
• Запретить пользователям устанавливать какие-либо устройства. Разрешить пользователям устанавливать только те устройства, которые находятся в «утвержденном» списке. Если устройства нет в списке, пользователь не может его установить.
• Запретить пользователям устанавливать устройства, включенные в список «запрещенных»
. Если устройства нет в списке, пользователь может установить его.IJSER © 2013 http://www.ijser.org
Международный журнал научных и инженерных исследований, том 4, выпуск 9, сентябрь 2013 г. считыватель отпечатков пальцев, флешка, наушники и другие usb-устройства.
В этом руководстве описывается процесс установки устройства и вводятся идентификационные строки, которые Linux использует для сопоставления устройства с уникальным идентификатором устройства, доступным в системе. Ниже приведены описания сценариев, представленных в этом документе:
Запретить установку всех устройств: В системе Linux мы создаем
список устройств, доступ к которым разрешен системе. Система не имеет доступа ко всем usb-устройствам, потому что usb-порты отключены пользователем и доступ предоставляется только авторизованным устройствам.
Разрешить пользователям устанавливать только авторизованные устройства: система
хочет разрешить пользователям устанавливать только устройства, включенные в список авторизованных устройств. Чтобы завершить этот шаг, мы создаем список авторизованных устройств, чтобы пользователи могли устанавливать только те устройства, которые мы можем указать.
Контроль использования USB-устройств: на этом этапе система хочет
запретить обычным пользователям записывать данные на съемные устройства хранения или устройства со съемными носителями, такие как USB-накопители. Чтобы выполнить этот шаг, мы настраиваем политику компьютера, чтобы разрешить доступ для чтения, но запретить доступ для записи к вашим примерам устройств.
3 РЕАЛИЗАЦИЯ
Мы провели эксперименты для количественной оценки производительности и проверки подлинности устройств. В Linux мы провели этот эксперимент в Udev. Udev предоставляет динамический каталог устройств, содержащий только файлы для реально присутствующих устройств. Он создает или удаляет файлы узлов устройств, обычно расположенные в каталоге
/dev, или переименовывает сетевые интерфейсы. Как часть подсистемы горячей замены, udev выполняется, если устройство ядра добавляется или удаляется из системы. При создании устройства udev читает каталог sysfs данного устройства, чтобы собрать устройство 9.0749 атрибуты, такие как метка, серийный номер или номер устройства шины.
Эти атрибуты можно использовать в качестве ключей для определения уникального имени устройства. udev поддерживает базу данных для устройств, присутствующих в системе. При удалении устройства udev запрашивает в своей базе данных имя удаляемого файла устройства. Конфигурация Все файлы конфигурации udev состоят из набора строк текста. Все пустые строки и строки, начинающиеся с «#», будут игнорироваться. udev ожидает, что его основной файл конфигурации будет иметь номер 9.0005/etc/udev/udev.conf.
Имя файла или каталога правил udev для поиска файлов с суффиксом .rules . Все файлы правил читаются в лексическом порядке. Значение по умолчанию — /etc/udev/rules.d/.
Рис.1. Модули проверки устройств
Результат анализа данных можно выделить следующим образом:
• Сначала мы пишем скрипт, когда usb-устройство подключается к системе, этот скрипт запускается.
• После этого определяем правила udev в каталоге /etc/dev/udev. Эти локальные правила определяются пользователем для добавления и удаления USB-устройств или для блокировки USB-портов системы.
• С помощью команды получаем серийный номер usb-устройства и создаем список авторизованных устройств в системе Linux.IJSER © 2013 http://www.ijser.org
Международный журнал научных и инженерных исследований, том 4, выпуск 9, ISSN 2229-5518
• Если какие-либо устройства не имеют серийного номера, мы получить идентификатор поставщика и продукта USB-устройств и создать действительный список идентификаторов поставщиков и продуктов.
• Также создается файл журнала, показывающий, что устройство0749 принят или нет.
• При подключении USB-устройства к системе запускается сценарий.
Если идентификатор устройства совпадает с тем, что находится в списке, система разрешит доступ к этому USB-устройству.• Если идентификатор устройства не соответствует допустимому списку, запускается сценарий, и USB-устройство отклоняется с сообщением времени и даты
.
Блок-схема процесса аутентификации устройства
Новое устройство
Нет
Разрешить устройства
Процесс регистрации USB-устройств
ДаАвторизовано ли устройство?
1. Подключить устройство 2. Обнаружить подключенное устройство
Соответствие идентификатору устройства
Нет
3. Запустить сценарий
5. Разрешить доступ к устройству
4. Проверить достоверность
Действительно ли устройство указано в списке
Да
список ?
Нет
Да НетIJSER © 2013 http://www.ijser.org
Международный журнал научных и инженерных исследований, том 4, выпуск 9, сентябрь 2013 г. ‘ss USB-устройств.
все устройстваРЕЗУЛЬТАТЫ
1) Определены локальные правила для добавления и удаления USB-устройств и блокировки всех портов.
2) Список действительных идентификаторов устройств
4) Показать, какие устройства разрешены, а какие запрещены, с их уникальными идентификаторами
IJSER © 2013 http://www. ijser.org & Engineering Research, Volume 4, Issue 9, September-2013 849
ISSN 2229-5518
management1003.pdf
4 ЗАКЛЮЧЕНИЕ
В этом документе представлена модель управления доступом для USB-устройств. Он имеет аутентификацию устройства и управляется авторизованным пользователем. Система имеет доступ только к авторизованным пользователям и устройствам. Основной функцией этой утилиты является поиск0749 вылечить систему от несанкционированных устройств. Особенностями этой утилиты являются аутентификация пользователей и контроль устройств. С помощью этой утилиты повышается безопасность системы. Мы реализовали полностью рабочий прототип аутентификации устройства на основе реализации USB в ядре Linux, и наши экспериментальные результаты демонстрируют его практичность и эффективность.БЛАГОДАРНОСТЬ
Я хотел бы поблагодарить моего брата и моих друзей, которые направляли меня и мотивировали меня написать эту статью.
ССЫЛКИ
[1] Hanjae Jeong, «Анализ уязвимостей безопасных флэш-накопителей USB
», Journal of the KIISC, vol. 17, № 6, стр. 99–118, декабрь 2007 г.
[2] Канбин Йим, «Исправление спецификации HCI для обхода идентификатора
и раскрытия пароля с помощью прослушивания USB», Труды APIC-IST 2008, стр. 191 -194, декабрь 2008 г.
[3] Канбин Йим, «Новый подход к защите пароля аутентификации путем смешивания шумов», IEEE, материалы
конференции CISIS 2010, стр. 839-842, февраль 2010 г.
[4] Библиотека Microsoft MSDN — сообщение WM_DEVICECHANGE, http://msdn.microsoft.com/en-us/library/aa363480(VS.85).aspx, 2009.02.23 [5]www.securitymanagement.com_archive_library_Identity_IJSER © 2013 http://www.ijser.org
Перенаправление USB | Агент виртуальной доставки Linux 2209
4 сентября 2022 г.
Предоставлено:
B
USB-устройства совместно используются приложением Citrix Workspace и рабочим столом Linux VDA. Когда USB-устройство перенаправляется на рабочий стол, вы можете использовать USB-устройство, как если бы оно было локально подключено.
Наконечник:
Мы рекомендуем использовать перенаправление USB, когда задержка в сети меньше 100 миллисекунд. Не используйте перенаправление USB, если задержка в сети превышает 200 миллисекунд.
Перенаправление USB включает в себя три основные области функциональности:
- Реализация проекта с открытым исходным кодом (VHCI)
- Служба СККИ
- USB-сервис
VHCI с открытым исходным кодом:
Эта часть функции перенаправления USB развивает общую систему совместного использования USB-устройств по IP-сети. Он состоит из драйвера ядра Linux и некоторых библиотек пользовательского режима, которые позволяют вам взаимодействовать с драйвером ядра для получения всех данных USB. В реализации Linux VDA Citrix повторно использует драйвер ядра VHCI. Однако все передачи данных USB между Linux VDA и приложением Citrix Workspace инкапсулированы в пакет протокола Citrix ICA.
Служба VHCI:
Служба VHCI — это служба с открытым исходным кодом, предоставляемая Citrix для связи с модулем ядра VHCI. Эта служба работает как шлюз между VHCI и USB-службой Citrix.
Служба USB:
Служба USB действует как модуль Citrix, который управляет всей виртуализацией и передачей данных на устройстве USB.
Как работает перенаправление USB
Как правило, если USB-устройство успешно перенаправляется на Linux VDA, в пути system /dev создается один или несколько узлов устройств. Однако иногда перенаправленное устройство нельзя использовать для активного сеанса Linux VDA. Для правильной работы USB-устройств необходимы драйверы, а для некоторых устройств требуются специальные драйверы. Если драйверы не предоставлены, перенаправленные USB-устройства недоступны для активного сеанса Linux VDA. Чтобы убедиться в возможности подключения USB-устройства, установите драйверы и правильно настройте систему.
Linux VDA поддерживает список USB-устройств, которые успешно перенаправляются к клиенту и от него.
Поддерживаемые USB-устройства
Следующие устройства были проверены на предмет поддержки этой версии Linux VDA. Другие устройства могут свободно использоваться с неожиданными результатами:
Примечание:
Linux VDA поддерживает только протоколы USB 2.0.
USB-накопитель ВИД:ПИД Файловая система Netac Technology Co., Ltd
0dd8:173c FAT32 Kingston Datatraveler 101 II
0951:1625 FAT32 Kingston Datatraveler GT101 G2
1567:8902 FAT32 Флэш-накопитель SanDisk SDCZ80
0781:5580 FAT32 Жесткий диск WD
1058:10B8 FAT32 3D-мышь USB VID:PID 3DConnexion SpaceMouse Pro
046d: c62b USB-сканер VID:PID Epson Perfection V330 фото
04B8: 0142 Настройка перенаправления USB
Политика Citrix определяет, включено или отключено перенаправление USB-устройств. Тип устройства также можно указать с помощью политики контроллера доставки. При настройке перенаправления USB для VDA Linux настройте следующие политику и правила:
- Политика перенаправления клиентских USB-устройств
- Правила перенаправления клиентских USB-устройств
Включить перенаправление USB
В Citrix Studio включите (или отключите) перенаправление USB-устройств на клиент и с клиента (только для хостов рабочих станций).
В диалоговом окне Редактировать настройку :
- Выберите Разрешено .
- Нажмите OK .
Установить правила перенаправления USB
После включения политики перенаправления USB задайте правила перенаправления с помощью Citrix Studio, указав, какие устройства разрешены (или запрещены) на Linux VDA.
В диалоговом окне правил перенаправления клиентских USB-устройств:
- Нажмите Создать , чтобы добавить правило перенаправления, или нажмите Изменить , чтобы просмотреть существующее правило.
- После создания (или редактирования) правила нажмите OK .
Дополнительные сведения о настройке универсального перенаправления USB см. в Руководстве по настройке универсального перенаправления USB Citrix.
Сборка модуля ядра VHCI
Перенаправление USB зависит от модулей ядра VHCI (
usb-vhci-hcd.ko
иusb-vhci-iocif.ko
). Эти модули являются частью дистрибутива Linux VDA (как часть пакета RPM). Они скомпилированы на основе ядер официальных дистрибутивов Linux и отмечены в следующей таблице:Поддерживаемый дистрибутив Linux Версия ядра Амазон Линукс 2 4.14.281-212 Дебиан 11.3 5.10.0-12 Дебиан 10.9 4.19.0-20 RHEL 8.x, Rocky Linux 8 4.18.0-372 RHEL 7. 9, CentOS 7.9 3.10.0-1160 SUSE 15 5.3.18 Убунту 22.04 5.15.0-37 Убунту 20.04 5.4.0-117 Убунту 18.04 4.15.0-184 Важно:
Если ядро вашей машины несовместимо с драйвером, созданным для Linux VDA, служба USB может не запуститься. В этом случае вы можете использовать функцию перенаправления USB, только если вы создаете свои собственные модули ядра VHCI.
Проверьте, совместимо ли ваше ядро с модулями, созданными Citrix
В командной строке выполните следующую команду, чтобы проверить, совместимо ли ядро:
insmod /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
Если команда выполнена успешно, модуль ядра успешно загружен и его версия соответствует версии, установленной Citrix.
Если команда выполняется с ошибками, ядро несовместимо с модулем Citrix и должно быть перестроено.
Перестройте модуль ядра VHCI
Если ваш модуль ядра не соответствует версии Citrix, выполните следующие действия:
Загрузите исходный код LVDA с сайта загрузки Citrix. Выберите файл в разделе « Linux Virtual Delivery Agent (sources) ».
Извлеките файл citrix-linux-vda-sources.zip . Перейдите к linux-vda-sources/vhci-hcd-1.15.zip и извлеките исходные файлы VHCI с помощью команды
unzip vhci-hcd-1.15.zip
.Убедитесь, что у вас установлен пакет Linux VDA, а затем выполните одну из следующих команд:
судо баш ctxusbcfg.sh дкмс
Эта команда позволяет использовать программу динамической поддержки модулей ядра (DKMS) для управления модулями ядра VHCI. DKMS недоступен для SUSE.
Примечание:
Команда
sudo bash ctxusbcfg.sh dkms
устанавливает программыkernel-devel
иDKMS
на ваш VDA. При установке программ на RHEL и CentOS команда устанавливает и включает репозиторий Extra Packages for Enterprise Linux (EPEL) на вашем VDA.DKMS может не собрать модули ядра VHCI (
usb-vhci-hcd.ko
иusb-vhci-iocif.ko
) при проведении серьезного обновления ядра, например, с версии 4.x.y до версии 5. .х.у. В случае сбоя DKMS снова запуститеsudo bash ctxusbcfg.sh dkms
.sudo bash ctxusbcfg.sh сборка
Эта команда создает и устанавливает модули ядра VHCI без опции DKMS.
Устранение неполадок с перенаправлением USB
Используйте информацию в этом разделе для устранения различных проблем, с которыми вы можете столкнуться при использовании Linux VDA.
Невозможно размонтировать перенаправленный USB-диск
Linux VDA управляет всеми USB-дисками, перенаправленными из приложения Citrix Workspace, с правами администратора, чтобы убедиться, что только владелец может получить доступ к перенаправленному устройству. В результате вы можете размонтировать устройство только с правами администратора.
Файл потерян при прекращении перенаправления USB-диска
Если вы немедленно прекратите перенаправление USB-диска с помощью панели инструментов приложения Citrix Workspace, файлы, которые вы изменили или создали на диске, могут быть потеряны. Эта проблема возникает из-за того, что при записи данных в файловую систему система монтирует кэш памяти в файловой системе. Данные не записываются на сам диск. Если вы прекратите перенаправление с помощью панели инструментов приложения Citrix Workspace, для сброса данных на диск не останется времени, что приведет к потере данных. Чтобы решить эту проблему, используйте команду синхронизации в терминале, чтобы сбросить данные на диск перед остановкой перенаправления USB.
Нет устройств на панели инструментов приложения Citrix Workspace
Иногда вы не можете видеть устройства, перечисленные на панели инструментов приложения Citrix Workspace, что указывает на отсутствие перенаправления USB. Если вы столкнулись с проблемой, проверьте следующее:
- Политика настроена на разрешение перенаправления USB
- Модуль ядра совместим с вашим ядром
Примечание:
9Вкладка 0191 Устройства недоступна в приложении Citrix Workspace для Linux.
Ошибка перенаправления, когда USB-устройства видны на панели инструментов приложения Citrix Workspace, но помечены как
с ограничениями политикиПри возникновении проблемы выполните следующие действия:
- Настройте политику Linux VDA, чтобы включить перенаправление.
Проверьте, настроены ли какие-либо дополнительные ограничения политики в реестре приложения Citrix Workspace. Проверить DeviceRules в пути реестра, чтобы убедиться, что доступ к устройству не запрещен этим параметром:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\GenericUSB
Для получения дополнительной информации см. Центр знаний статья Как настроить автоматическое перенаправление USB-устройств.
USB-устройство успешно перенаправлено, но я не могу использовать его в своем сеансе
Обычно перенаправлять можно только поддерживаемые USB-устройства. Другие устройства также могут быть перенаправлены на активный сеанс Linux VDA. Для каждого перенаправленного устройства в системе создается узел, принадлежащий пользователю /dev путь. Однако именно драйверы и конфигурация определяют, сможет ли пользователь успешно использовать устройство. Если вы обнаружите, что устройство принадлежит (подключено), но недоступно, добавьте устройство в неограниченную политику.
Примечание:
Для USB-накопителей Linux VDA настраивает и монтирует диск.