Как добавить в grub windows boot manager

No, i did not update /boot/grub/grub.cfg, and doing so indeed fixed the problem (

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

), Thanks everybody!
in grub, I now see

Arch Linux
Advanced options for Arch Linux
Windows Boot Manager (on /dev/nvme0n1p1)
UEFI Boot options
Windows
Windows

I managed to remove one of the «Windows» options by removing the added part in /etc/grub.d/40_custom, but the other one is still there
I dont necessarily need to remove it, I can live with it there, but it would be nice not to have it twice
also, if I try to boot into it, it says that there is no drive named /dev/nvme0n1p1, but that might also be due to a typo somewhere
I could select it from grub, press e to edit it and delete everything, but how would I save it, then?

Also, since Head_on_a_stick asked, there you go

NAME        FSTYPE FSVER LABEL            UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                           
├─sda1      vfat   FAT32                  25E3-EB55                                           
├─sda2      ext4   1.0                    b46decfc-a738-4af2-8c3f-c09b0d31b848   95.8G    18% /
└─sda3      ntfs         Storage          62E463EDE463C241                                    
nvme0n1                                                                                       
├─nvme0n1p1 vfat   FAT32 SYSTEM           4224-04AA                                           
├─nvme0n1p2                                                                                   
├─nvme0n1p3 ntfs         System           B8E4EF37E4EEF692                                    
└─nvme0n1p4 ntfs         Windows RE Tools 928283FC8283E359

and also

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0005,0001,0006,0007,0003,0004,0002
Boot0000* grub_uefi     HD(1,GPT,3c5c541b-6770-bd45-92b8-2167c847db31,0x800,0x113000)/File(\EFI\grub_uefi\grubx64.efi)
Boot0001* Windows Boot Manager  HD(1,GPT,0d53e022-342b-48c3-ad87-8978e02ca33a,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)䥗䑎坏S
Boot0002* WDC PC SN520 SDAPNUW-256G-1006-192899801574   PciRoot(0x0)/Pci(0x1d,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-1B-44-8B-44-0E-71-7B)걎脈鼑䵙຅᫢ⱒ뉙
Boot0003* IPV4 Network  PciRoot(0x0)/Pci(0x14,0x0)/USB(5,0)/USB(3,0)/MAC(64c901c82bc6,0)/IPv4(0.0.0.00.0.0.0,0,0)걎脈鼑䵙຅᫢ⱒ뉙
Boot0004* IPV6 Network  PciRoot(0x0)/Pci(0x14,0x0)/USB(5,0)/USB(3,0)/MAC(64c901c82bc6,0)/IPv6([::]:<->[::]:,0,0)걎脈鼑䵙຅᫢ⱒ뉙
Boot0005  USB:          PciRoot(0x0)/Pci(0x14,0x0)걎脈鼑䵙຅᫢ⱒ뉙耋
Boot0006* IPV4 Network - Realtek PCIe GBE Family Controller     PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/MAC(f8b46aa8c23b,0)/IPv4(0.0.0.00.0.0.0,0,0)걎脈鼑䵙຅᫢ⱒ뉙
Boot0007* IPV6 Network - Realtek PCIe GBE Family Controller     PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/MAC(f8b46aa8c23b,0)/IPv6([::]:<->[::]:,0,0)걎脈鼑䵙຅᫢ⱒ뉙

Windows 10 will, for the most part, be added to grub boot menu by the os-prober automajically.

For my specific setup I wanted to completely hide grub menu and automatically boot windows unless a hotkey was pressed to boot Ubuntu. So in my specific case os-prober isn’t an option because the most important step in hiding the grub menu, which most answers I found neglect to mention, is to set the disable os-prober flag or the menu WILL be shown until os-prober completes.

It took considerably longer than I had anticipated to get right because there are so many partial answers out there but most are version dependant and can lead you astray. I spent a lot of time trying write my own grub menu entry trying use grub commands that didn’t exist like ntdlr. Another caveat is that the chainloader functions on my grub try to boot bios not efi and will not work.(Im sure I was doing something wrong?)

In the end the solution was actually simple as the scripts that make your /boot/grub/grub.cfg do most of the work for you in finding UUIDS for your boot partitions. So you can skip the fdisk and blkid steps most people mention.

So step 1 is to make sure /boot/grub/grub.cfg is current using update-grub to make .cfg file. In terminal

sudo update-grub

Step 2 is to add custom menu entries in /etc/grub.d/40_custom. Don’t waste time trying to write your own simply open /boot/grub/grub.cfg search «menuentry» and copy the automatically generated entries.

The first in the list will be ubuntu mine looks like

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9e66eed6-e672-49ff-a07c-afdc00809148' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  9e66eed6-e672-49ff-a07c-afdc00809148
else
  search --no-floppy --fs-uuid --set=root 9e66eed6-e672-49ff-a07c-afdc00809148
fi
linux   /boot/vmlinuz-5.4.0-39-generic root=UUID=9e66eed6-e672-49ff-a07c-afdc00809148 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-5.4.0-39-generic

}

Windows will be similar. Copy both to /etc/grub.d/40_custom. The only change I made for Ubuntu is to add the —hotkey=key flag which will make grub boot the os associated with that hotkey.

menuentry 'Ubuntu2' --class ubuntu --class gnu-linux --class gnu --class os --hotkey=u $menuentry_id_option 'gnulinux-simple-9e66eed6-e672-49ff-a07c-afdc00809148' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  9e66eed6-e672-49ff-a07c-afdc00809148
else
  search --no-floppy --fs-uuid --set=root 9e66eed6-e672-49ff-a07c-afdc00809148
fi
linux   /boot/vmlinuz-5.4.0-39-generic root=UUID=9e66eed6-e672-49ff-a07c-afdc00809148 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-5.4.0-39-generic

}

I use —hotkey=u here to set Ubuntu boot hotkey to u.

Then I tweaked the Windows entry, replacing $menuentry_id_option withe the grub —id flag.

menuentry "Windows 10" --class windows --class os --id windows-custom {
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  0EAE-C882
else
  search --no-floppy --fs-uuid --set=root 0EAE-C882
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

}

I used —id windows-custom. Save chages to /etc/grub.d/40_custom.

Finally open /etc/default/grub and add

GRUB_DISABLE_OS_PROBER=true

change GRUB_DEFAULT=0 to GRUB_DEFAULT=windows-custom
and change GRUB_TIMEOUT=10 to your choice of timings I use 0.5 just to give myself a little extra time to hit u to boot Ubuntu after POST.

Hopefully this saves someone a bit of headache, cheers!

 debian, linux, windows


0

1

Здравствуйте , установлен рядом Debian и Windows 8.1 . Ноут с EFI. Загрузчик дебиана автоматически не подхватил Windows Boot Manager. Пробовал прописывать руками в конфиг файле разные варианты.
Но не помогло, подскажите как правильно прописать загрузчик.
menuentry ‘Windows Boot Manager’ {
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot
}

  • Ссылка

Пакет os-prober установлен?

kostik87 ★★★★★
()

  • Ссылка

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

nihil

★★★★★
()

  • Ссылка

установить пакет os-prober, как выше уже посоветовали.

KJIayC
()

  • Ссылка

Ответ на:

комментарий
от Lilly

os prober есть , при создании файл с помощью grub-mkconfig -o /путь/к/grub.cfg создает как и ранее был по дефолту создан файл , то есть винду не находит.
Скаждите что еще можно попробовать ?

CROSP
()

автор топика

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от CROSP

Ответ на:

комментарий
от mathcrosp

Все проблему решил. Вроде раньше подобно пробовал сделать, но не вышло.
Посмотрел номер раздела и прописал вручную так
menuentry «Windows 8 Boot Loader» {
set root='(hd0,gpt2)’
chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

CROSP
()

автор топика

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от CROSP

Отметьте тему как решенную тогда.

Lilly
()

  • Ссылка

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Grub2 — это загрузчик операционных систем, который позволяет выбирать, какую ОС запустить при старте компьютера. Он является стандартным загрузчиком для большинства дистрибутивов Linux и предоставляет возможность выбора ОС и редактирования конфигурации загрузчика. Однако по умолчанию grub2 не содержит информацию о Windows, и поэтому необходимо добавить эту ОС в меню grub2 вручную.

Чтобы добавить Windows в grub2, нужно выполнить несколько простых шагов. Первым делом нужно открыть файл конфигурации grub2. Он обычно расположен в директории /etc/grub.d/ и называется 40_custom. Для редактирования файла конфигурации понадобится права суперпользователя, поэтому его открывают и редактируют командой sudo gedit /etc/grub.d/40_custom.

После открытия файла конфигурации необходимо добавить блок следующего вида:

menuentry «Windows» {

set root=(hd1,1)

chainloader +1

}

Вам может потребоваться изменить параметр set root=(hd1,1) в зависимости от того, на каком разделе находится ваша ОС Windows. По умолчанию, hd1 означает второй физический диск, а 1 — первый раздел на этом диске. Если ваша ОС находится на другом диске или разделе, нужно изменить соответствующие значения.

После того, как вы добавили блок для Windows в файл конфигурации, нужно сохранить и закрыть его. Далее выполните команду sudo update-grub. Она обновит меню grub2 и добавит Windows в список доступных ОС при загрузке компьютера. Теперь вы можете выбрать Windows при старте и запустить его без проблем.

Содержание

  1. Шаг 1: Подготовка к добавлению Windows в grub2
  2. Шаг 2: Установка os-prober для обнаружения Windows
  3. Шаг 3: Редактирование файла конфигурации grub2
  4. Шаг 4: Перезапуск grub2 для применения изменений
  5. Шаг 5: Проверка добавления Windows в grub2

Шаг 1: Подготовка к добавлению Windows в grub2

Прежде чем мы сможем добавить Windows в меню grub2, нам нужно выполнить несколько подготовительных шагов. Обратите внимание, что для успешного добавления Windows в grub2 вам потребуется установочный диск или USB-накопитель с загрузочной версией дистрибутива Linux.

1. Вставьте установочный диск или USB-накопитель в компьютер и перезагрузите систему.

2. Загрузитесь с установочного носителя и выберите опцию «Установить Linux» или подобную.

3. Далее, следуйте инструкциям установщика Linux и укажите параметры разделов для установки. Убедитесь, что вы выбрали то же самое хранилище, где уже установлена ваша текущая версия Linux. Если на вашем компьютере уже установлен только Windows, вы можете создать новый раздел для Linux.

4. Укажите раздел для загрузчика. В большинстве случаев, выбор будет автоматическим и установщик выберет раздел с Linux, однако, убедитесь, что загрузчик будет установлен на тот же раздел, где уже находится ваша текущая версия Linux.

5. После завершения установки выберите опцию перезагрузки системы. Теперь ваш компьютер должен загрузиться с установленной версией Linux.

Шаг 2: Установка os-prober для обнаружения Windows

  1. Открой терминал. Это можно сделать нажатием `Ctrl + Alt + T`.
  2. Введи команду `sudo apt-get install os-prober` в терминале.
  3. Нажми Enter и введи пароль администратора системы.
  4. Дождись завершения установки os-prober.

После завершения установки os-prober, теперь grub2 будет автоматически обнаруживать Windows при создании меню загрузки. Переходи к следующему шагу, чтобы настроить grub2 для добавления Windows в меню загрузки.

Шаг 3: Редактирование файла конфигурации grub2

1. Откройте терминал и выполните следующую команду, чтобы отредактировать файл конфигурации grub2:

sudo nano /etc/default/grub

2. Найдите строку GRUB_DEFAULT=0 и измените значение на GRUB_DEFAULT=saved. Это позволит сохранить последний выбраный вариант загрузки.

3. Добавьте следующие строки после строки с опцией GRUB_DEFAULT=saved:

GRUB_SAVEDEFAULT=true

GRUB_TIMEOUT_STYLE=menu

4. Найдите строку GRUB_TIMEOUT=5 и измените значение на то, которое вам нужно. Это определяет количество секунд задержки перед автоматической загрузкой дефолтной операционной системы.

5. Добавьте следующую строку, чтобы настроить цвет фона главного меню grub2:

GRUB_BACKGROUND="/путь/к/изображению/background.jpg"

Замените /путь/к/изображению/background.jpg на путь к изображению, которое вы хотите использовать в качестве фона. Изображение должно быть в формате jpg.

6. Нажмите Ctrl + O, чтобы сохранить изменения, а затем нажмите Ctrl + X, чтобы выйти из редактора nano.

7. Обновите файл конфигурации grub2, выполнив следующую команду:

sudo update-grub

Теперь вы успешно отредактировали файл конфигурации grub2 для добавления Windows в меню загрузки. После перезагрузки вашей системы вы увидите новую опцию для загрузки Windows.

Шаг 4: Перезапуск grub2 для применения изменений

После всех предыдущих шагов необходимо перезапустить grub2, чтобы изменения в конфигурации вступили в силу. Для этого выполните следующие действия:

1. Откройте терминал или консоль суперпользователя.

2. Введите команду:

sudo update-grub

3. Нажмите Enter и дождитесь завершения обновления grub2.

4. Перезагрузите компьютер, чтобы убедиться, что изменения вступили в силу и Windows появилась в меню grub2.

Шаг 5: Проверка добавления Windows в grub2

После выполнения предыдущих шагов, добавление Windows в grub2 должно быть завершено. Теперь давайте проверим, правильно ли Windows была добавлена в меню grub2.

  1. Перезагрузите компьютер. При появлении экрана загрузки выберите операционную систему Linux.
  2. Дождитесь, пока Linux загрузится полностью.
  3. Откройте терминал и выполните команду sudo update-grub. Это обновит конфигурацию grub2.
  4. Перезагрузите компьютер и при появлении экрана загрузки выберите «Advanced options for Ubuntu».
  5. В списке доступных ядер Linux найдите «Windows Boot Manager».
  6. Выберите «Windows Boot Manager» и нажмите Enter, чтобы запустить Windows.

Если Windows успешно запускается после выбора «Windows Boot Manager» в меню grub2, это означает, что Windows была успешно добавлена в grub2. Вы можете перезапустить компьютер еще раз для дополнительной проверки.

Put this in your /etc/grub.d/40_custom file:

menuentry 'Windows 10' {
search --fs-uuid --no-floppy --set=root D464-A236
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi }

Where D464-A236 is the UUID of your windows UEFI partiton. You can find this by doing fdisk -l, and looking for a partition called «EFI System», but also make sure you are looking at the correct drive, you might have 2 or more EFI partitions, if you have multiple OSes. You want the one that is on the same device as the «Windows recovery environment». After you have the device, you can query the UUID with blkid, eg. blkid /dev/sda2.

Leave the chainloader line as it is, grub will evaluate the (${root}) part. If you want to make extra sure, you can mount the aforementioned EFI partition, and verify that the path to bootmgfw.efi is correct. Don’t forget to run grub-mkconfig -o /boot/grub.cfg after making the modification.

  • Как добавить второго пользователя в windows 11
  • Как добавить блютуз устройство на windows 10
  • Как добавить в фаерволе в исключения windows 10
  • Как добавить блютуз в центр уведомлений windows 10
  • Как добавить виртуальный привод в windows 10