Большинство USB-устройств просто не работают таким образом.
Только очень немногие типы USB-устройств (, в основном устройства ввода, такие как мыши, клавиатуры, джойстики и т. д. ), могут отправлять данные по шине USB, если они специально не запрашиваются. Если вы сначала не отправите соответствующий запрос на USB-устройство, большинство USB-устройств не будут выводить никаких данных.
Затем возникает вопрос о конечных точках USB . Каждое USB-устройство может иметь несколько конечных точек; вы можете думать об этом как о номерах портов TCP. Всегда есть одна «управляющая» конечная точка и любое количество других конечных точек для определенных потоков данных. Некоторые конечные точки являются только входными -, другие только выходными -. Чтобы получить значимые данные с USB-устройства, вам нужен какой-то способ определить, к какой конечной точке устройства вы подключаетесь.
Или, если ваш вопрос касается дампа необработанного потока USB-пакетов, он обычно скрыт за уровнем USB-драйвера Linux. Чтобы получить доступ к необработанному потоку пакетов, вам необходимо смонтировать файловую систему debugfs
и загрузить модуль ядра usbmon
. Теперь вы можете выполнить такие действия, как cat /sys/kernel/debug/usb/usbmon/0u
, чтобы получить дамп всего трафика USB в системе, или использовать другой номер шины вместо 0, чтобы получить трафик только определенной шины USB. Модуль также предоставит устройства /dev/usbmon*
для более продвинутых программ анализа USB-трафика.
Чтобы получить более полезный дамп USB-трафика, вы можете использовать Wireshark для захвата USB-трафика. Wireshark автоматически идентифицирует различные элементы протокола USB и разделяет потоки данных в/из разных конечных точек USB.и позволит вам отделить заголовки пакетов USB и фактические данные полезной нагрузки друг от друга. Вам по-прежнему потребуются соответствующие документы стандартов типов USB-устройств и, возможно, техническая документация для вашего конкретного устройства, чтобы действительно понять смысл данных, но использование Wireshark значительно упростит этот процесс.
Насколько мне известно, Windows не обрабатывает такой преобразованный системный диск как особый случай после завершения преобразования, поэтому с ним следует обращаться точно так же, как с диском в «свежей» системе на основе GPT -..
В частности, Windows накладывает ограничение на то, что системные диски с разделами GPT -всегда должны загружать Windows в собственном стиле UEFI :, то есть использование процесса загрузки в стиле BIOS -на дисках с разделами GPT -не допускается..
Во-первых, введение в различия между разделами MBR и GPT:
PARTUUID
; для дисков с разделами MBR -комбинация подписи диска MBR и номера раздела используется вместо реального UUID раздела. Поскольку UUID типов разделов неудобны для использования людьми, различные программы разбиения на разделы использовали различные методы для их сокращения. gdisk
будет использовать четырехзначный -код типа; Gparted представляет UUID различных типов разделов с помощью различных флагов (, что, на мой взгляд, является неудачным выбором ).
Процесс загрузки в собственном стиле UEFI -также сильно отличается от процесса загрузки в классическом стиле BIOS -:
\EFI\boot\bootx64.efi
в стиле Windows -или <ESP mount point>/EFI/boot/bootx64.efi
в стиле Linux -. Раздел ESP имеет стандартную структуру :каждая установленная ОС должна создать подкаталог -\EFI\<vendor or distribution name>\
и поместить в него только свои файлы загрузчика. Подкаталог \EFI\boot\
sub -зарезервирован для загрузчиков резервных/съемных -носителей, которые следуют правилу Highlander :. Для каждой архитектуры системы может быть только один(). ].
Установив «флаг загрузки» GParted для раздела, отличного от -ESP, вы фактически изменили тип UUID этого раздела на UUID типа ESP. Это была ошибка :теперь на диске два раздела с типом ESP.Вы должны изменить тип раздела, который вы изменили, на исходный. В GParted это означало бы удаление флагов «boot» и «esp»; в gdisk
это, вероятно, означало бы установку кода типа на8300
(«Файловая система Linux» )или, возможно,8304
(«Linux x86 -64 root» ).
Поскольку у вас также есть Windows на том же диске, не рекомендуется пытаться использовать BIOS -Загрузочный раздел(gdisk
с кодом типаef02
):, который обычно заставит вас перейти к настройкам прошивки и включить/ отключайте CSM каждый раз, когда вы хотите переключиться между операционными системами. Вместо этого вы можете использовать живой загрузочный носитель Linux, чтобы смонтировать установку на -диске, например. /mnt
, а затем перейдите к нему, чтобы заменить текущий загрузчик в стиле BIOS -(, обычно GRUB с типом архитектуры i386-pc
)на родной UEFI (, например. GRUB с типом архитектуры x86_64-efi
). В основном (все следующие команды какroot
):
mount <your root filesystem device> /mnt
mount -o rbind /dev /mnt/dev
mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
chroot /mnt /bin/bash
Теперь ваш сеанс будет использовать среду вашей установленной ОС Linux, и вы должны иметь возможность использовать менеджер пакетов и любые другие инструменты почти как обычно (предупреждение :, если у вас есть части стандартной системы, такие как /var
как отдельные разделы, смонтируйте и их!)
Первым шагом должно быть добавление точки монтирования для ESP и его монтирование. Сначала запустите lsblk -o +UUID
, чтобы найти UUID вашего раздела ESP; поскольку его тип файловой системы, скорее всего, FAT32, он должен иметь вид xxxx-yyyy
. Замените <ESP UUID>
в следующих командах фактическим UUID:
mount UUID=<ESP UUID> /boot/efi
echo "UUID=<ESP UUID> /boot/efi vfat umask=0077,shortname=winnt,flush 0 2" >>/etc/fstab
Следующий шаг — переключение типа загрузчика.
К сожалению, вы не указали, какой дистрибутив Linux вы используете. Если это Debian, или Ubuntu, или какой-либо производный от них дистрибутив, то можно использовать стандартные инструменты управления пакетами для удаления пакетов grub-pc
и grub-pc-bin
и установки вместо них grub-efi-amd64
и grub-efi-amd64-bin
.затем запуститеgrub-install /dev/sda
(или любой другой диск, содержащий ваш раздел ESP ), и, наконец, запустите update-grub
для восстановления конфигурации GRUB.
На этом этапе вы можете выйти из chroot, отменить монтирование и посмотреть, может ли ваша система загрузиться сейчас.
(if you had to mount any extra partitions, unmount them now)
exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
reboot
Вы также можете установить утилиту efibootmgr
, так как она позволяет просматривать, создавать резервные копии и изменять параметры загрузки прошивки во время работы Linux. (Windows может сделать то же самое с помощью команды bcdedit
, но, на мой взгляд, эта команда гораздо более неудобна в использовании, чем efibootmgr
.)