Как загрузить Ubuntu из EFI / UEFI?


20

Я установил Ubuntu 11.10 на недавно купленный Lenovo ThinkCentre Edge 71 (модель: 1577-G3G) с включенной загрузкой EFI. Я выбрал опцию Использовать весь диск . Несмотря на то, что процесс установки прошел без проблем / ошибок, при перезагрузке он теперь просто дает мне:

Нет загрузочной операционной системы. Вставьте загрузочный диск и нажмите любую клавишу ...

Я полагаю, что это из-за EFI.

Регресс:

  • Я проверил Системную настройку (F1 во время POST), чтобы найти параметр BIOS для отключения загрузки EFI / UEFI, однако для этой машины такой опции нет.
  • Это может быть вызвано функцией «безопасной загрузки» в BIOS.
  • Поставщик оборудования не знает ни о каких параметрах «безопасной загрузки» в BIOS, которые бы препятствовали загрузке Linux.
  • Служба поддержки Lenovo ничего не знала о настройке BIOS, называемой безопасной загрузкой. Они также не знали каких-либо ограничений, которые могли бы препятствовать загрузке Linux.
  • В руководстве по ThinkCentre 1577 BIOS не упоминается ни EFI, UEFI, ни безопасная загрузка.

Как установить Ubuntu на компьютер с EFI? - Или, поскольку Ubuntu, вероятно, уже установлен: как мне сделать так, чтобы он загружал Ubuntu?


2
Поскольку Ubuntu уже «успешно» установлена, вам просто нужно переустановить grub-efi. Это именно то, что я должен был сделать вчера: superuser.com/q/372962/37511 взглянуть на это.
Максим Р.

Я попытался следовать вашим инструкциям в сообщении superuser.com. Это не сделало загрузку Ubuntu :(
ervingsb

Не могли бы вы рассказать подробнее о вашей ветке ubuntuforums.org/showthread.php?t=1901748 ? Что сработало, а что нет, какие-либо сообщения об ошибках и т. Д.
Максим Р.

Ответы:


11

Это измененное сообщение от nerasezi на форуме Ubuntu

Основным источником для UEFI было руководство Ubuntu UEFI

Ниже приведены шаги, которые он сделал:

  1. Используйте live CD, который соответствует архитектуре UEFI. В основном x86-64. Загрузите live cd (xubuntu или lubuntu. Это легкий настольный компьютер, но он также должен работать с Ubuntu и kubuntu).

    Убедитесь, что ваша живая система загружается в режиме UEFI. Вы можете проверить это в настройках UEFI, возможно, в опции Boot или аналогичной. В моем случае это просто поставить префикс "UEFI" перед именем устройства.

  2. После запуска работающей системы установите через терминал пароль root, набрав
    sudo passwd root

    Затем выйдите из стандартного пользователя live cd и войдите как root в режиме графического интерфейса пользователя. Подключите жесткий диск. Я использую портативный жесткий диск USB3, но в большинстве случаев жесткий диск является внутренним диском SATA. В любом случае, убедитесь, что вы ЗАПИСИЛИ ВСЕ свои данные, потому что процесс уничтожит все данные на диске. Запустите Gparted (инструмент с графическим интерфейсом намного проще, чем текстовый) и выберите диск, на который вы хотите установить систему. (Обязательно выберите правильный!) Укажите на верхнее меню и выберите «Устройство»> «Создать таблицу разделов» ... Появится предупреждающее сообщение. Нажмите на Advanced и выберите «gpt». Скажите «ОК». Создана новая разметка диска GPT. Теперь вам нужно создать на нем разделы. Очень важно, чтобы вы создали в качестве первого и основного раздела том FAT32, и вам необходимо присвоить ему метку EFI. Как только раздел создан, щелкните по нему правой кнопкой мыши и выберите «Управление флагами». Проверьте флаг «загрузки» и скажите «ОК». Перейдите к созданию раздела / (вы можете захотеть разделить / home и / boot. Сделайте это, как обычно. В моем случае я только что создал раздел /) и область подкачки. Всегда предпочитайте первичные разделы, потому что в GPT ограничение 4 основных разделов снято. Закрыть Gparted.

  3. Установите систему в раздел «/» жесткого диска и не забудьте указать здесь загрузчик (GRUB 1.99) для установки. Если вы создали отдельный раздел "/ boot", вы должны выбрать его для установки загрузчика.

  4. Вот часть руководства по загрузке UEFIB:

    Здание GRUB2 (U) EFI

    Загрузите последнюю версию ZIP-файла с исходным кодом grub2. ftp://ftp.gnu.org/gnu/grub/

    Для сборки grub2 требуются следующие программы (зависимости для сборки):

    bison autoconf automake flex autogen python (серия 2.x) (для autogen.sh при сборке из репозитория bzr) texinfo help2man gettext (поддержка NLS) устройство отображения карт freetype2 (libs)

    sudo apt-get install bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev freetype2-demos texinfo efibootmgr

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

    Для 64-битного (U) EFI:

export EFI_ARCH=x86_64 ./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix="" make

Если у вас 32-битная архитектура, проверьте онлайн-документацию по ссылке, которую я предоставил вверху.

Установите GRUB2 в (U) EFI-системах

Определите свой EFI SYSTEM PARTITION. (это должно быть / dev / sda1 или / dev / sdb1, если установлено на 2-м жестком диске)

Затем смонтируйте раздел в / mnt / EFISYS (или в любой точке монтирования). Следующий код предполагает, что / dev / sda1 является разделом EFISYS.

sudo mkdir -p /mnt/EFISYS

sudo modprobe dm-mod

sudo mount -t vfat -o rw,users /dev/sda1 /mnt/EFISYS

sudo mkdir -p /mnt/EFISYS/efi/grub

Затем создайте приложение EFI для GRUB и скопируйте его и другие модули:

Войдите в каталог "grub2 compiled source / grub-core" - по умолчанию: / usr / lib / grub / {EFI_ARCH}

grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot

sudo cp grub.efi *.mod *.lst /mnt/EFISYS/efi/grub

Примечание. Параметр -p "" важен для создания переносимого приложения grub.efi. Теперь создайте grub.cfg в / mnt / EFISYS / efi / grub:

sudo touch /mnt/EFISYS/efi/grub/grub.cfg

Сделайте запуск прошивки GRUB2 (U) EFI по умолчанию

Для не-Mac UEFI-систем efibootmgr используется для изменения менеджера загрузки прошивки UEFI. Это требует загрузки ядра в режиме UEFI и того, что архитектура процессора ядра должна соответствовать архитектуре прошивки (и noefi НЕ используется) для загружаемого модуля ядра 'efivars' и efibootmgr для доступа к переменным менеджера загрузки. Изначально пользователю необходимо вручную запустить «efi / grub / grub.efi» из самой консоли прошивки, если grub2-efi был установлен в режиме BIOS. Затем нужно запустить efibootmgr, чтобы создать загрузочную запись.

sudo modprobe efivars

Войдите в каталог "grub2 compiled source / grub-core"

grub-probe --target=device /boot/efi/efi/grub/grub.efi

Предполагая, что на выходе grub-probe будет / dev / sda1

sudo efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\\EFI\\grub\\grub.efi"

В приведенной выше команде / boot / efi / efi / grub / grub / efi можно разделить на / boot / efi и /efi/grub/grub.efi, что означает (/ dev / sda) -> раздел 1 - > \ EFI \ grub \ grub.efi.

  1. Откройте Synaptic, удалите все пакеты grub и установите только пакеты grub-efi (для меня amd64) и все необходимые зависимости. После завершения установки запустите sudo update-grub в терминале. Вы должны отредактировать "grub.cfg" из / boot / grub и убедиться, что UUID диска соответствует вашему диску и разделам, голосу "insmod part_" и "set root = '(hd0," иметь текстовую строку "gpt". Если все Хорошо, скопируйте "grub.cfg" в "efi / grub" на системном разделе EFI. Если что-то, о чем я упоминал ранее, не совпадает, просто отредактируйте grub.cfg и вручную измените их значения. Затем скопируйте файл в " Каталог efi / grub "на системном разделе Efi (все еще должен быть смонтирован в / mnt).

    Затем, когда я перезагрузил систему, появилась новая запись на вкладке Boot в настройке UEFI с именем GRUB2, и я установил ее в качестве параметра загрузки по умолчанию.


Можно ли установить efibootmgr при установке без EFI? Все еще действительно необходимо скомпилировать grub2 из исходного кода? Восстановление загрузки является еще одним вариантом, но опять-таки имеет различные показатели успеха из-за разных поставщиков, которые по-разному реализуют спецификации UEFI. Это также означает, что «Сделать запуск встроенного ПО GRUB2 (U) EFI по умолчанию» может быть невозможным для некоторых машин.
geezanansa

Вау, это старый ответ. Я хотел бы спросить, что вы упоминаете в новом вопросе, поскольку с тех пор многое изменилось, и в некоторых случаях, над которыми я работал, часть о реализациях различных поставщиков выходит из-под контроля.
Луис Альварадо

Если ответ, который вы ищете, не найден здесь, то (и, поскольку вы - ОП), это не обман, потому что я предполагаю, что вы еще не нашли ответ, который ищете. Помимо этого, есть много похожих вопросов, связанных с этим, которые на самом деле так или иначе различаются в том, как обойти весь материал EFI, который мы видели за последние 6-12 месяцев.
Луис Альварадо

1
Хотя одно можно сказать наверняка - общий знаменатель = GRUB
geezanansa

Так как же установить grub с поддержкой UEFI на USB-накопитель из системы, отличной от uefi ???
trusktr

5

Чтобы убедиться, что ваш компьютер поддерживает U / EFI, просто запустите его dmesg | grep EFIиз терминала во время сеанса рабочего стола.
Чтобы убедиться, что установленная Ubuntu загружена с использованием U / EFI, посмотрите, что /sys/firmware/efiвозвращается.
Решение, позволяющее сэкономить время, - убедиться, что Ubuntu действительно загружается в режиме UEFI во время установки . Ссылка на новый раздел 2.4 Руководства по Ubuntu UEFI блестяще иллюстрирует это

Определение, загружает ли компьютер компакт-диск в режиме EFI.

Предупреждение: даже если ваш компьютер загружает компакт-диск в режиме EFI, он может загрузить жесткий диск в устаревшем режиме (и наоборот).

При загрузке на 64-битном диске Ubuntu:

  • Если BIOS настроен для загрузки компакт-диска в режиме EFI, то вы увидите экран ниже:

Режим UEFI

  • Если BIOS НЕ настроен для загрузки компакт-диска в режиме EFI или если диск не 64-разрядный, вы увидите экран ниже:

Режим BIOS

Обязательно используйте то же руководство, о котором идет речь, чтобы убедиться, что жесткий диск загружается также с использованием UEFI. Это может быть так же просто, как установка SATA в AHCI, но зависит от используемой вами прошивки.

Как только вы попадаете на экран grub, вы можете перейти к строке команд, нажав «c», и попытаться lsefisystabуказать таблицу записей EFI с GUID, что является еще одним удобным способом определить, используется ли UEFI ДО установки.

Можно использовать, dmesg | grep EFIчтобы определить, поддерживает ли ваша машина UEFI. На одной из моих машин, которая не поддерживает U / EFI, но это дает мне UEFI способен?
возможность ввести в заблуждение, поскольку выполнение одной и той же команды на машине с UEFI вернет намного больше строк (возможно, 50+) при загрузке с использованием EFI. Я нашел этот простой совет в rodsbooks (ссылка для rEFInd, которая является альтернативой использованию Grub2). Веб-страницы rodsbooks регулярно обновляются и являются очень надежным источником информации. Автор которого - профессор UEFI, если не сказать больше, если не гений!

Обращение к родословным книгам на этой странице показывает, что Ubuntu 11.10 создает ESP с файловой системой FAT16, в то время как в некоторых прошивках UEFI требуется ESP с файловой системой FAT32. Вы найдете полное объяснение, если сделаете Ctrl+ Fи поищете Fedora на связанной странице в этом параграфе (нажмите «Далее» один раз в «строке поиска», чтобы перейти непосредственно к информации, на которую ссылаются).
Принимая во внимание тот факт, что для безопасной загрузки требуется UEFI-спецификация => UEFI 2.2, а предустановленные компьютеры под управлением Windows 8 будут использовать UEFI 2.3.1.
Все это подтверждает, что Ubuntu 11.10 не поддерживает безопасную загрузку, поэтому безопасная загрузка не является проблемой.

Это возможно после использования UEFI для установки Windows, которая может использовать только GPT при использовании UEFI; что Ubuntu устанавливается с использованием настроек BIOS / прежних версий из-за недостатков установщика. то есть Ubuntu может устанавливать на GPT, используя как BIOS, так и UEFI, что приводит к необходимости переключения настроек прошивки для загрузки каждой ОС.

Чтобы определить, использует ли Windows UEFI, необходимо использовать управление диском для подтверждения использования GPT. С помощью этого руководства можно преобразовать установку Windows Bios в UEFI. Преобразование установки Windows BIOS в UEFI

Одним из простых решений является запуск Boot-repair-disk (загрузка cd .iso будет означать немного более быструю загрузку по сравнению с использованием полного Ubuntu.iso, а затем установку boot-repair. Проверьте расширенные параметры перед запуском рекомендуемого исправления, учитывая, какие настройки прошивки вы использовали для загрузки boot-repair. Boot-Repair установит grub-efi и исправит проблемы аппаратного кодирования прошивки, чтобы система использовала UEFI и загрузку Ubuntu, а также любые другие существующие установки с использованием UEFI.

Важной частью (которая может зависеть от поставщика) является способ загрузки в режиме EFI (т. Е. Один и тот же компакт-диск Ubuntu 14.04 LTS может обнаружить два разных режима и отобразить различный текстовый и нетекстовый загрузочный экран, как показано выше).

http://forum.hardware.fr/hfr/OrdinateursPortables/portable/resolu-installation-probleme-sujet_67937_1.htm

или это:

http://rog.asus.com/220572013/rampage-motherboards/rampage-iv-uefi-boot-installation-guide-on-windows-7-or-8/

Обратите внимание, что при настройке BIOS для приоритетов загрузки обычно есть два разных варианта для DVD: Px или UEFI (или некоторые другие слова). Один из них предназначен для UEFI, а другой - для устаревшей загрузки на основе MBR.


3

Решил проблему с EFI на моем ноутбуке ACER 5560G, оказалось, что переименование каталога EFI и файла EFI на USB-диске Wubi работает (спасибо immerohnegott).

Это вынудило обычную установку GRUB на 2 готовых раздела с GParted на флешке. Партитоны были:

  • /boot (100 мб)
  • / (70 ГБ)

Перезагрузитесь в Windows 7 и установите бесплатную версию EasyBCD. Добавьте новую запись, Linux -- >> Grub 2и она будет искать во всех разделах загрузчик GRUB.

Таким образом, раздел Windows System Reserved и скрытый раздел PQSERVICE Acer не затрагиваются.


Спасибо. Я отказался следовать указаниям Луиса Альварадо, и этот простой способ сделал это для меня. Я не говорю, что ответ Луиса неправильный, но если мне придется приложить столько усилий, чтобы запустить Ubuntu, я бы предпочел использовать Windows. Да, я сказал это. Итак, ребята, попробуйте это, прежде чем пытаться создать свой собственный Linux с нуля. Это может избавить вас от необходимости выбивать плату UEFI и USB-ключ Ubuntu из окна mf.
Габриэль

Самое первое предложение вашей ссылки «Это относится только к системам, в которых Windows НЕ работает в режиме EFI» ... хмммм.
geezanansa

2

Вы можете сделать загрузочные USB-накопители, которые работают с системой EFI, я не такой опытный, как некоторые из вас, поэтому я нашел способ, который прост и работает :)

В машину с биосом EFI вставьте CD / DVD с Parted Magic (он у меня был на загрузочном CD HIREN, который я записал на CD вместо USB). Загрузитесь с этого CD / DVD.

Подключившись к Parted Magic, вставьте пустой USB-накопитель объемом не менее 2 ГБ. Откройте утилиту Unetbooten, которая входит в состав Parted Magic. Запустите программу и выберите любой дистрибутив, который вы пытаетесь загрузить на диск. Следуйте инструкциям и дождитесь его завершения.

Этот USB-накопитель должен загрузиться в любой системе EFI. По крайней мере, у меня это сработало: oP


Unetbootin - отличный способ создать установочный носитель USB. Я также могу порекомендовать утилиты pendrivelinux, в состав которых входит универсальный установщик USB ( pendrivelinux.com/universal-usb-installer-easy-as-1-2-3 ). Эти инструменты просто предоставляют графический интерфейс для .iso и дисковода для форматирования (FAT32), который легко достигается с помощью CLI, если вы уже несколько раз тренировались. Это все еще не решение для запуска установщика Ubuntu с использованием U / EFI. то есть iso одинаковы независимо от того, какой носитель используется, будь то DVD или USB. Проблема заключается не в том, какой носитель использовался для его установки.
geezanansa

1

Вам нужно выяснить, как заставить ваш BIOS загружать установочный компакт-диск в режиме EFI, а не в режиме BIOS. Вы будете знать, что это загрузка в режиме efi, потому что вы получите меню grub вместо обычного syslinux.


Я думаю, что это уже загрузка в режиме EFI. Я получаю меню GRUB. НЕ обычное полуграфическое меню с логотипом Ubuntu. Просто черно-белое меню GRUB с тремя опциями: - попробуйте ubuntu перед установкой - INstall ubuntu - проверьте на наличие дефектов.
ervingsb

@ervingsb, который должен сделать это тогда, предполагая, что вы сказали установщику использовать весь диск, а не создавать разделы вручную.
psusi

1
Ну, это не так. Я отказался от установки через USB. Кто-то на форумах Ubuntu предложил мне установить с CDROM вместо USB. Это заставило это работать.
ervingsb

1

Таким образом, я столкнулся с проблемой установки Ubuntu 14.04 на Lenovo ThinkCentre M91p, и у меня есть быстрое / простое решение:

  1. Перед загрузкой с установочного диска / USB Ubuntu перейдите в BIOS и на вкладке «Автозагрузка» измените «Режим загрузки» с «Авто» на «Legacy».
  2. Установите Ubuntu.
  3. Если хотите, измените Boot Mode в BIOS обратно на Auto.

Это работает последовательно для меня.

Я уверен, что это работает, потому что установщик Ubuntu определяет, поддерживает ли BIOS EFI или нет, когда решает, какой загрузчик установить. Установив BIOS на устаревшую версию, Ubuntu заканчивает тем, что устанавливает старый загрузчик, который работает с этими машинами Lenovo.


1

В настройках BIOS измените режим жесткого диска на IDE и загрузитесь с флэш-накопителя USB. Он будет установлен в режиме, отличном от UEFI, и загрузка после установки также будет работать нормально.

Этот конкретный метод отлично работает для меня с Ubuntu 16.04 на Lenovo ThinkCentre Edge 71 с последней версией BIOS.


1
Добро пожаловать в топ аскубунту! Спасибо за попытку помочь! Поскольку этому посту несколько лет, и вопрос касается версии, которая больше не поддерживается и на которую есть несколько ответов, я уверен, что сообщество будет признательно, если вы сосредоточите свои усилия [здесь] askubuntu.com/unanspted )
Старейшина Гик

Спасибо за мысли - однако я столкнулся с этой публикацией, потому что я столкнулся с этой проблемой с последней поддерживаемой версией, которая была исправлена, следуя шагам, которые я предоставил. Если вы можете предложить более новую публикацию, описывающую ту же проблему, я был бы рад опубликовать там тоже.
Грегг Б.

Если вы столкнулись с этой проблемой в текущем выпуске, измените свой ответ, чтобы указать, какую версию вы использовали, чтобы помочь тем, кто столкнулся с той же проблемой и выпуском, найти ваш ответ. Спасибо!
Старейшина Гик

Это то, на что уже ссылается мой ОП "16.04": последняя и самая последняя версия LTS. Что еще вы хотели бы мне отредактировать?
Грегг Б.

Извините, что пропустил это. +1
Старейшина Гик

0

У меня была похожая проблема.

Что я испытал, так это то, что компьютер с EFI также оснащен BIOS. Я спамил F2 как сумасшедший, случилось то, что у меня был выбор - использовать EFI или стандартный BIOS.

Однако будьте осторожны, если вы используете BIOS, компьютер загрузится с сообщением: «ОС не найдена».

Таким образом, вы можете отформатировать свой компьютер оттуда и заставить его загружаться как обычный компьютер.


0

У меня была та же проблема ... я купил этого нового зверя Lenovo на рабочем столе и столкнулся с той же проблемой, я не хотел WIN 8.1 на нем вообще, (я имел дело с Linux с Red Hat 6.1) Однако я не был знаком с UEFI / EFI вообще. ПК даже загружает liveCD. После того, как я нашел информацию об этом в этом блоге, я обнаружил, что вам нужно изменить несколько вещей в UEFI / EFI / BIOS, сначала отключить CSM и выбрать «Legacy only» в параметрах загрузки. Перезагрузка и бум! я был в . Установил Ubuntu 12.04, мне было хорошо идти. Позже я обнаружил, что 12.04 НЕ БУДЕТ загружаться после возврата тех же настроек обратно на «UEFI Only», ошибка «ОС не найдена». Насколько я понимаю, Ubuntu начал поддерживать этот UEFI в 12.10, я обновил его до 13.04, изменил те же настройки, включил CSM. И только UEFI, и вуаля! Я загрузился с UEFI и заметил, что машина работает намного лучше! Вам не нужно заново устанавливать UEFI, просто обновите до 13.04/10, вернитесь обратно к UEFI, но это сработало для меня ... Не могу дождаться, чтобы увидеть, что Linux делает с этой довольно новой функцией UEFI / EFI, здесь есть некоторый потенциал


Пожалуйста, отредактируйте свой ответ и постарайтесь сделать его более читабельным, добавив абзацы внутри его тела. Кроме того, пара ссылок будет здорово.
Данатела

0

Я решил эту проблему, я использую Ubuntu 16.04 и Windows 10, и я не могу автоматически загрузиться с моей Ubuntu. Мой раздел EFI - FAT32

Убедитесь, что ваш раздел Ubuntu первым порядком загрузки,

$ sudo su
# cd /boot/efi/EFI/Boot
# mv bootx64.efi bootx64_.efi
# cp ../ubuntu/shimx64.efi bootx64.efi
# cp ../ubuntu/grubx64.efi grubx64.efi
# update-grub
# reboot

-2

Та же проблема здесь. Я «решил» это путем постоянной загрузки с моего SuperGrub CD. Я не против сделать это таким образом. Я вижу это как функцию безопасности; мой SuperGrub CD - это мой дополнительный ключ. Когда я проверяю свои жесткие диски в Ubuntu, я вижу, что Ubuntu-HDD не является MBR-диском. Похоже, перераспределение этого диска, добавление MBR решит проблему, но я слишком ленив, чтобы пройти через все эти проблемы.


Неявно задается вопрос: «Как загрузить Ubuntu с помощью U / EFI?» Вы можете обнаружить, что MBR связаны с дисками MSDOS, а U / EFI использует диски GPT. Ubuntu имеет возможность использовать GPT при использовании раздела grub_bios, что означает не режим UEFI для загрузки, а режим BIOS / legacy на диске GPT. Windows будет загружаться только с использованием UEFI на GPT-диск. Это означает, что в системе с двойной загрузкой использование UEFI для Windows и bios_grub (MBR) для Ubuntu означало бы загрузку Windows, но не Ubuntu, поскольку в настройках прошивки для загрузки Ubuntu потребуется отключить UEFI. Так же, как описывает OP ...
Geezanansa
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.