Добавить Windows 10 в загрузчик Grub2

Вопрос или проблема

Я прошел через обычные шаги для добавления Windows в параметры загрузчика, изменив 40_custom и добавив следующее:

menuentry "Windows 10" {
     insmod part_gpt
     insmod chain
     set root="(hd0,msdos2)"
     chainloader +1
     }

Тем не менее, когда я выбираю Windows в загрузчике, он говорит “Ошибка: недопустимая подпись. Нажмите любую клавишу для продолжения”. Я не знаю, почему я получаю эту ошибку. Как я могу это исправить?
ИЗМЕНЕНИЕ: Здесь написано, что есть синтаксические ошибки, но я не вижу никаких.
if [ "${grub_platform}" == "pc" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1/10 BIOS/MBR" {
insmod part_msdos
insmod ntfs
insmod search_fs_uuid
insmod ntldr
search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 XXXXXXXXXXXXXXXX
ntldr /bootmgr
}
fi

ИЗМЕНЕНИЕ2: Вывод sudo fdisk -l

~$ sudo fdisk -l
Диск /dev/sda: 298.1 GiB, 320072933376 байт, 625142448 секторов
Единицы: секторы по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x71b1e4fb

Устройство     Загрузка     Начало       Конец   Секторы   Размер Id Тип
/dev/sda1              63     80324     80262  39.2M de Dell Utility
/dev/sda2  *    223580160 286285823  62705664  29.9G 83 Linux
/dev/sda3        30801920 223580159 192778240  91.9G  7 HPFS/NTFS/exFAT
/dev/sda4       286287870 625141759 338853890 161.6G  5 Расширенный
/dev/sda5       571742208 573741055   1998848   976M 82 Linux swap / Solaris
/dev/sda6       573743104 625141759  51398656  24.5G 83 Linux
/dev/sda7       286287872 345180159  58892288  28.1G 83 Linux

Записи таблицы разделов не находятся в порядке диска.


Диск /dev/sdb: 7.5 GiB, 8004829184 байт, 15634432 сектора
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x037cbc77

Устройство     Загрузка Начало      Конец  Секторы  Размер Id Тип
/dev/sdb1  *     2048 15634431 15632384  7.5G  c W95 FAT32 (LBA)

Похоже, вы следовали старой инструкции, которая предполагает, что Windows использует MBR-разделение.

Ошибка “недопустимая подпись” говорит о том, что Secure Boot включен. Когда Secure Boot включен, все загрузчики должны быть подписаны закрытым ключом, и соответствующий открытый ключ должен быть включен в переменные Secure Boot в прошивке NVRAM. GRUB добросовестно считывает первый сектор указанного вами раздела, но так как он не содержит соответствующей подписи Secure Boot, прошивка отказывается его выполнять.

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

Ваш insmod part_gpt говорит о том, что вы ожидаете, что диск будет иметь разделение в стиле GPT, что обычно сочетается с UEFI-загрузкой, но с другой стороны, set root=(hd0,msdos2) ожидает MBR-раздел.

На моей системе Debian с разделением GPT строка set root выглядит следующим образом: set root="hd0,gpt1". Если ваша система использует GPT-разделение, используйте идентификаторы разделов gptN вместо msdosN.

Также chainloader +1 указывает GRUB считать загрузочный блок из первого блока раздела; в нативной загрузке UEFI такого не существует. Чтобы загрузить Windows в режиме UEFI, строка set root должна указывать на EFI System Partition, содержащий загрузчик Windows, а строка chainloader должна быть chainloader /EFI/Microsoft/Boot/bootmgfw.efi.

Вы можете добавить пользовательскую запись в GRUB2, отредактировав /etc/grub.d/40_custom.
Если этот файл уже содержит запись для рабочей конфигурации, измените 40 на другое число, которое еще не используется в /etc/grub.d/ [меньшие номера загружаются первыми]. Если вы редактируете существующий конфигурационный файл, сделайте резервную копию!

Я использовал Grub-Customizer для добавления новой конфигурации grub. Запись, которую он сгенерировал автоматически, не сработала, поэтому я отредактировал ее в качестве пользовательского скрипта в соответствии с рекомендациями telcoM.

Вот мой файл 40_custom.

#!/bin/sh
exec tail -n +3 $0
# Этот файл предоставляет простой способ добавить пользовательские записи меню. Просто введите
# записи меню, которые вы хотите добавить, после этого комментария. Будьте осторожны, чтобы не изменить
# строчку 'exec tail' выше.
menuentry "Windows 10 (loader)"{
    insmod part_gpt
    search --no-floppy --set=root --fs-uuid 109C-D028
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

затем выполните update-grub

Вы можете отключить любые конфигурационные записи, которые вы не используете (но хотите сохранить), с помощью chmod -x /path/to/file или +x для активации. Это оставляет их там, где они должны быть, скрывая от меню GRUB2.


Некоторая соответствующая информация о моей системе:
Запуск Arch Linux (март 2019) и Windows 10, каждая на своем отдельном диске. Каждая с GPT. По-видимому, GRUB2 не будет загружать раздел BIOS, если работает в UEFI, (или UEFI-диск, если запущен в режиме BIOS).

Вам следует установить os-prober и запустить его один раз

sudo apt-get install os-prober
sudo os-prober

Сгенерируйте файл конфигурации grub

sudo grub-mkconfig -o /boot/grub/grub.cfg

Не редактируйте файл вручную

Ответ или решение

Добавление Windows 10 в загрузчик GRUB2

Добавление Windows 10 в меню загрузки GRUB2 может быть вызовом, особенно если вы используете разные схемы разметки дисков (MBR и GPT) и режимы загрузки (BIOS и UEFI). В этой инструкции мы рассмотрим последовательность действий, необходимых для успешного добавления Windows 10 в меню загрузчика, а также исправление ошибок, которые могут возникнуть.

1. Понимание конфигурации вашего диска

На основании вашей информации о разделе диска, вашем компьютере установлен Windows 10 на диске, используя NTFS, и у вас есть установленная Linux (например, Ubuntu) на другом разделе. Согласно команде fdisk -l, у вас используется MBR для разметки диска. Следовательно, следующий шаг будет добавление правильной конфигурации для Windows в GRUB2.

2. Изменение файла конфигурации GRUB2

Для успешного добавления Windows необходимо внести изменения в файл /etc/grub.d/40_custom. Ваша текущая конфигурация, которая вызывает ошибку "invalid signature", может нуждаться в корректировках.

Вот пример, как это должно выглядеть для GPT и UEFI:

#!/bin/sh
exec tail -n +3 $0

menuentry "Windows 10 (loader)" {
    insmod part_gpt
    insmod chain
    search --no-floppy --set=root --fs-uuid XXXXXXXXXXXXXXXX  # Укажите здесь UUID раздела с WIndows
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Обратите внимание, что вы должны заменить XXXXXXXXXXXXXX на фактический UUID вашего Windows-раздела. Чтобы узнать, какой UUID использовать, выполните команду:

blkid

3. Проверка и настройка Secure Boot

Ошибка "invalid signature" может указывать на то, что включен режим Secure Boot. Вам нужно будет либо отключить его в настройках BIOS/UEFI, либо убедиться, что ваш GRUB и ядро Linux подписаны должным образом.

4. Обновление конфигурации GRUB

После внесения изменений в файл 40_custom, вам необходимо обновить конфигурацию GRUB, выполнив:

sudo update-grub

Это сгенерирует новый файл конфигурации GRUB, который будет включать новую запись.

5. Установка os-prober

os-prober анализирует ваши диски на наличие других операционных систем (например, Windows) и автоматически добавляет их в конфигурацию GRUB. Чтобы установить его, выполните команду:

sudo apt-get install os-prober

И затем выполните:

sudo os-prober

6. Перезагрузка

Теперь вы можете перезагрузить компьютер и проверить, появилась ли ваша запись Windows 10 в меню GRUB. Если все сделано правильно, вы сможете выбрать Windows 10 и загрузиться в него без ошибок.

Заключение

Настройка GRUB2 для корректной загрузки Windows 10 может быть не тривиальной задачей, особенно при использовании различных методов разметки и загрузки. Важно понимать, какой режим загрузки вы используете (BIOS или UEFI) и какую разметку (MBR или GPT) ваш диск имеет. Полная проверка конфигурации и использование os-prober помогут сделать процесс более гладким.

Если вы по-прежнему испытываете трудности, рекомендуется обратиться к документации GRUB или сообществу, соответствующему вашей операционной системе для получения дополнительной поддержки.

Оцените материал
Добавить комментарий

Капча загружается...