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

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

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

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

3
задан 13 April 2017 в 15:23

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://askubuntu.com/q/377807/40581, поскольку это выглядело неуместным там.

1
ответ дан 1 December 2019 в 17:43

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

Похожие вопросы: