Автор Тема: Загрузчик BIOS в режиме UEFI не видит UEFI HDD  (Прочитано 34869 раз)

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Загрузчик моего BIOS не видит в режиме UEFI ни одного из двух HDD, хотя видит UEFI FLASH HDD, т.е. загрузочную флешку.
В режиме загрузчика UEFI+legacy для моего BIOS картина слегка меняется: теперь видно оба HDD и даже флешку в двух режимах т.е. UEFI FLASH HDD и FLASH HDD.

Подозреваю, что дело заключается в моём незнании того, как правильно и какими средствами разбивать HDD для GPT-таблицы, которую использует UEFI. Вывод я сделал из того, что видно UEFI FLASH HDD, которая была создана при помощи Rufus с поддержкой UEFI. Хотя, возможно и то, что BIOS моей платы не поддерживает полностью UEFI-режим, либо некорректно устанавливается загрузчик операционной системы ( там я полностью не разобрался, не пробовал пункт "очистить NVRAM и записать туда EFI" или как-то так ).

Оба жёстких диска испрвны, проверено, по карайней мере ОС устанавливается. Оба HDD размечал таблицей GPT в gparted с созданием в одном из них efi-раздела в 256 Мб с флагами "boot" и "esp". Вопос: как установить ALT Linux p9 для моей системы (с UEFI) или, хотя бы, как комфортно загружать ОС без флешки? Интересная особенность замечена: когда загружается с той самой загрузочной UEFI FLASH HDD, можно выбрать в меню пункт "Load from other", в появившемся меню загрузчика reEFInd можно выбрать пункт "... vmlinuz at 60 Gib HDD", собственно тот самый HDD, на котором установлена ОС, после чего установленная система успешно запускается.

Как вариант: можно плюнуть на это, включить режим UEFI+legacy в BIOS, перевести GPT в msdos для обоих дисков, разметить как обычно, без efi-раздела, установить загрузчик в MBR диска и не париться. Но разобраться хочется. Есть у меня UEFI или какой-то уразанный, вроде UEFI-CSM?

Возможно, вы сталкивлись с такой проблемой. Насколько я понял, с UEFI много возни всегда. Как мне установить или запустить систему в режиме UEFI, если возможно? Вопросов много и они бессвязные, но проблема в запуске может быть как на этапе разметки диска, как на этапе установки загрузчика ОС, так и вовсе кроется в BIOS.
« Последнее редактирование: 27.01.2020 20:59:22 от den-devis »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Тип таблицы разделов:
gpt

Тип первого раздела (260-300 Mb):
EFI System
Тип файловой системы первого раздела:
fat32
Флаги:
boot, esp

Тип второго раздела:
Microsoft reserved
Тип файловой системы второго раздела (17-128 Mb):
Файловая система отсутствует
Флаги:
msftres

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Тип второго раздела:
Microsoft reserved
Тип файловой системы второго раздела (17-128 Mb):
Файловая система отсутствует
Флаги:
msftres
только что попробовал, но у меня не гибридная система, собираюсь один ALT использовать, microsoft reserved вроде лишний. а в остальном всё так и делал.

кстати, вот насчёт загрузочной флэшки, посмотрел таблицу, но там вообще ничего. один монолитный диск. определяется норм.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Оба жёстких диска испрвны, проверено, по карайней мере ОС устанавливается. Оба HDD размечал таблицей GPT в gparted с созданием в одном из них efi-раздела в 256 Мб с флагами "boot" и "esp". Вопос: как установить ALT Linux p9 для моей системы (с UEFI) или, хотя бы, как комфортно загружать ОС без флешки?

Если разбито правильно, то выбрав пункт загрузчика "EFI (рекомендуется)", должна прописаться запись в NVRAM, и система должна грузиться. Если этого не происходит, то есть проблема с записью в NVRAM из Linux. Можно загрузиться с Rescue и сделать:

mount-system
chroot /mnt/system1
grub-install --target=x86_64-efi --recheck --removable  --no-uefi-secure-boot
exit
reboot

grub-efi установится в режиме для съёмных устройств. Единственное, не будет грузиться в Secure Boot. Ну, и если будете ставить Винду на тот же накопитель, она затрёт загрузчик. Этот вариант подходит, когда ОС на накопителе одна и невозможно из Linux записать в NVRAM. А главное предназначение - переносная ОС на SSD для EFI систем.

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Если разбито правильно, то выбрав пункт загрузчика "EFI (рекомендуется)", должна прописаться запись в NVRAM, и система должна грузиться. Если этого не происходит, то есть проблема с записью в NVRAM из Linux. Можно загрузиться с Rescue и сделать:
Самое забавное то, что режим Rescue из UEFI-оболочки устновщика не грузится по непонятным мне причинам, в результате чего я вижу пустой экран перед собой. Ещё примечально другое: что загружаясь с Legacy-образа, режим Rescue работает.

В общем, чего я только не перечитал и перепробовал, всего не пересказать. Вот эта статья https://losst.ru/ustanovka-zagruzchika-grub и тот факт, что загрузочная флэшка легко определяется для двух конфигураций вместе и поотдельности (UEFI и Legacy) навели меня на мысль, что мой BIOS просто некорректно работает с UEFI и GPT-дисками. Ведь загрузончая флэшка создаётся, заметьте, в режиме "MBR для UEFI и nonUEFI систем" (как-то так), режим UEFI вроде как эмулируется и речь идёт о записи в MBR, а не GPT. Ну, и более весомый факт, то что у многих выходило поставить UEFI-систему просто корректно разбив диски, банально создав efi-раздел.

Из вышеописанного я пришёл к такому выводу, что существует в природе три варианта поддержки BIOS'ом UEFI и Legacy: UEFI, UEFI-CSM (UEFI-Legacy), Legacy. Насколько я понял, читая по данной проблеме, в некоторых системах в самом BIOS, у которого есть поддержка UEFI, можно выбрать загрузчик, прописать путь до него. У меня не так, у меня загружается, как это было ранше, только с красивой картинкой по краям, выбор можно сделать только из предложенного, ничего дописать нельзя. Таким образом, сделал вывод, что у меня поддержка UEFI на уровне UEFI-CSM, которая является той же BIOS. Похоже, потому и нельзя было ничего записать-перезаписать в NVRAM.

Сейчас я сделал всё по запасному плану, т.е. установил ALT Linux в Legacy-режиме на msdos-таблицу. Позже напишу разработчикам материнской платы¸ пускай сами разбираются, кстати, у меня она MSI B250M GAMING PRO, не такая допотопная, последнее обновление BIOS пришло в июле 2018 года.
« Последнее редактирование: 28.01.2020 14:59:53 от den-devis »

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Товарищи, это, оказалось, ещё не всё... Установил я, значит, ALT Linux на msdos-таблицу. Вдруг пришла мысль, что я не трогал тот самый Legacy-образ загрузочной флэшки, а всё пытался сделать из UEFI-режима. Решил поэкспериментировать с этим, здесь была целая лабораторная работа. Устанавливал систему три раза следующими способами:

1) с разбиением диска согласно нормам GPT для UEFI-режима, т.е. создания раздела в 256 Мб с FAT32 с флагами "boot" и "esp"
2) с разбиением диска согласно нормам GPT для UEFI-Legacy режима, т.е. создания раздела в 1Мб без ФС с флагом "bios_grub"
3) просто стандартная установка без специального разбиения и установки загрузчика в MBR

Знаете что? Как ни странно, система запускается во всех случаях. Даже если я не размечаю диск стандартным образом, не характерным для GPT-таблицы. Не знаю пока как это работает, но очень интересно, ведь Legacy-режим установщика из загрузочной флэшки не поддерживает запись в EFI, о чём и не спрашивает. В общем, если вы желаете всё-таки использовать GPT-разметку даже в BIOS без поддержки UEFI, то вы можете это сделать. Кстати, производительность на GPT-таблице для моего SSD стала заметно лучше, чем была на msdos. У меня есть предположение на этот счёт, что GPT не исключает MBR, а поддерживает оба режима для совместимости, в моём случае диск всё равно использует ту же MBR-запись, как раньше.

hdparm -Tt /dev/sdX - не показал рост производительности, в отличие от ощущений. Наверное, вышеописанный способ установки - очередной ненужный костыль.
« Последнее редактирование: 28.01.2020 17:01:19 от den-devis »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
3) просто стандартная установка

Что значит стандартная установка?
При моих настройках UEFI BIOS Lenovo G50 вы никогда не получите UEFI загрузку по-умолчанию, как бы вы ни старались. Потому что приоритетов в UEFI BIOS Lenovo G50, не один, а два, - один локальный, другой глобальный. И лежат они в разных секциях.

без специального разбиения и установки загрузчика в MBR

Что вы считаете специальным разбиением? Два-три дня назад, я уже распинался на форуме в двух простынях про MBR и Protective MBR. Какой из них вы имеете ввиду?

У меня есть предположение на этот счёт, что GPT не исключает MBR

Вы меня конечно простите, но я для кого тут распинался простынями про UEFI, MBR и Protective MBR?
https://forum.altlinux.org/index.php?topic=43509.msg345914#msg345914
https://forum.altlinux.org/index.php?topic=13216.msg345915#msg345915

Мне всегда казалось, что подробности простынями, дают пользователю гибкость и более широкий выбор, в зависимости от его личных предпочтений. Но последнее время, у меня возникает устойчивое сомнение, а стоит ли так напрягаться, если пользователь читает только то что ему отвечают, а не всё что по теме.

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Вы меня конечно простите, но я для кого тут распинался простынями про UEFI, MBR и Protective MBR?
Искал строго по заголовкам тем, а не по тексту сообщений.

Что вы считаете специальным разбиением? Два-три дня назад, я уже распинался на форуме в двух простынях про MBR и Protective MBR. Какой из них вы имеете ввиду?

Специальное разбиение для UEFI-загрузчика с GPT-таблицей диска. Выходит, связка UEFI/GPT - не панацея, ибо можно использовать вариант Legacy/GPT. Честно признаться, во многих источниках считают первую единственно возможной.

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Оказывается, что рано закрыл тему. Спустя 3 месяца я всё-таки разобрался. Дело не в том, что мой BIOS не поддерживает UEFI/GPT, дело в том, что загрузчик grub (или какой там у ALT Linux для UEFI) не устанавливался в раздел EFI по неизвестной причине.
« Последнее редактирование: 15.04.2020 16:01:10 от den-devis »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Выходит, связка UEFI/GPT - не панацея, ибо можно использовать вариант Legacy/GPT. Честно признаться, во многих источниках считают первую единственно возможной.

Эти линуксоиды, строчащие свои руководства направо и налево, или ламеры, или брехуны. Второе ещё хуже. Из ламера можно сделать Линукс-чайника. Из линуксоида-брехуна сделать Линукс-пользователя?, - никогда!

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Оказывается, что рано закрыл тему. Спустя 3 месяца я всё-таки разобрался. Дело не в том, что мой BIOS не поддерживает UEFI/GPT, дело в том, что загрузчик grub (или какой там у ALT Linux для UEFI) не устанавливался в раздел EFI по неизвестной причине.

Попробуйте выключить Secure boot в UEFI BIOS, если он включен.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
1) с разбиением диска согласно нормам GPT для UEFI-режима, т.е. создания раздела в 256 Мб с FAT32 с флагами "boot" и "esp"
2) с разбиением диска согласно нормам GPT для UEFI-Legacy режима, т.е. создания раздела в 1Мб без ФС с флагом "bios_grub"
3) просто стандартная установка без специального разбиения и установки загрузчика в MBR

Знаете что? Как ни странно, система запускается во всех случаях. Даже если я не размечаю диск стандартным образом, не характерным для GPT-таблицы. Не знаю пока как это работает, но очень интересно, ведь Legacy-режим установщика из загрузочной флэшки не поддерживает запись в EFI, о чём и не спрашивает.

Это звучит как парадокс, но всё просто и сложно одновременно:

Если на винчестере тип разделов dos и загрузка  через mbr, то это загрузка через mbr.
Если на винчестере тип разделов gpt и загрузка  через mbr, то это загрузка через protective mbr.

Какая разница между ними? Принципиальная:

Тут показана таблица разделов в mbr с таблицей разделов dos
https://forum.altlinux.org/index.php?topic=41344.msg326234#msg326234

Тут показана таблица разделов в protective mbr с таблицей разделов gpt
https://forum.altlinux.org/index.php?topic=43710.msg347668#msg347668

Обратите внимание, что в protective mbr одна 16-тибайтная запись и она описывает весь винчестер как один gpt раздел (по второй ссылке пятый байт это тип раздела) и этот hex-код типа раздела - ee:
# sfdisk -T | grep -i ^ee
ee  GPT
сама же таблица разделов находится в таблице разделов gpt и их две.

Загрузка системы x86_64 только через UEFI обязательна в трёх случаях:
- Если Линукс-образ содержит только UEFI Загрузчик. (Все альтовые образы x86_64 поддерживают загрузку и через UEFI и через MBR/Protective_MBR)
- Если UEFI BIOS не имеет режима Legacy/CSM (Во многих UEFI BIOS появится после отключения Secure boot в UEFI BIOS).
- Если загрузочный винчестер больше двух терабайт и логический сектор у него 512 байт.

Если загрузочный винчестер больше двух терабайт и логический сектор у него 4K, то загрузка через UEFI ему и даром не впёрлась. Загрузкой через MBR, такие винчестеры могут быть до 16-ти терабайт.

Во всех остальных случаях, загрузка через UEFI необязательна от слова совсем.

Честно признаться, во многих источниках считают первую [UEFI/GPT] единственно возможной.

Открою им страшный и ужасный секрет:
Windows 10 может грузиться на компьютере с UEFI BIOS через MBR. Про Линукс, тут даже разговор не идёт. Это само-собой разумеется.

Поговаривают что есть тенденции избавить в будущем UEFI BIOS от Legacy/CSM. Но не факт что ASUS и Lenovo пойдут таким путём. Будущее покажет. Но в любом случае здесь надо быть настороже. Всё может быть.


Будьте осторожны с MBR:
Первые 446 байт в 512-тибайтном секторе, это код загрузчика. Дальше идёт таблица разделов. Уничтожив или повредив её, вы уничтожите все данные на винчестере:
$ echo '446+(16*4+2)' | bc
512

Расшифровка:
446 - код загрузчика 446 байт
16*4 - четыре записи по 16 байт в таблице разделов, 16 байт на раздел, четыре первичных раздела
+2 - два байта сигнатуры MBR - 55 aa
512 - всего 512 байт сектор MBR


Дополнительно:
https://en.wikipedia.org/wiki/GUID_Partition_Table
https://en.wikipedia.org/wiki/GUID_Partition_Table#Protective_MBR_(LBA_0)
https://en.wikipedia.org/wiki/Master_boot_record
http://dsme.narod.ru/mbrfaq.xhtml
« Последнее редактирование: 15.04.2020 22:12:25 от Speccyfighter »

Оффлайн red-matter

  • Участник
  • *
  • Сообщений: 254
Не поставишь ты Альт. У меня такая же шляпа. Винда на втором харде стоит, который я даже вытаскивал перед установкой  ;-D. Рескуе в UEFI не грузится, система после инсталл не стартует. Диск видит но без загрузчика, просто диск. Загружаешься появляется надпись граб и чёрный экран. И так и сяк размечал и в gparte и в установщике. Если не ставится, не мучай голову и хард, совет тебе.
 ;-D ;-D ;-D ;-D
« Последнее редактирование: 17.04.2020 09:48:08 от red-matter »

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Не поставишь ты Альт. У меня такая же шляпа. Винда на втором харде стоит, который я даже вытаскивал перед установкой  ;-D. Рескуе в UEFI не грузится, система после инсталл не стартует. Диск видит но без загрузчика, просто диск. Загружаешься появляется надпись граб и чёрный экран. И так и сяк размечал и в gparte и в установщике. Если не ставится, не мучай голову и хард, совет тебе.
 ;-D ;-D ;-D ;-D

Но я решил проблему, как и сказал. Кстати, верно сказано, что Rescue не грузится под UEFI, у меня то же самое. Дело оказалось не только в разбивке, хотя на неё так ссылаются, как на единственную панацею, но это не единственное основное условие. Другим основным условием успешной загрузки под UEFI является правильно установленный загрузчик в EFI раздел. Видимо, правильная его установка во многом зависит от конкретного UEFI BIOS. Как я понял, grub - не лучший выбор менеджера загрузок, наилучший вариант - refind.

Попробуйте выключить Secure boot в UEFI BIOS, если он включен.

Спасибо. Я решил проблему, дело не в разбивке и не опции secure boot. Кстати, с этой включенной опцией загрузка намного быстрее, так что я оставил включенной.

Эти линуксоиды, строчащие свои руководства направо и налево, или ламеры, или брехуны. Второе ещё хуже. Из ламера можно сделать Линукс-чайника. Из линуксоида-брехуна сделать Линукс-пользователя?, - никогда!

Абсолютно с вами согласен. Советы из любительских блогов пользователей приходится использовать на свой страх и риск, а главное - верить на слово. По-моему, современная большая проблема заключается уже не в недостатке информации, а в её достоверности и безопасности. Кстати, вы правы, я уже поюзал ALT Linux на GPT в режиме Legacy/CSM, уже писал об этом. Но мне хотелось избавиться от всяких костылей для совместимости, использовать систему "в полноценном виде". Вот эта статья натолкнула меня на правильную мысль: https://habr.com/ru/post/314412/. Структура самого раздела EFI тоже крайне важна для правильной загрузки системы в UEFI-режиме.
« Последнее редактирование: 17.04.2020 11:42:33 от den-devis »

Оффлайн den-devis

  • Участник
  • *
  • Сообщений: 9
Сколько же времени я потратил на такое очевидное решение. Прочитав сначала ту статью, указанную мною выше, я загрузился с LiveCD (под UEFI работает, в отличие от Rescue), затем начал интересоваться содержимым загрузочной флэшки, а точнее её разделом EFI (который FAT16 с флагами boot и esp). Это ведь очевидно, ведь флэшка то определяется в UEFI BIOS, а диски нет, несмотря на разбивку. Сравнив полученный при установке ALT Linux EFI-раздел на HDD с таким же разделом на Flash я заметил разницу, в которой очевидно крылась загадка. В той статье написано, что важно наличие файла /EFI/boot/bootx64.efi, так вот это сработало. Таким образом, можно сделать вывод, что для установки системы под UEFI, как и её дальнейшего запуска, определения в UEFI BIOS, недостаточно одной только разбивки, необходимо удостоверится в структуре самого EFI-раздела. Я даже подозреваю, что такая схема сделана корпорацией Микрософт для создания дополнительной проблемы при установке посторонних ОС, наряду с сертефикатами secure boot.
« Последнее редактирование: 17.04.2020 13:23:28 от den-devis »