Как загрузить Windows 8 с устаревшего раздела MBR в режиме UEFI через GRUB?

Этот вопрос аналогичен ответу двойной загрузки Ubuntu 12.10 для UEFI в Windows 8 (GRUB - ошибка: не удается найти карту диска с командой), но Windows 8 установлена ​​на устаревшем многораздельном диске.

Какие шаги необходимо выполнить, чтобы установка загрузилась в режиме UEFI без преобразования в GPT или использования DISM?

Я знаю, что в общем случае не рекомендуется смешивать UEFI и устаревшую загрузку, но это может быть удобно в некоторых случаях.

1 ответ

Решение

Да, можно загрузить Windows 8 в режиме UEFI, даже если вы установили ее на устаревший многораздельный диск (MS-DOS/MBR). Конечно, вам потребуется установка GRUB, совместимая с UEFI, на другой диск с разделами GPT.

  1. В Windows установите новую загрузочную конфигурацию на том C: с помощью следующей команды:

    bcdboot C:\Windows /s C: /f uefi
    

    При загрузке в режиме UEFI это не только создаст новую конфигурацию загрузки в C:\EFI\ но также зарегистрируйте новый загрузчик UEFI в NVRAM. Вы можете удалить запись позже с efibootmgr в Ubuntu (инструкции см.: Как удалить "Ubuntu" в меню загрузки BIOS? (UEFI)).

    Конечно, вы также можете выбрать другое место, но этот метод должен быть самым простым. Для более подробной информации о bcdboot см. соответствующую статью Microsoft Technet.

  2. В Ubuntu добавьте пользовательский пункт меню GRUB, добавив следующие строки в /etc/grub.d/40_custom:

    menuentry "Windows 8 (BCD-UEFI configuration on system drive /dev/sda2)" --class windows --class os {
        insmod part_msdos
        insmod ntfs
        insmod search_fs_uuid
        insmod chain
    
        set root='hd0,msdos2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  2ACC7043CC700B79
        else
          search --no-floppy --fs-uuid --set=root 2ACC7043CC700B79
        fi
    
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
    

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

    • Эта запись настроена для загрузки со 2-го раздела (msdos2) 1-го жесткого диска (hd0 или же ahci0).
    • Вам также необходимо заменить UUID файловой системы (2ACC7043CC700B79) с твоим. В этом примере вы можете запустить sudo blkid /dev/sda2 чтобы получить UUID или запустить GParted.
    • Напоминание. В этом примере рассматривается диск, на котором имеется устаревшая таблица разделов. Если у вас GPT, то замените msdos с gpt,
  3. Наконец запустить sudo update-grub создать новую конфигурацию.

Ответ перенесен с https://Ask-ubuntu.ru/q/377807/40581 поскольку там он выглядел неуместно.

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