Grub2 EFI: Где мой раздел EFI?

Я установил человечность 12.04 на своем Краю ThinkPad (UEFI) использование Карты с интерфейсом USB. Я предполагаю, что это было забито с помощью EFI, так как меню GRUB появилось с опциями загрузить живую систему, установку, или проверить диск.

Когда я загружаю свой ноутбук, копаюсь, только показывает его приглашение командной строки "личинка>".

После ручного выполнения grub-install /dev/sda + update-grub в chrooted среде это загружает личинку в режиме восстановления, говоря "Файл, не найденный".

Диск делится следующим образом:

/dev/sda1:    ntfs,  1.5GB, SYSTEM DRV
/dev/sda2:    ntfs,  150GB, Windows7 OS
/dev/sda3:    extended
  /dev/sda6:  ext4,  140GB, Ubuntu 12.04
  /dev/sda5:  ntfs, 10.7GB, Lenovo Recovery
/dev/sda4:    ntfs, 16.8GB, a custom additional partition

Я предположил, что раздел маркировал "SYSTEM DRV", может быть раздел EFI, но затем я считал, что раздел EFI имеет тип FAT32. У меня нет раздела FAT32 здесь!

Таким образом, я не могу следовать никаким Практическим руководствам, объясняющим, как установить Grub2 с поддержкой EFI. Они все хотят, чтобы я смонтировал свой раздел EFI в/boot/efi. Я также не могу только создать раздел EFI с тех пор в большинстве Практических руководств, они говорят, что это должен быть первый раздел (по крайней мере, это должен быть основной раздел), но поскольку Вы видите, что у меня уже есть раздел 1.

Разве не возможно просто использовать нормальный инструмент Grub2 на аппаратных средствах EFI?

В противном случае будет создание раздела EFI решать проблему? Я могу использовать раздел 4 для этого?

Мой BootInfo, как создано при помощи этой статьи может быть найден здесь: http://paste.ubuntu.com/1011739/. Обратите внимание, что это делается из Ubuntu Живой Картой памяти, которая была в /dev/sdb, таким образом, необходимо проигнорировать этот диск.

ОБНОВЛЕНИЕ:

Поскольку EFI, кажется, не проблема здесь, я переустановил (неEFI-) использование личинки boot-repair.

Новый BootInfo может быть найден здесь: http://paste.ubuntu.com/1012223/.

Проблема теперь, что BIOS не загружает, но дает ошибку:

Operating system not found.

ОБНОВЛЕНИЕ 2 (РЕШЕНИЕ):

Когда Вы читаете этот вопрос при наличии той же проблемы (Операционная система, не найденная.), Вы могли бы пропустить лес для деревьев при чтении ответов, таким образом, я повторяю решение здесь:

Проблема в моем случае была, к которому я случайно изменил флаг начальной загрузки диска /dev/sda6, который является логическим разделом. BIOS ищет флаги начальной загрузки на жестком диске, который он хочет загрузить от, но только смотрит в основных разделах. Если это не может найти флаг начальной загрузки, это пропускает жесткий диск. Если это не находит, что какой-либо диск или медиа загружаются от, Вы видите ошибку "Операционная система, не найденная".

0
задан 13 April 2017 в 15:23

2 ответа

Жесткий диск определенно настроен для загрузки в стиле BIOS. Конкретные доказательства этого включают в себя:

  • Таблица разделов - MBR. Хотя теоретически возможно загрузиться в режиме EFI из таблицы разделов MBR, насколько мне известно, Windows не поддерживает эту конфигурацию. Конечно, его установщик не делает; установщик Windows поддерживает MBR-on-BIOS или GPT-on-EFI, но не MBR-on-EFI или GPT-on-BIOS.
  • Нет ESP на / dev / sda. (Есть загрузочные файлы EFI в / dev / sdb1, но они выглядят как флэш-накопитель USB, а не как обычный загрузочный диск.)
  • Вывод скрипта Boot Info идентифицирует GRUB как установленный в MBR / dev / SDA. Это соответствует установке GRUB в режиме BIOS.
  • Выходные данные скрипта Boot Info определили /Windows/System32/winload.exe как загрузочный файл в / dev / sda2. Если бы это была установка EFI в Windows, вы бы где-нибудь увидели ссылку на winload.efi.

Таким образом, каким бы ни был источник проблемы, похоже, что он не имеет ничего общего с EFI; это просто проблема GRUB-on-BIOS.

Самая большая подсказка, которую я вижу, это из выходных данных скрипта Boot Info:

=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
   the same hard drive for core.img. core.img is at this location and looks 
   for (,msdos6)/root/grub on this drive.

Обратите внимание, в частности, на ссылку (,msdos6)/root/grub. Позже в выводе Boot Info Script есть список загрузочных файлов в / dev / sda6 ((,msdos6) на языке GRUB). Этот список включает в себя /boot/grub/grub.cfg, но в каталоге root ничего не упоминается. Фактически, каталог root (не путать с каталогом /, имя которого произносится как «root») является домашним каталогом суперпользователя, и он обычно не содержит загрузочных файлов. Таким образом, я подозреваю, что GRUB был неправильно установлен. Возможно, вы использовали опции grub-install, которые вы не упомянули и которые были неуместны, или, возможно, есть ошибка в скрипте установки. В любом случае, я рекомендую переустановить GRUB, используя обычные процедуры для этого на компьютере с BIOS. Однако обратите внимание, что если ваша аварийная система загружается в режиме EFI, это может создать сложности, поэтому вы должны обязательно загрузить свою аварийную систему в режиме BIOS.

Вы можете проверить свой режим загрузки в Linux, найдя каталог /sys/firmware/efi. Если он присутствует, вы загрузились в режиме EFI. Если он отсутствует, вы , вероятно, загрузились в режиме BIOS (хотя существуют условия, когда этот файл будет отсутствовать, даже если вы загрузились в режиме EFI).

0
ответ дан 13 April 2017 в 15:23

Раздел справки, связанный с более ранним (удаленным?) Ответом , описывает, как загрузить вашу систему, используя ее UEFI BIOS. Это то, что подразумевается под загрузкой Linux " native ".

ЕСЛИ он доступен на вашем Thinkpad, другой альтернативой может быть использование CSM или эквивалентной ему функции. Это сокращение от Модуль поддержки совместимости . Это термин Intel. (Спецификация для UEFI BIOS была разработана Intel.)

CSM позволяет системе с BIOS UEFI загружать устаревшие (не UEFI) операционные системы, которые знают только, как взаимодействовать с устаревшим BIOS.

Насколько я понимаю, на оборудовании UEFI можно использовать только так называемые обычные (то есть устаревшие BIOS) инструменты GRUB, если вы можете использовать что-то вроде CSM.

Обновление:

Я написал свои предыдущие предложения, прежде чем достаточно подробно взглянуть на таблицу разделов OP.

Очевидно, что разделение MBR на диске было размещено Lenovo. Таким образом, Thinkpad Edge уже должен иметь какую-то совместимость с BIOS для загрузки загрузочного диска MBR.

Если это на самом деле - истина, то стирание текущих разделов и использование GPT НЕ будет хорошим путем.

Я бы порекомендовал ДО сделать какие-либо радикальные изменения, чтобы вы сначала узнали, как работает ваша система в настоящее время. Не могли бы вы собрать резюме BootInfo для вашей системы? Вы можете сделать это, загрузившись с Live CD / USB при подключении к Интернету, выбрав Try Ubuntu, а затем, используя шаги, описанные в этого ответа .

Примечание: На данный момент я бы предложил только сбор информации. Попытка применить исправления до того, как вы лучше поймете свою ситуацию, может только сломать что-то еще.


Я согласен с анализом Рода Смита из вашего резюме BootInfo . Ubuntu уже установлена ​​в разделе /dev/sda6. GRUB и grub.cfg настроены правильно в /boot/grub/ на /dev/sda6. Проблема в том, что ваша последовательность загрузки в настоящий момент выглядит примерно так:

  • Загрузчик GRUB загружается из сектора 0 (MBR) из /dev/sda. Он передает управление GRUB's core.img, который находится в секторе 1 '/ dev / sda'.
  • Загрузчик core.img знает достаточно о файловых системах, чтобы загрузить остальные модули GRUB из того места, где, по его мнению, находится GRUB, (,msdos6)/root/grub.
  • GRUB входит в режим восстановления, когда core.img не может загрузить GRUB из (,msdos6)/root/grub

Обновление: сравнение старого [ 1131] и новые пастбины


Я сделал сравнение файлов на ваших двух пастбинах. Я перечислил то, что я считал существенными различиями ниже.

  • Строка 07
    Ранее GRUB core.img в секторе 1 искал (,msdos6)/root/grub. Теперь он ищет (,msdos6)/boot/grub. Другими словами, вы устранили проблему, которую пытались исправить, переустановив GRUB.

  • Строка 47
    У меня нет объяснения, почему это произошло, но в дополнение к загрузочному файлу core.img, который, очевидно, все еще существует в секторе 1, GRUB также добавил С /boot/grub/core.img по /dev/sda6. (Возможно, это связано со следующим изменением?)

  • Строки 77 и amp; 81
    Ранее /dev/sda1 был отмечен флагом boot . Теперь флаг boot находится на вашем разделе Ubuntu, /dev/sda6. Я думаю, что это может быть причиной вашей проблемы с загрузкой. Попробуйте переключить флаг boot обратно на первый раздел NTFS на вашем диске, помеченный SYSTEM_DRV , и посмотрите, поможет ли это. (Я не думаю, что это повредит.)

  • Строки 154, 155 и 537 (старые) 523 (новые)
    Настройки которые были « efi » в предыдущей версии pastebin, теперь, похоже, используют значения для устаревшего BIOS GRUB. В частности, в разделе PARTITIONS & DISKS: раздел sda6 ранее имел атрибут grub-efi. Сейчас grub-pc.

Есть некоторые другие изменения, которые не заслуживают подробного описания. Например, ваши изменения в файле /etc/default/grub были потеряны. Файл возвращается к своему содержимому установки по умолчанию. Кроме того, пункты меню для memtest отсутствуют в файле после переустановки grub.cfg.

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

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