Двойная загрузка Win 8 / Ubuntu загружает только Win

Мой компьютер - ноутбук Sony Vaio. Я использовал Ubuntu и Win 8 с двойной загрузкой, но Windows каким-то образом удалось удалить меню, чтобы выбрать ОС при запуске. Я думаю, что BIOS является UEFI. Безопасная загрузка уже отключена, и Boot Repair почему-то не работает.

Как я могу это исправить?

4 ответа

Решение

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

Есть несколько обходных путей, которые предлагают вам переместить Grub grubx64.efi или же shimx64.efi файл поверх винды /EFI/windows/bootmgfw.efi, Однако это не рекомендуется, потому что Центр обновления Windows восстановит bootmgfw.efi и вы вернетесь только к загрузке окон.

Вместо этого я предлагаю переименовать резервный файл /EFI/Boot/bootx64.efi и загрузить загрузочный жесткий диск или использовать rEFInd.

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

У вас есть несколько вариантов:

I. Переместите и переименуйте файлы grub. grubx64.efi или же shim64.efi (для безопасной загрузки) в эту папку / файл /EFI/BOOT/BOOTX64.EFI

  1. Переименуйте /efi/boot/bootx64.efi, скопируйте shim или grub в / efi / boot и назовите его bootx64.efi Затем загрузите запись с жесткого диска. Новые версии Boot-Repair автоматически делают это с помощью "Использовать стандартный файл EFI" в дополнительных опциях. Он также создает резервную копию текущего файла bootx64.efi, который, вероятно, является просто копией загрузочного файла Windows .efi.

    Из установщика в режиме реального времени смонтируйте раздел efi на жестком диске: смонтируйте раздел efi. проверьте, какой раздел FAT32 с загрузочным флагом. Часто sda1 или sda2, но меняется.

    sudo mount /dev/sda1 /mnt
    

    только если не существует,

    sudo mkdir /mnt/EFI/Boot
    sudo cp /mnt/EFI/ubuntu/* /mnt/EFI/Boot
    

    Если новая папка создана, bootx64.efi не будет существовать, пропустите эту команду

    sudo mv /mnt/EFI/Boot/bootx64.efi /mnt/EFI/Boot/bootx64.efi.backup
    

    Сделайте grub загрузочной записью жесткого диска в UEFI. Если не существует, возможно, придется обновить UEFI также с помощью efibootmgr.

    sudo mv /mnt/EFI/Boot/grubx64.efi /mnt/EFI/Boot/bootx64.efi 
    

При необходимости добавьте новую запись загрузки жесткого диска UEFI: см. Также

man efibootmgr

Если ESP - это sda или записи диска и раздела по умолчанию:

sudo efibootmgr -c -L "UEFI Hard drive" -l "\EFI\Boot\bootx64.efi"

Если ESP не sda1, sdX - это диск, Y - это раздел efi, а также диски NVMe:

sudo efibootmgr -c -g  -w -L "UEFI hard drive" -l '\EFI\Boot\bootx64.efi' -d /dev/sdX -p Y
sudo efibootmgr -c -L "UEFI hard drive" -l "\EFI\Boot\bootx64.efi" -d /dev/nvme0n1 -p 2 
  1. (Это то же самое, что Boot-Repair делал во II. Не рекомендуется сейчас: переименуйте /efi/Microsoft/Boot/bootmgfw.efi и скопируйте grub или shim в / efi / Microsoft / Boot и назовите его bootmgfw.efi. Тогда загрузите запись Windows для загрузки в меню grub. Вам нужно вручную добавить запись меню grub для загрузки переименованного файла efi Windows. Запись os-prober в Grub2 загружает запись bootmgfw.efi, которая теперь просто grub, поэтому она не будет работать.

    Пользователи, которые вручную перемещали файлы EFI, видят пост # 6.

    http://ubuntuforums.org/showthread.php?t=2101840
    http://ubuntuforums.org/showthread.php?t=2219452
    http://ubuntuforums.org/showthread.php?t=2221498&p=13012109#post13012109

II. Если вы запустили исправление Boot-Repair для "глючного UEFI" со старой копией, лучше отменить его. А затем внесите изменения, описанные выше, чтобы использовать bootx64.efi. Чтобы отменить и переименовать файлы с их исходными именами, вам просто нужно отметить опцию "Восстановить резервные копии EFI" в Boot-Repair.

Любое переименование вручную или с помощью Boot-Repair должно быть переделано после обновления Windows, так как это восстановит файлы Windows.

III. Отредактируйте Windows BCD, одну из альтернатив переименованию Boot-Repair, чтобы у shim было имя Windows. Некоторые системы лучше работают для регистрации grub / shim изнутри Windows - для тех, которые по умолчанию сбрасывают Windows.

Grub не отображается при запуске Windows 8.1 Ubuntu 13.10 Dual boot

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

https://coderwall.com/p/vfyqkg

Внутривенно Если описание должно быть Windows, измените описание UEFI. Это действительно работает только для тех, кто использует только Ubuntu и вообще не устанавливает Windows.

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\ubuntu\shimx64.efi"

Восстановите или создайте новую запись Windows UEFI - предполагается, что по умолчанию sda1 добавляет -p 2, если sda2 (см. Раздел man efibootmgr -d диск & -p раздел):

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"
sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi" -d /dev/nvme0n1 -p 1 

V. Некоторые устанавливают rEFInd, который кажется другим обходным путем и имеет хорошие иконки загрузки.

http://www.rodsbooks.com/refind/index.html

http://www.rodsbooks.com/refind/secureboot.html

PPA доступен для упрощения установки в Ubuntu

http://www.rodsbooks.com/refind/getting.html

Ответ выше не сработал для павильона HP моего друга, но я нашел достойный обходной путь. Похоже, что прошивка HP всегда перезаписывает BootOrder при каждой загрузке и устанавливает Windows в первую очередь, но это все еще уважает BootNext, Поэтому я написал сценарий запуска, чтобы установить BootNext на каждой загрузке.

  1. Бежать

    efibootmgr
    

    найти числовой код BootCurrent, В случае моего друга это было 0003,

  2. /etc/systemd/system/boot-linux-next.service:

    [Unit]
    Description=Boot Linux next
    
    [Service]
    Type=oneshot
    # Replace '3' in the next line with the appropriate code.
    ExecStart=efibootmgr --bootnext 3
    
    [Install]
    WantedBy=multi-user.target
    
  3. Бежать

    systemctl enable --now boot-linux-next.service
    

Это означает, что если вы когда-нибудь загрузитесь, вам придется вручную выбрать Linux при загрузке в следующий раз.

У меня Acer с такой же проблемой. Мое решение состоит в том, чтобы "перезагрузить" окна, а не завершать работу (что на самом деле просто гибернация).

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

Я редко пользуюсь окнами, поэтому загрузка таким способом меня совсем не беспокоит. Если, конечно, обновления Windows.

Это сработало для меня. Я использовал ноутбук Toshiba с UEFI.

  1. Установите Ubuntu в режиме UEFI. Обязательно укажите /boot, / и поменяйте место на жестком диске.

  2. Перейдите в Windows 10. Откройте командную строку администратора и выполните шаг 3.

  3. Перезагружать. Меню загрузки должно появиться сейчас.

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