UEFI распознает только /dev/sda, но не /dev/sda2, как загрузочный

Это немного устарело, но мне просто нужен был ответ, и я нашел его в другом месте.

Сначала скопируйте имя устройства-концентратора из сообщений об ошибках. В вашем случае0000:00:14.0

Затем, как root, выполните следующие действия:

echo 0000:00:14.0 >> /sys/bus/pci/drivers/xhci_hcd/unbind
echo 0000:00:14.0 >> /sys/bus/pci/drivers/xhci_hcd/bind

И вуаля :Хаб сброшен и можно продолжать пользоваться.

Я уже несколько лет борюсь с этой ошибкой. Я не уверен, проблема ли это в ядре или в аппаратной части (мое главное подозрение ). Но, по крайней мере, теперь мне не нужно перезагружаться только для сброса USB-концентратора.

0
30.06.2020, 10:17
1 ответ

Спецификация UEFI требует, чтобы микропрограмма поддерживала FAT32 для системного раздела EFI,но разрешено поддерживать и другие типы файловых систем. Например, устройства Apple поддерживают HFS+ на уровне прошивки, и, по-видимому, по крайней мере некоторые материнские платы Asus поддерживают NTFS и ISO9660 в дополнение к FAT32.

Похоже, вы изначально записали ISO-образ Solus в /dev/sda, который представляет собой целое -дисковое устройство, поэтому образ должен включать собственную таблицу разделов, фактически создающую /dev/sda1для вас. Это то, чтоisohybrid-делают подготовленные образы ISO -, и без такой специальной подготовки образ ISO вообще не будет загружаться при записи на жесткий диск -, например на запоминающее устройство.

Технически, команда isohybridиспользует гибкость формата iso9660 для префикса образа с таблицей разделов (либо в стиле MBR, либо в стиле GPT ), а затем упорядочивает вещи так, чтобы в дополнение к допустимому образу ISO в целом также можно будет проанализировать его как необработанный образ диска, который включает таблицу разделов и (обычно )один раздел, содержащий файловую систему ISO9660.

Если Manjaro ISO также былisohybrid-подготовлен, он также включает собственную таблицу разделов. Если вы создали /dev/sda2и записали в него ISO, теперь в разделе -есть таблица разделов, и это определенно ненормально. Linux мог бы справиться с этим (с помощью команд losetupи/или kpartx, по крайней мере ), но я не удивлюсь, если системная прошивка не сможет этого понять.

(Насколько я знаю, нет официального названия для устройства, которое позволяет рассматривать ISO-образ как функциональный образ жесткого диска -, но isohybrid, кажется, был первым инструментом для его реализации.)

Ваша текущая схема разбиения на sdaможет быть интерпретирована тремя способами:

  1. Конфигурация "супердискета" :допустимая файловая система ISO9660 (Solus )записана на весь -дисковое устройство sda,с некоторым неопределенным мусором после конца файловой системы (, который на самом деле был бы Manjaro ISO)
  2. Очевидно действительная таблица разделов GPT, указывающая на наличие двух разделов :файловой системы ISO9660 (Solus )и второй файловой системы ISO9660 (Manjaro ).
  3. Супер -странная опция :таблица разделов GPT, указывающая на наличие двух разделов :файловая система ISO9660 (Solus )и второй раздел, содержащий другой раздел таблица, определяющая один раздел с файловой системой ISO9660 (Manjaro)

Похоже, что микропрограмма вашей системы будет тестировать случай #1 раньше #2, и поэтому предпочитает интерпретацию #1. К сожалению, вы ничего не можете сделать, чтобы переопределить это. Если ваша прошивка позволяет вам получить доступ к оболочке UEFI, вы можете использовать ее команду map, чтобы увидеть, как прошивка видит ваш диск... но не обязательно позволять вам изменять это.

Насколько я знаю, ни прошивка, ни ОС не будут автоматически принимать интерпретацию #3, но в Linux вы можете довольно легко использовать kpartx -a /dev/sda2для разбора этой второй таблицы разделов и создания /dev/mapper/sda2p1устройства для доступа к ней, если у вас когда-либо была необходимость сделать такую ​​вещь.

(Вы можете обнаружить такую ​​вложенную структуру разделов при работе с виртуальными машинами Xen, настроенными с системным образом виртуальной машины на устройстве с разделом :хотя образ системного диска виртуальной машины находится в разделе, виртуальная машина видит его как единое целое. диск, поэтому установщик ОС разделит его. Теперь, если вам нужно изменить некоторые файлы в виртуальной машине, которая зависает при ранней загрузке, чтобы она снова успешно загрузилась, вам нужно иметь возможность работать с разделами второго порядка -, подобными этому. Я должен был сделать что-то очень похожее на это только на прошлой неделе!)

2
18.03.2021, 23:23

Теги

Похожие вопросы