Windows 8 удаляет Grub как менеджер загрузки по умолчанию

37

У меня есть серия Sony VAIO S с предустановленной Windows 8, и я установил Ubuntu 12.10 на новый раздел. Когда ПК загружается, отображается Grub, и я могу выбирать между Windows 8 (сначала не работало, пришлось менять настройки Grub) и Ubuntu 12.10. Когда я выбираю Ubuntu 12.10, все в порядке, но когда я использую Windows 8 и перезагружаюсь, Grub больше не отображается (Windows 8 загружается сразу).

Я загрузил Ubuntu 12.10 LiveUSB, использовал efibootmgrи обнаружил, что Windows 8 (каждый раз при загрузке) меняет загрузчик EFI по умолчанию с Grub на Windows Boot Manager.

Как я могу изменить это в Windows 8? Я читал кое-что о bcdedit, но это не работает, или я не знаю, как это использовать ...

Курос
источник
Я думаю, что вы на правильном пути, решая это самостоятельно. Просто продолжай копать [;
Дыня
3
Да, мне просто нужна маленькая вещь, тогда я напишу учебник, как это сделать. Microsoft отстой, почему они должны изменить менеджер загрузки по умолчанию? На мой взгляд, это мешает людям использовать что-то еще, кроме продуктов Microsoft.
Курос
Наах, я думаю, что им просто все равно. В любом случае, надеюсь скоро увидеть ваш урок.
Дыня
Я только что спросил об этом службу поддержки Microsoft, и они направили меня на свои форумы. На форумах парень сказал мне, что Windows ставит себя на первое место. Период. Если мне это не нравится, просто создайте командный файл в windows, который будет запускаться при каждом запуске bcdedt-s в конфигурации windows uefi для первой загрузки grub. Ницца.
нет
Файловая система GPT содержит дубликаты загрузочных секторов. Кажется, что Windows просто проверяет контрольную сумму MBR и «восстанавливает» ее, перезаписывая ее оригинальными защитными данными MBR. Лучшая практика безопасности. en.wikipedia.org/wiki/GUID_Partition_Table

Ответы:

33

Я не могу давать никаких обещаний, но попробуйте это из окна командной строки Windows, запущенного с правами администратора:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Обратите внимание, что {bootmgr}должно быть напечатано точно; это не переменная. Если это не сработает, вы можете попробовать это в Linux:

  1. /boot/efiСоздайте резервную копию всего содержимого (вашего системного раздела EFI или ESP).
  2. Тип sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft.
  3. Тип cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi.
  4. Создайте новую /etc/grub.d/40_customзапись файла, которая ссылается на EFI/Microsoft/bootmgfw.efi. Смоделируйте его после существующей записи в /boot/grub/grub.cfgтом, что относится к EFI/Microsoft/Boot/bootmgfw.efi; просто удалите Bootиз пути загрузки и дайте записи новое имя.
  5. Введите, sudo update-grubчтобы установить новую запись GRUB.

Когда вы перезагрузитесь, GRUB должен появиться. Проблема в том, что если / когда Windows решит переустановить загрузчик, система снова начнет загрузку прямо в Windows.

На шаге 4 вы можете:

  1. Скопируйте 40_customзапись, начиная с menuentry 'Windows ...'расположенного между набором ### BEGIN <path> ###и ### END <path> ###тегами / комментариями. Это запись, содержащая путь Boot.
  2. Создайте новую запись в файле /etc/grub.d/40_custom, добавив скопированный menuentry.
  3. Измените название новой записи (оригинал должен быть Windows Boot Managerили что-то подобное).
  4. Измените путь с EFI/Microsoft/Boot/bootmgfw.efiна EFI/Microsoft/bootmgfw.efi.

РЕДАКТИРОВАТЬ:

С момента написания этого ответа мне стало известно о стороннем инструменте Windows под названием EasyUEFI, который является более простым инструментом с графическим интерфейсом, чем bcdeditдля настройки порядка загрузки EFI из Windows. Я не знаю, будет ли EasyUEFI мешать Windows вносить изменения, если Windows имеет привычку устанавливать себя по умолчанию при каждой загрузке. Таким образом, bcdeditвсе еще может потребоваться, но EasyUEFI определенно стоит попробовать.

Род Смит
источник
5
Не могли бы вы сделать мне / нам одолжение и дать нам конкретные терминальные подсказки для шага 4? Я сделал все остальное, кроме этого шага, потому что я не знал точно, какие команды вводить. Теперь Grub работает, но он не позволяет мне загружаться в Windows. Ик!
Пожалуйста, опишите шаг 4
Джи-
\EFI\ubuntu\shimx64.efiнайдено в Ubuntu 18.0.4 LTS
CSGO
2

Как я могу изменить это в Windows 8? Я читал кое-что о bcdedit, но он не работает, или я не знаю, как его использовать ...

Та же самая проблема здесь, я наконец понял, что это последнее обновление W8.1 сделало это, и я знаю это, потому что я только что обновил сегодня и не в течение 33 дней или около того, мой Павильон HP сказал мне ..

Во всяком случае, вот что сработало:

Я следил за этим видео на Utube, чтобы остановить «Автоматическое восстановление [Boot]»: http://www.youtube.com/watch?v=VRQYmtysFkg

Затем изменили bootmgr, используя вышеуказанное решение, предоставленное Rod: bcdedit / set {bootmgr} path \ EFI \ ubuntu \ grubx64.efi

Бинго!

Кстати: Boot Repair от моего LiveUsb не сделал nada, но вызвал короткую вспышку, пока W8 восстанавливал свою загрузочную запись ..

Сопротивление бесполезно
источник
1
Здорово, что ты решил помочь! Но ваш ответ не предоставляет никакого контекста для (видео) ссылки, которую вы разместили, и мы здесь, в Ask Ubuntu, хотим этого . Мы хотим, чтобы ответы здесь предоставили контексты, так как (видео) ссылки могут рано или поздно прекратиться.
VenkiPhy6
0
  1. запустите Boot-Repair с Recommended RepairliveCD, затем перезагрузите компьютер.
  2. если все еще не хорошо, запустите Boot-Repair -> Дополнительные параметры -> снимите флажок " Backup and rename EFI files" -> отметьте " Restore EFI backups" -> Применить
LovinBuntu
источник
2
Нет проблем из-за Windows 8
Kouros
0

У меня есть только часть ответа: рабочее решение, которое почти нормально, пока я не найду, как это исправить навсегда.

Была такая же проблема: кромка ThinkPad поставляется с Windows 8; установил Ubuntu в качестве двойной загрузки и в основном забыл о Windows, пока не вышел 8.1, и я решил попробовать, прежде чем удалить Windows навсегда. Таким образом, после установки 8.1, grub больше не появляется при запуске, НО, когда я нажимаю F12, появляется другое меню, которое позволяет мне загружать Ubuntu. Вот как я сейчас запускаю свой компьютер: но каждый второй раз я забываю нажать F12, и он все равно запускает Windows (что мне почти никогда не нужно).

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

lebatsnok
источник
0

Почему-то Windows 8.1 полностью блокирует Ubuntu является дубликатом этого вопроса. Я не думаю, что это так, но я могу только комментировать здесь. Я испытывал те же симптомы, что и Windows 8.1 - полностью блокирующая Ubuntu .

В моем случае решение состояло в том, чтобы нажать F2 во время загрузки и изменить порядок загрузки так, чтобы ubuntu была первой в списке. По какой-то причине после того, как я обновил свой ноутбук с двойной загрузкой (Win / Ubuntu) с Win 8 до Win 8.1, «windows» появились в верхней части списка загрузки, перед Ubuntu, DVD, USB и т. Д., И мой ноутбук загрузился прямо в Windows 8.1, не давая у меня любой выбор.

Нажатие клавиши F2 во время загрузки и повышение рейтинга Ubuntu решило мою проблему и снова сделало доступным Ubuntu (вместе с Windows 8.1) после того, как я обновился до Windows 8.1 из магазина Microsoft.

riedlblower
источник
0

С Windows 10 и Ubuntu 14.04 на Acer E17 у меня была похожая проблема (Windows Boot Manager вступил во владение, не мог получить доступ к Grub при загрузке). Я следовал инструкциям, представленным Родом Смитом выше, но не повезло. (очень хорошие инструкции, кстати)

Я нашел параметр в BIOS в порядке загрузки, в котором сначала указывался диспетчер загрузки Windows, а затем - жесткий диск. Я поменял их местами, сохранил и вышел / перезагрузил, и Grub подошел сразу.

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

mason81
источник
0

На некоторых компьютерах параметры BIOS управляют приоритетом загрузки файлов * .efi в разделе UEFI. Я обнаружил, что мой ноутбук HP Pavilion 15-f039wm сделал, хотя не сразу было очевидно, что он имеет эту функцию. Установка его в BIOS лучше, чем непосредственно связываться с файлами .efi и использовать bcdedit.

Для этой машины я нажимаю F10, чтобы перейти к настройке BIOS, затем наведите курсор и выберите «Boot Options». Существуют параметры для приоритетов загрузки UEFI, которые можно изменить, одним из которых является «Диспетчер загрузки ОС». Однако эта опция имеет дополнительную функцию: если я выделю ее и нажму Enter, появится всплывающее окно для перестановки приоритетов для «ubuntu» и «Диспетчер загрузки Windows» в «Диспетчере загрузки ОС». Я помещаю "Ubuntu" сверху с помощью F5 / F6, сохраняю содержимое всплывающего окна с помощью F10, а затем снова нажимаю F10, чтобы сохранить и выйти из BIOS Setup.

Теперь без вмешательства загрузки я получаю меню Grub, которое по умолчанию загружает Ubuntu. Я все еще могу загрузить Windows через меню Grub или получить безопасную загрузку, нажав F9, чтобы открыть меню UEFI Boot Manager.

Эта функция BIOS помогает объяснить, почему казалось, что код UEFI отменяет изменения в BootOrder, которые я сделал с помощью efibootmgr в Ubuntu.

Судр Минц
источник