Как добавить Windows 11 в меню grub?

Как добавить Windows 11 в меню grub?

Мои проблемы начались, когда я разбил диск с Ubuntu 22.04 LTS, чтобы добавить Windows 11 (для разбиения диска я использовал загрузочный образ Ubuntu).

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

Посмотрев этот пост,Почему меню Grub не отображается при запуске моего компьютера?, мне удалось снова отобразить меню grub (@Akalgnotum). Но Windows 11 не была включена в меню.

Под руководством этого поста,GRUB не обнаруживает WindowsЯ запустил: , sudo os-proberкоторый вернул /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi. Затем я запустил sudo update-grub, который дал мне это «предупреждение»:

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-43-generic
Found initrd image: /boot/initrd.img-5.15.0-43-generic
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done

Насколько я понимаю, Windows не будет добавлен, sudo update-grubпоскольку он не будет работать и использовать информацию, предоставленную os-prober.

Я понятия не имею, как это исправить. Любые предложения будут крайне полезны. Если нужна дополнительная информация, я с радостью ее предоставлю.

Спасибо!

решение1

После нескольких дней рытья интернета я нашел ответ!

Вся заслуга принадлежит этому посту:https://askubuntu.com/a/977251/1191399. Я просто повторяю это.

  1. sudo fdisk -l

Вы должны получить длинный ответ, включающий что-то вроде этого:

Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048    1050623   1048576   512M EFI System
/dev/nvme0n1p2   1050624  874729471 873678848 416.6G Linux filesystem
/dev/nvme0n1p3 874729472  874762239     32768    16M Microsoft reserved
/dev/nvme0n1p4 874762240 1000214527 125452288  59.8G Microsoft basic data
  1. Получите UUIDРаздел EFI sudo blkid /dev/nvme0n1p1(замените nvme0n1p1 на нужный вам раздел)

Возвращаться: dev/nvme0n1p1: UUID="3C26-6A4C" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3b64b43f-e7eb-4ac8-a32c-9af2edf64d0d"

  1. Предоставьте себе разрешение на запись в файл «40_custom» в /etc/grub.d

    Откройте терминал (ctrl+alt+t) и выполните следующие команды:
    cd /etc/grub.d
    sudo chmod o+w 40_custom

  2. Откройте файл 40_custom
    open ./40_custom

  3. Напишите следующее в конце файла и замените 3C26-6A4C правильным UUID:

menuentry 'Windows 11' {
    search --fs-uuid --no-floppy --set=root 3C26-6A4C
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
  1. Сохраните файл и закройте редактор.

  2. Вернитесь в терминал и удалите разрешения на запись.
    sudo chmod o-w 40_custom

  3. Обновите GRUB с помощьюsudo update-grub

  4. (Необязательно) Вы можете подтвердить, что ваши изменения были успешными, перейдя в /boot/grub/grub.cfg и проверив строки 243-251. Они должны отражать ваши изменения в файле 40_custom

  5. Перезагрузите компьютер.reboot

решение2

Grub 2.06 отключает os-prober в /etc/default/grub.

https://www.phoronix.com/news/Ubuntu-22.04-Multi-Boot-Changes

Есть какая-то проблема безопасности с сканированием всех разделов в поисках других систем. Вы можете включить/выключить в /etc/default/grub.

Лучше всего запустить один раз, а затем скопировать загрузочную строфу Windows в 40_custom. Также это ускорит все будущие обновления, особенно если у вас много разделов для сканирования.

sudoedit /etc/default/grub

Затем измените на true/false по мере необходимости. True рекомендуется.

GRUB_DISABLE_OS_PROBER=true

Вы можете легко скопировать загрузочную строфу в 40_custom.

Один из способов исправить описания — переместить записи Windows в 40_custom и редактировать по своему усмотрению.

Скопируйте записи отсюда:

sudo cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
sudoedit /boot/grub/grub.cfg

Скопируйте их и отредактируйте, оставив только нужные вам записи:

sudoedit /etc/grub.d/40_custom

После любых изменений в grub или скриптах grub необходимо обновить меню grub.

sudo update-grub

Меню Grub в Windows 10 и Ubuntu 14.04

Типичная загрузочная строфа UEFI Windows, обобщенная os-prober. Каждый ESP имеет уникальный UUID и partUUID. UUID в загрузочной строфе — это UUID вашего ESP.

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-F8FD-D8E5' {
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root F8FD-D8E5
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

Если вы используете вышеприведенную строфу, вам необходимо обновить свой UUID и нет необходимости в комментарии об использовании os-prober. Чтобы увидеть UUID ESP.

lsblk -f

Примечание: Grub загружает только работающую Windows. И UEFI Secure Boot должен быть отключен. Windows часто включает быстрый запуск Windows с обновлениями. Поэтому вам придется напрямую загружать Windows с помощью одноразового ключа загрузки UEFI, часто f12, но это зависит от поставщика.

решение3

1. Список дисков и разделов

lsblk

2. Определите диск, содержащий раздел Windows.

sudo cfdisk /dev/sd<YOUR DISK LETTER (NO NUMBER)>
  • Для переключения между устройствами используйте клавиши с вертикальными стрелками.
  • Раздел EFI будет представлять собой устройство, тип которого — «Система EFI».
  • Скопируйте «UUID файловой системы» для вашего устройства EFI. (XXXX-XXXX)
  • Выберите [ Quit ]с помощью клавиш со стрелками на клавиатуре. Нажмите Enter, чтобы выйти из cfdisk.

3. Открыть /etc/grub.d/40_customв вашем любимом редакторе ( nano, vim, code)

sudo nano /etc/grub.d/40_custom

4. Добавьте пункт меню под комментарием.

menuentry 'Windows 11' {
    search --fs-uuid --no-floppy --set=root <YOUR "File system UUID">
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

5. Обновите конфигурацию grub.

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

Завершить сsudo reboot

решение4

По крайней мере для меня это решило проблему. os-prober был отключен. Я на Ubuntu 22.04

sudo nano /etc/default/grub

НаборGRUB_DISABLE_OS_PROBER=false

Тогда беги

sudo update-grub

Связанный контент