Как заставить мой ноутбук HP загружаться в grub из моего нового файла efi?

28

У меня есть ноутбук HP Pavilion Sleekbook 14, на котором я установил двойную загрузку Ubuntu 12.10 с оригинальной Windows 8. Я использовал boot-repair, чтобы настроить загрузку в grub.

Моя проблема в том, что я не смог загрузить его прямо с нового файла EFI, который был создан. Я просмотрел параметры загрузки на экране BIOS, но это не дает мне выбора для Ubuntu. Единственный способ загрузки в Ubuntu - это нажать F9 при включении системы, а затем вручную перейти к файлу Ubuntu EFI. Это работает, но если я не обращаю пристального внимания, он загрузится в Windows.

После того, как я закончил запуск boot-repair, он сказал мне загрузиться с sda2 / EFI / ubuntu / shimx64.efi. Я видел некоторые предложения о том, что мне следует переместить этот файл вместо windows bootmgfw.efi, но я обеспокоен тем, что буду сломать вещи и не сможет загрузиться с установкой windows 8. Хотя я уже не люблю win8 даже больше, чем win7, он время от времени мне нужен для пары задач ...

Подробная информация о моем ремонте загрузки здесь: http://paste.ubuntu.com/1418009/

maddentim
источник
shimx64.efi работал для меня, хотя в моем случае Ubuntu Gnome не загружался после установки и должен был выбрать файл, создав новый параметр загрузки в BIOS.
Тимкофу
Здесь есть масса ответов о Windows, вы пытаетесь загрузить Linux или Windows?
Эван Кэрролл
много плохих ответов, излишне сложных, из-за проблем с Windows, просто переименуйте efi grub из ответа sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi@Vitor Abella
Эван Кэрролл,

Ответы:

29

У меня была такая же проблема с моим HP Pavilion g6 при попытке двойной загрузки Ubuntu 12.04.3 LTS и Windows 8. То есть, даже после «успешного» запуска Boot-Repair у меня все равно была загрузка ноутбука непосредственно в Windows 8. Если я Я нажал клавишу F9, прежде чем появился символ HP, и я смог войти в меню загрузки (меню HP? Я не знаю ...) и оттуда выбрать пункт «Ubuntu», что, в свою очередь, привело меня к GRUB. 2 и, наконец, к моей установке Ubuntu.

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

В конце концов, ответ Рода Смита выше , в сочетании с информацией, которую я нашел на другом форуме, помог мне. У меня отключена безопасная загрузка и Legacy Boot.

Вот что я сделал:

  • Я загрузился в свою установку Ubuntu, используя хитрость клавиши F9 при запуске, чтобы иметь возможность выбрать загрузчик.
  • Оказавшись в Ubuntu, я открыл терминал.
  • Используя команду ниже, я проверил, где находится загрузчик Windows:

    $ sudo efibootmgr -v
    
  • В моем случае, оригинальный загрузчик был здесь: /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi. Обратите внимание, что на вашем компьютере это может быть в другом месте. Если это так, вам нужно будет настроить команды ниже.

  • Согласно рекомендации Рода в его ответе (о том, как вручную восстановить загрузчик), я сделал резервную копию этого файла, переместив его на один уровень вверх:

    $ sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi
    
  • Наконец, я скопировал загрузчик GRUB2 в этом месте, «обманывая» систему, чтобы загрузить желаемый загрузчик вместо оригинального загрузчика Windows.

    $ sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    

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

Надеюсь, это кому-нибудь поможет. Пожалуйста, дайте мне знать, если есть какие-либо проблемы с моим решением.

mairabc
источник
9
Спасибо, это помогло, однако я не смог загрузиться в Windows. При запуске он запускает GRUB, а в GRUB опция «Диспетчер загрузки Windows» снова переходит в меню GRUB (вероятно, это связано с тем же файлом .efi). Это выглядело так , хотя мне не повезло с ремонтом ботинок. Я решил эту проблему, перейдя в Ubuntu, в /etc/grub.d/, заполнив файл 40_custom, скопировав запись загрузки Windows, которая была у меня в моей вставке ubuntu, и отредактировав URL-адрес файла .efi, чтобы указать на резервную копию bootmgfw.efi. Таким образом, меню содержитchainloader /EFI/Microsoft/bootmgfw.efi
Винс
1
что меню не работает для меня
Пьер
@Pierre May: Может быть, вам подойдет следующий пункт меню: menuentry 'Real Windows' {set root = (hd0, gpt2) chainloader /EFI/Microsoft/bootmgfw.efi} (это предполагает, что ваш раздел efi находится на первом жесткий диск, на sda2. Чтобы убедиться, что вы можете набрать «c», когда вы находитесь в grub, и набрать «ls», чтобы увидеть доступные разделы
tobiasBora
12

Я столкнулся с той же проблемой на HP ProBook 4340s с оригинальной Windows 8, уже перезаписанной новой Kubuntu 15.04 (я не предпочитаю двойную загрузку). Среди других попыток я также попробовал Boot-Repair (как с HD после его установки, так и через boot-repair-disk ), но это упражнение, скорее всего, было ненужным.

Трюк заключался в следующих изменениях в BIOS Setup (после запуска компьютера нажмите F10 - перейдите в System Configuration - откройте Boot Options ):

  1. Проверьте настроенную загрузку

  2. Отключите SecureBoot

  3. Режим загрузки : выберите UEFI Hybrid или UEFI Native (я выбрал UEFI Native)

  4. UEFI Boot Order : поместите настроенный Boot наверх

  5. Определить индивидуальный вариант загрузки : выберите « Добавить» + введите настройки:\EFI\ubuntu\grubx64.efi

Мы нашли правильную строку пути при открытии GRUB через опцию Boot from EFI File в параметрах быстрой загрузки (F9). В начале список опций содержал:

  • Диспетчер загрузки ОС
  • Загрузка из EFI File

После добавления опции Customized Boot он был добавлен в список:

  • Индивидуальные загрузки
  • Диспетчер загрузки ОС
  • Загрузка из EFI File
michal_za
источник
Сделал именно это здесь, на hp zbook 15, не повезло
cmbarbu
Если вы используете систему UEFI и устанавливаете UBUNTU 16.10 после Windows 10, то этот ответ является правильным
leoredi
спасибо, я был готов это сделатьDefine Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi
m3asmi
6

UEFI Hewlett-Packard уже некоторое время испытывает душевную боль. Ваше исправление помогло мне перезагрузить ноутбук HP в GRUB снова - без предварительного нажатия клавиши F9.

У меня была одна проблема: после вашего исправления я мог выбрать Windows 8 в GRUB, но затем Windows 8 отказалась запускаться, и мне снова показали меню GRUB.

Мое исправление:

  1. Копирование исходного efi-файла Microsoft в /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
  2. Редактирование /boot/grub/grub.cfgдля распознавания переименованного Microsoft efi-файла

Ноутбук теперь загружается на GRUB, Ubuntu и Windows 8 теперь нормально запускаются с GRUB.

Арьен де Брюн
источник
5

Обычно при запуске Boot Repair выполняется резервное копирование исходного файла загрузчика Microsoft ( bootmgfw.efi) с bootmgfw.efi.bkpзаменой исходного bootmgfw.efiфайла на копию GRUB (или шимма), и выложенный вами вывод Boot Repair показывает это; однако, я не вижу такого файла резервной копии. Таким образом, я рекомендую вам сделать одну из трех вещей:

  • Снова запустите Boot Repair, но поищите варианты, связанные с резервным копированием и заменой загрузчика Microsoft. Активируйте эти опции, чтобы продолжить процесс. GRUB может или не может запускать Windows; это кажется ударом или промахом - и больше «промахом», если вы оставите Secure Boot активным.
  • Сделайте работу вручную: из Linux, сделайте резервную копию /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi выполните (я рекомендую переместить его на один уровень, /boot/efi/EFI/Microsoft/bootmgfw.efiа не переименовывать в него bootmgfw.efi.bkp, поскольку последний нестандартен и не позволяет обнаружить другие инструменты, кроме Boot Repair и Ubuntu GRUB). Скопируйте /boot/efi/EFI/ubuntu/grubx64.efiна свое место; или если вы планируете сохранить безопасную загрузку, скопируйте /boot/efi/EFI/ubuntu/shimx64.efiее на место и скопируйте grubx64.efiв/boot/efi/EFI/Microsoft/Bootиспользуя свое оригинальное имя. Затем вам нужно будет изменить конфигурацию GRUB, чтобы он мог запускать загрузчик Windows в новом месте или под новым именем. (Я слышал, что GRUB пока не может запустить загрузчик Windows в режиме безопасной загрузки, поэтому, если вы хотите запустить Windows из GRUB, вам может потребоваться отключить безопасную загрузку. ОТО, я никогда не пробовал сам поэтому я могу ошибаться в отношении возможностей GRUB в этом отношении.)
  • Отключите безопасную загрузку, затем загрузитесь в Linux и установите мой менеджер загрузки rEFInd с помощью пакета Debian. Как только это будет сделано, введите sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot. Последняя команда перемещает и переименовывает файлы способом, аналогичным ручной процедуре, которую я только что описал, или тому, что делает Boot Repair, но она устанавливает rEFInd как загрузчик по умолчанию, а не GRUB. Если вы хотите использовать безопасную загрузку, вы сможете сделать это, манипулируя файлами и устанавливая новую версию shim (shim в Ubuntu достаточно ранний, чтобы он не работал должным образом с rEFInd). Таким образом, установка rEFInd позволяет вам загружаться без использования GRUB, а сочетание сценария установки (выполняемого системой пакетов при установке пакета Debian) и mvrefind.shсценария позволяет обойти возникающие проблемы.

Кстати, проблемы, с которыми вы сталкиваетесь, связаны с известными ошибками в реализации EFI HP. По сути, прошивка жестко запрограммирована для загрузки с загрузчика Microsoft и затрудняет или делает невозможным загрузку с чего-либо еще. Я настоятельно рекомендую вам обратиться в HP по этому поводу; они не решат такие проблемы, если люди не будут жаловаться.

Из трех решений, использование Boot Repair, вероятно, будет самым легким для работы; но, как я заметил, нестандартное именование, которое использует Boot Repair, может в будущем привести к проблемам для других утилит. Ручная регулировка потребует больше усилий, чтобы начать работать, но в конечном итоге будет чище. Некоторые люди сообщают о проблемах с загрузкой GRUB для загрузки загрузчика Windows, поэтому любой из этих вариантов может вызвать головную боль на этот счет. У rEFInd гораздо больше шансов загрузить Linux или Windows без проблем, но, как вы можете заметить из процедуры, для ее работы, вероятно, потребуется немного больше усилий, чем для повторного запуска Boot Repair, хотя, вероятно, меньше, чем для ручного перемещения файлов. Использование rEFInd в сочетании с Secure Boot требует большего количества прыжков с обруча в данный момент. (Подробности см. В документации REFInd.

Во всех трех решениях присутствует риск; Реализации EFI слишком сильно различаются между собой, что означает, что автоматизированная или ручная процедура, которая хорошо работает на одном компьютере, может с треском провалиться на другом. Чтобы защитить себя, я рекомендую создать резервную копию вашего ESP (обычно /boot/efiпод Linux); просто упакуйте файлы в архив или скопируйте их в каталог резервных копий. Если что-то идет не так, как надо, вы можете загрузить аварийный диск и восстановить файлы. Это, вероятно, заставит компьютер загрузиться снова.

Род Смит
источник
Большое спасибо! Я еще не пробовал ни одного из ваших вариантов, но сделаю это в эти выходные.
Маддентим
Ваш менеджер загрузки rEFInd выглядит интересно. Итак, вы говорите, что я могу отключить Secure Boot и все еще использовать Win8? У меня есть один вопрос: когда я пытался выполнить tar / boot / efi, tar выдал мне ошибки в некоторых файлах в папке ubuntu. У них странные имена, такие как 'ame = "App.lic'. См. Строки с 809 по 817 в paste.ubuntu.com/1418009 Эта последняя установка была фактически моей третьей попыткой. Я думаю, что они являются мусором и могут быть удалены. Что вы Подумайте? Я вернусь после того, как
выполню
Я видел несколько сообщений о людях, которые отключили безопасную загрузку и не имели проблем с загрузкой Windows, так что это не проблема. Если вы хотите оставить его включенным для обеспечения безопасности, это понятно, но вам не следует беспокоиться о том, что Windows не загружается. Что касается вашей tarошибки, похоже, что в скрипте была ошибка и были созданы файлы со странными именами. Я не замечал этих файлов в вашем выводе раньше, но вполне возможно, что любая ошибка, созданная ими, также отвечает за ваши проблемы с загрузкой. Если это так, использование rEFInd может обойти проблему, но другие решения могут потерпеть неудачу.
Род Смит
rEFInd не был успешно установлен. Я думаю, что LovinBuntu определил проблему. / boot / EFI только для чтения. Вот часть вывода: mkdir: невозможно создать каталог /boot/efi//EFI/refind': Read-only file system cp: cannot create regular file /boot/efi//EFI/refind/refind_x64.efi ': такого файла или каталога нет. Установка драйвера для ext4 (ext4_x64.efi) mkdir: невозможно создать каталог `/ boot / efi // EFI / refind ': файловая система только для чтения. Скопированные двоичные файлы rEFInd
madendtim,
3

Я потратил день на ту же проблему и наконец решил ее. Ниже приводится точное решение. Полная статья для решения проблемы здесь, которая написана Родом Смитом .

Полезная информация

Для загрузки в таблицу разделов GPT с загрузчиками EFI. efiфайлы создаются операционными системами во время установки, которые должны быть предоставлены биографии UEFI компьютера, чтобы дать ему возможность загружаться в их основные операционные системы.

Для хранения файлов EFI нам нужно иметь один раздел EFI. Обычно это раздел размером менее 200 МБ в fat32формате с меткой EFI system. Он включает в себя .efiфайлы и их зависимости (в форме .dllили .efi), необходимые для загрузки в любой из загрузочных разделов (обычно операционных систем). На моем компьютере этот раздел имеет структуру, показанную следующей схемой:

\EFI
   |_Boot
     |_fw
   |_Microsoft
     |_Boot
     |_Recovery
   |_Ubuntu
     |_fw

Обычно .efiфайлы могут иметь любое имя, но кажется, что некоторые компьютеры ищут конкретные имена. Поэтому я упоминаю и стандартные имена.

  1. BootПапка: Is распознается как вариант загрузки по умолчанию и если NVRAM по какой-либо причине стирается. Это будет использоваться по умолчанию. Загрузчик efi называется «bootx64.efi». Если вы хотите выбрать загрузчик efi по умолчанию, скопируйте ваш файл efi и все файлы вокруг него в папку загрузки и переименуйте файл efi вашего источника в «bootx64.efi».

  2. MicrosoftПапка: содержит загрузочные файлы Windows EFI. Существует несколько файлов efi, но основным является "efibootmgfw.efi". Я уверен, что это используется Windows для загрузки.

  3. UbuntuПапка: содержит файл Ebui Ubuntu или Mint. Есть несколько .efiфайлов, но основнойgrubx64.efi

что делать?

Уже есть некоторые параметры загрузки, которые устанавливаются во время установки операционной системы. Тем не менее, они могут быть недоступны из параметров загрузки BIOS по различным причинам, таким как удаление и переустановка жесткого диска или установка новой операционной системы или даже нового аккумулятора материнской платы. Есть два решения для восстановления параметров загрузки.

  1. (Не рекомендуется) Как описано в некоторых ответах, мы можем заменить работающий вариант загрузки на тот, который не работает. Но проблема остается в другом.

  2. Зарегистрируйте отсутствующий файл загрузчика EFI вручную.

Как сделать?

  1. Загрузка с загрузочной флешки Linux (я использую загрузочную флешку Linux Mint). Это должно быть EFI USB. (GPT USB, который может быть создан такими программами, как rufus)

  2. Смонтируйте раздел EFI, ваш дистрибутив может сделать это автоматически. Пропустите этот шаг, если /bootон доступен и показывает структуру, аналогичную приведенной выше. Современные Ubuntu должны сделать это для вас.

    1. Найдите адрес вашего раздела EFI. Это может быть сделано с помощью partedкоманды или Disksпрограммы. Обычно это первый или второй раздел загрузочного диска. ( /dev/sda1Или /dev/sda2) Этот раздел обычно составляет от 100 МБ до 200 МБ с FAT32 и типом раздела EFI System.

    2. Смонтируйте раздел EFI. Вы можете использовать dfкоманду, чтобы проверить, смонтирован ли раздел раньше.

      df  /boot/efi
      

      Если раздел не был смонтирован ранее (не показано в предыдущей команде) Смонтируйте раздел с помощью mount команды:

      mount  /dev/sda1  /boot/efi
      
  3. Теперь, если вы просматриваете, /boot/efiвы увидите структуру файла, похожую на мою, описанную выше. Проверьте, можете ли вы найти папку с вашей потерянной операционной системой. В моем случае биос компьютера мог видеть только вариант загрузки Windows, однако у меня также была опция загрузки Grub Linux Mint.

    • (Не рекомендуется) Мой вариант загрузки Windows работал, поэтому сначала для целей тестирования я сделал резервную копию папки Microsoft, которая содержит кучу файлов вместе с загрузочным EFI-файлом Windows. ( bootmgfw.efi) Затем я переименовал папку Ubuntu в Microsoft, затем я переименовал grubx64.efiв bootmgfw.efi. После перезагрузки вместо загрузки в Windows загружается меню grub, однако в этот раз загрузка в windows была возможна только с grub. И прямая загрузка в windows была невозможна.

      sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
      
    • ( Рекомендуемый способ ) Просто напишите адрес efi-файла, который вы хотите, чтобы соответствующая операционная система была отображена в параметрах загрузки BIOS. В моем случае Linux Mint отсутствовал в списке загрузки BIOS компьютера. Адрес его файла /efi/ubuntu/grubx64.efiEFI был относительно корня раздела EFI. Затем я зарегистрировал его в NVRAM с помощью команды efibootmgr .

      efibootmgr -c -d /dev/sda -p 1 -l \\efi\\ubuntu\\grubx64.efi -L nameForBootOption
      

      в p 1части команды 1 определяет номер раздела efi на данном диске. nameForBootOptionэто пользовательское имя, данное опции загрузки

* Позаботьтесь, чтобы написать правильный адрес. При монтировании раздела в linux. Он монтирует раздел в какую-то папку под корнем, что расширяет реальный адрес до чего-то вроде, /media/mint/CC1F-9708/EFI/ubuntuно нам нужно только дать /EFI/ubuntuчасть.

* Disksпрограмма - замечательный графический инструмент, который по умолчанию находится на загрузочной флеш-памяти Linux Mint. Его можно использовать для проверки и поиска раздела EFI, а также для монтирования раздела EFI без использования команды mount или parted. Вам нужно только найти его в меню, Настройки, Диски.

Текын
источник
Пошел не рекомендуемым способом. Работал отлично.
Эван Кэрролл
1

Вы подвержены этой ошибке: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477

Решение:

  1. через Gparted создайте еще один раздел EFI (FAT32, 200 МБ, расположенный внутри первых 100 ГБ диска)
  2. переместить флаг загрузки
  3. Заставьте Ubuntu использовать этот новый ESP (например, через Boot-Repair -> Recommended Repair).
LovinBuntu
источник
Что ж, создание еще одного ESP внутри первых 100 ГБ означает перемещение раздела win8 на 200 МБ ... Думаю, нужно быть осторожным. Может сломать загрузку Windows. Может быть, я должен просто сдуть это. Мне даже не нравится это все равно. Мне только нужно это смотреть netflix!
Маддентим
Обновите Boot-Repair (пакеты «boot-sav» и «boot-repair»), затем запустите рекомендуемое восстановление и укажите новый URL-адрес, который появится.
LovinBuntu
сделанный. paste.ubuntu.com/1562554
Маддентим
1

Я столкнулся с подобной проблемой после установки Cent-OS 7 поверх Windows 10. Вот нижеприведенный процесс, которому я следовал.

  • Начальная ОС была Windows 10
  • установлен Cent-OS 7 с использованием UEFI USB, созданный Rufus

проблема: загружалась windows 10 и даже не отображалось загрузочное меню центов ОС.

  1. Как я решил:
  2. пошел в биос
  3. включена устаревшая загрузка (только дополнительный шаг для будущих мер предосторожности)
  4. перейти к настройкам загрузки
  5. нажмите менеджер загрузки ОС
  6. Переместите CentOS UEFI над окнами: нажмите f10, чтобы сохранить
  7. нажмите OD bootmanager еще раз и проверьте его.
  8. нажмите f10, чтобы сохранить и выйти

Теперь ваша система загрузится в centos UEFI

так как мы включили устаревшую загрузку, мы можем выбрать клавишу Esc, чтобы перейти к BIOS или другим параметрам загрузки

abhirathore2006
источник
1

Я нашел способ заставить мой HP Pavilion g7-2269wm (UEFI) загружать rEFInd (GRUB также возможен) без замены bootmgfw.efi на rEFInd или GRUB

Я установил rEFInd и добавил rEFInd в список менеджеров загрузки, используя sudo efibootmgr -c -d /dev/sda -p 2 -L "rEFInd" -l "\EFI\refind\shimx64.efi"

Перезагрузка с помощью F9, чтобы выбрать rEFInd, а затем выбрал Ubuntu.

Затем переименован bootmgfw.efiв bootmgfwms.efiиспользование

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi

Затем я перезагрузился, и он перезагрузился в rEFInd без использования F9. Запись Windows 10 теперь отсутствовала, поэтому я выбрал Ubuntu.

Затем, чтобы вернуть запись Windows 10, я запустил

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi /boot/EFI/EFI/Microsoft/Boot/bootmgfw.efi

Затем я перезагрузился, и REFInd приходит без нажатия клавиши F9, и Windows 10 отображается как запись.

Суичи Дога
источник
1

Это еще один ответ для Майрабка для тех, кто, как Винс или я, не может загрузиться в Windows. Вам понадобится fs_uuid:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/bootmgfw.efi

и строка hints_string:

# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/bootmgfw.efi

Затем вы должны отредактировать файл /etc/grub.d/40_custom так:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root your_hints_string your_fs_uuid
    chainloader /EFI/Microsoft/bootmgfw.efi
}

Сохраните это и сделайте

# update-grub

перезагрузиться в windows ...

пьер
источник
1

На своем ноутбуке HP я сделал шаг за шагом:

1 - загрузиться в Ubuntu с F9

2 - Проверьте, где находится загрузчик Windows

sudo efibootmgr -v

В моем случае /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

3 - Резервный файл .efi:

sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi

4 - Замените оригинальный файл .efi на файл Ubuntu ( хитрость ):

sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

5 - Добавить windows 10 menuentry на grub. Откройте /etc/grub.d/40_customи добавьте этот пункт меню в конец файла:

menuentry "Windows 10 click here!" {
    search --set=root --file /EFI/Microsoft/bootmgfw.efi
    chainloader /EFI/Microsoft/bootmgfw.efi
}

6 - Сохранить 40_customи:

sudo update-grub

7 - на биосе отключить безопасную загрузку (не уверен, нужна ли она)

8 - Если все прошло нормально, по умолчанию загрузится на Ubuntu и Windows 10 будет другой опцией в grub.

Это было проще, чем я думал.

Витор Абелла
источник
sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efiработал отлично.
Эван Кэрролл
@EvanCarroll, ты думаешь, я должен улучшить свой ответ? Это действительно шаги, которые я делаю.
Витор Абелла
Ну, я не уверен, что этот ответ вообще нужен, если честно. Это много слов, но твой метод там тот же, что и у Текина в нерекомендованном разделе. Но для пользователей, использующих только Linux, этот метод отлично подходит для его простоты.
Эван Кэрролл
1

У меня ноутбук HP 2018 года, 14 дюймов с Windows 10 и двойной загрузкой Ubuntu. Раньше я нажимал F9, чтобы выбрать, какую операционную систему я хотел, и я делал уже несколько недель.

Решение:

  • Завершите работу и нажмите F10, чтобы войти в BIOS

  • Перейдите к той части BIOS, в которой указан порядок загрузки.

  • Нажмите ввод в диспетчере загрузки ОС.

  • используйте F5 или F6 для переключения Ubuntu с Windows.

  • Сохранить и выйти.

Эллиот Раштон
источник
0

Это НЕ проблема Windows! Микропрограмма HP полностью глючная, поскольку она не использует (или даже не поддерживает должным образом) переменную UEFI firmare "BootOrder". Я думаю, что единственное решение этой проблемы - заменить файл загрузчика Windows (как некоторые уже упоминали) на ваш grub.efi.

Йорг
источник
0

Мой сценарий похож на сообщение Августа 19 августа 15: 15: 20: «У меня есть несколько мини-башен HP Pavillion Slimline 400-314, мне не понадобилась предустановленная Windows 8, поэтому я сразу же переделил жесткий диск и установил Ubuntu 14.04 и Grub2.

К сожалению, меню BIOS Pavillion чрезвычайно ограничено в конфигурации загрузки. У этого нет большинства из причудливых выборов, которые большинство других описывают здесь. Даже попытка изменить порядок загрузки не удается.

ЕДИНСТВЕННОЕ решение, которое я получил, - это использовать обходной путь «альтернативного именования», как описано в разделе «Альтернативные решения для именования» этого блога .

сизигия
источник
1
Добро пожаловать в Спросите Ubuntu! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Марк Кирби
0

Я подтверждаю, что действия @Vitor Abella решили проблему двойной загрузки для моего ноутбука HP 2000, за исключением того, что мне нужно будет выполнить одно из следующих действий (как упомянуто @mairabc):

  • включить устаревшую загрузку (по умолчанию безопасная загрузка отключена)

или

  • отключите устаревшую загрузку и включите безопасную загрузку.
VictorL
источник
0

Если вы не хотите перемещаться по загрузочным файлам , попробуйте изменить последовательность загрузки вручную:

Зайдите в Ubuntu вручную и проверьте текущую последовательность загрузки и их ID:

sudo efibootmgr -v

затем измените последовательности загрузки, используя -o и ID (в порядке загрузки слева направо):

sudo efibootmgr -o 0000,3000,0001,2001,2002,2003



Пример :
1. Показать текущие настройки загрузки

$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0001,3000,0000,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

2.Измените порядок загрузки (сначала мы хотим запустить Ubuntu, который покажет загрузочное меню при запуске):
обратите внимание, что первая попытка вызвала ошибку, так как не удалось найти Boot2003 (диск с флоппи-диском?), Как вы видите, это воссоздан после перезагрузки, хотя.

$ sudo efibootmgr -o 0000,3000,0001,2001,2002,2003
Invalid boot order entry value: 0000,3000,0001,2001,2002,2003
                                                         ^
Boot entry 2003 does not exist

$ sudo efibootmgr -o 0000,3000,0001,2001,2002
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

3.Reboot. Теперь должно появиться меню загрузки. (2003 добавляется автоматически):

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC
Deruijter
источник
0

Мое решение реализовано после того, как я узнал, что grub4dos загружается

сделать эту запись в men.lst

title Linux
find --set-root /-name.efi
boot /-name.efi
rustyg8z
источник
0

После установки Ubuntu 14.04 64 bit на ноутбуке HP-15-r248nf с Windows 8, обновленной до 10, что произошло гладко, помимо проблемы с разрывом соединения Wifi с драйвером Realtek Wifi (решена с помощью echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf), компьютер все еще загружался под Windows.

Ubuntu через grub стал доступен только при использовании клавиши ESC на этапе загрузки. boot-repair не помогло, на самом деле в grub было установлено довольно много опций, но grub все еще не был доступен напрямую.

Фактически было просто необходимо изменить порядок загрузки по умолчанию.

  • На этапе загрузки после включения ПК введите Esc, затем F10, чтобы войти в настройку BIOS.
  • Перейдите на вкладку «Конфигурация системы», вплоть до «Параметры загрузки». Нажмите Ввод. Отключить «Безопасную загрузку»
  • Перейдите к порядку загрузки UEFI. Я положил с помощью F5 / F6 диспетчер загрузки ОС поверх (вероятно, не требуется).
  • Выберите «Диспетчер загрузки ОС» с помощью Enter. Используя F5 / F6, переместите Ubuntu наверх над диспетчером загрузки Windows.
  • Оставьте настройку Bios с помощью F10 Сохранить / выйти и подтвердите внесенные изменения.

Теперь вы будете перенаправлены на grub, где вы выбрали опцию Ubuntu, отмеченную звездочкой сверху, которая будет загружаться автоматически после небольшой задержки.

в корзину для ненужной бумаги
источник
2
Пожалуйста, отформатируйте это немного. Я даже не могу сказать, если это ответ.
TheWanderer
0

Решил проблему с загрузкой EFI следующим образом:

efibootmgr -oОпция переписывается после перезагрузки, так что это не будет работать.

Тем не менее, я узнал, что -nвариант делает. Поэтому в режиме реального времени запустите usb-ubuntu efibootmgrи найдите четырехзначный номер для Ubuntu и загрузите его с помощью -nопции. Затем, чтобы иметь возможность перезагрузиться из вашей системы, сделайте такой скрипт:

#!/bin/sh
/usr/bin/efibootmgr -n 0000

Замена 0000с записью Ubuntu. Запуск crontab -eпозволит вам редактировать свой хрон. Добавьте следующую строку:

@reboot /home/"user"/"path"/efibootsj

он выполнит скрипт efibootsj(или как там его имя) после загрузки компьютера.

Sven
источник