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

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!

  1. I have installed Windows 10
  2. I have installed Linux Mint Silvia and I have chosen a device for boot loader installation — sda.
  3. There is not Windows 10 in grub menu when the system starts
  4. I have booted via Linux Mint live USB.
  5. I Do step by step https://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd
  6. But it still no Windows 10 in grub menu
  7. I have booted via live windows 10 USB.
  8. With restoration tools, I have chosen the command line
  9. I have fixed Mbr by console command bootrec /FixMbr
  10. Ok, windows 10 is loading by there is no Grub.
  11. I have repeated steps 4 and 5
  12. There is no result

Also, I have tried to change grub config with this answer
https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list#answer-977251 — But in this case, There is Windows 10 — but when I chose — I will recursively going to grub

And with this answer
https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list#answer-890562
I have an error message when chose Windows 10 — There is no bootmgr directory

Thanks @Kinnectus for help

Also, I have tried

sudo os-prober

And getting

/dev/sda1:FreeDOS:FreeDOS:chain
/dev/sda2:FreeDOS:FreeDOS1:chain

And then I have tried

sudo update-grub

And getting

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.10.0-38-generic
Found initrd image: /boot/initrd.img-4.10.0-38-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found FreeDOS on /dev/sda1
Found FreeDOS on /dev/sda2
done

Unfortunately — there is not Windows 10 in grub menu

Also, I have fdisk output.

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  16779263  16777216     8G  c W95 FAT32 (LBA)
/dev/sda2  *     16779264  33556479  16777216     8G  c W95 FAT32 (LBA)
/dev/sda3        33556480 770219115 736662636 351,3G  7 HPFS/NTFS/exFAT
/dev/sda4       770220030 976771071 206551042  98,5G  5 Extended
/dev/sda5       770220032 976771071 206551040  98,5G 83 Linux

Partition 4 does not start on physical sector boundary.

There is an issue.
Maybe the problem is with this issue?

Please, help me, I am stucking with this a whole day.
I completely have no idea, what am I doing wrong.

Updating GRUB via the Terminal may be the fastest solution

by Afam Onyimadu

Afam is a geek and the go-to among his peers for computer solutions. He has a wealth of experience with Windows operating systems, dating back to his introduction… read more


Updated on

  • GRUB allows users to choose between operating systems installed on their computers at startup.
  • You may update GRUB to force it to notice newly added OS like Windows 11. 

XINSTALL BY CLICKING THE DOWNLOAD
FILE

GRUB (GRand Unified Bootloader) is the bootloader that allows you to choose between different operating systems installed on your computer when you start it up. It provides a menu that lists all the available operating systems, and you can select the one you want to boot into.

However, when you install a new operating system, it may not appear in the GRUB menu. This can happen if the new operating system wasn’t set up to work with GRUB during installation or the bootloader was overwritten.

This article will explain why GRUB may not show Windows 11 and how you can add it to the GRUB menu in just a few steps.

Why is GRUB not showing Windows 11?

There are a few different reasons why Windows 11 may not be showing up in the GRUB menu.

  • Incomplete installation – One possibility is that the installation or boot process did not correctly set up Windows 11 to work with GRUB. This can happen if the installer does not detect the other operating systems on the computer.
  • Overwriting during installation – This can happen if the user chooses to install Windows 11 in the same partition as an existing operating system or if the user chooses to install Windows 11 to the same drive as the bootloader.

Note that there are different related issues users have faced, including GRUB rescue, deleted GRUB,

If Windows 11 is not showing up in the GRUB menu, you can add it by editing the GRUB configuration file and adding an entry for Windows 11. Below we outline the steps you must take.

1. Update GRUB

  1. Boot into an operating system that is already listed in the GRUB menu.
  2. Press Ctrl + Alt + T to launch the Terminal.
  3. Lastly, enter the script below:
    sudo update-grub
    add windows 11 to grub

This will update the GRUB configuration file and scan all partitions on your hard drive to detect operating systems that aren’t listed in the GRUB menu.

2. Manually add a GRUB entry

  1. Press Ctrl + Alt + T to launch the Terminal.
  2. Enter the script below to open the GRUB configuration file:
    sudo nano /etc/grub.d/40_custom
    add windows 11 to grub
  3. Now, paste the below lines of code at the end of the file (ensure to replace hdx,y with the partition where Windows 11 is installed):
    menuentry "Windows 11" {
    set root=(hdx,y)
    chainloader +1
    ntldr /bootmgr
    }
  4. Press Ctrl + X, then Y to save the changes made.
  5. Again, the script below to apply your changes:
    sudo update-grub
  6. Finally, restart the computer.
Read more about this topic

  • How to Type Accents on Windows 11
  • How to Disable the Insert Your Security Key Into the USB Port popup
  • DTS Sound Unbound for Windows 11: Download & Install
  • How to Remove Windows Copilot on Windows 11

It is important to note that some details may vary depending on your specific system configuration. However, back up your current GRUB configuration before making any changes. Also, select the proper partition and drive to avoid boot problems.

Let us know in the comments below what worked for you.

newsletter icon

  • Печать

Страницы: [1] 2  Все   Вниз

Тема: Как прописать Windows в GRUB?  (Прочитано 28888 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
Petron

У меня два жестких диска. На одном установлена Ubuntu 9.10 (sda 6), на другом — Windows Vista (sdb 1). Как мне прописать загрузчик WIndows в linux?

« Последнее редактирование: 15 Февраля 2010, 00:19:35 от Petron »


Оффлайн
pinger

запусти /etc/grub.d/30_os-prober
затем grub-setup
или как настоятельно не рекомендуют правкой /boot/grub/grub.cfg
дописать после вариантов загрузки Linux следующее
# Windows
menuentry «Windows» {
set root=(hd0,0)
chainloader +1
}

p.s. если меню не отображается, то при старте компа удерживать нажатыи Shift

« Последнее редактирование: 15 Февраля 2010, 01:18:15 от pinger »


Оффлайн
Petron

запусти /etc/grub.d/30_os-prober
затем grub-setup
или как настоятельно не рекомендуют правкой /boot/grub/grub.cfg
дописать после вариантов загрузки Linux следующее
# Windows
menuentry «Windows» {
set root=(hd0,0)
chainloader +1
}

p.s. если меню не отображается, то при старте компа удерживать нажатыи Shift

/etc/grub.d/30_os-prober выдает следующее:

Found Windows Vista (loader) on /dev/sdb1
menuentry "Windows Vista (loader) (on /dev/sdb1)" {
insmod ntfs
set root=(hd1,1)
search --no-floppy --fs-uuid --set 52c606cbc606aef3
chainloader +1
}
А grub-setup:

No device is specified.


Оффлайн
pinger

запусти /etc/grub.d/30_os-prober
затем grub-setup
или как настоятельно не рекомендуют правкой /boot/grub/grub.cfg
дописать после вариантов загрузки Linux следующее
# Windows
menuentry «Windows» {
set root=(hd0,0)
chainloader +1
}

p.s. если меню не отображается, то при старте компа удерживать нажатыи Shift

/etc/grub.d/30_os-prober выдает следующее:Found Windows Vista (loader) on /dev/sdb1
menuentry "Windows Vista (loader) (on /dev/sdb1)" {
insmod ntfs
set root=(hd1,1)
search --no-floppy --fs-uuid --set 52c606cbc606aef3
chainloader +1
}
А grub-setup:
No device is specified.

Хочу заметить еще

No device is specified.
Try ``grub-setup --help'' for more information.

# grub-setup --help
Usage: grub-setup [OPTION]... DEVICE

Set up images to boot from DEVICE.
DEVICE must be a GRUB device (e.g. ``(hd0,1)'').

  -b, --boot-image=FILE   use FILE as the boot image [default=boot.img]
  -c, --core-image=FILE   use FILE as the core image [default=core.img]
  -d, --directory=DIR     use GRUB files in the directory DIR [default=/boot/grub]
  -m, --device-map=FILE   use FILE as the device map [default=/boot/grub/device.map]
  -r, --root-device=DEV   use DEV as the root device [default=guessed]
  -f, --force             install even if problems are detected
  -h, --help              display this message and exit
  -V, --version           print version information and exit
  -v, --verbose           print verbose messages

Report bugs to <bug-grub@gnu.org>.


следовательно

grub-setup /dev/sda


Пользователь решил продолжить мысль 15 Февраля 2010, 02:17:11:


menuentry "Windows Vista (loader) (on /dev/sdb1)" {
insmod ntfs
set root=(hd1,1)
search --no-floppy --fs-uuid --set 52c606cbc606aef3
chainloader +1
}

это можно собственно добавить в grub.cfg и без grub-setup

« Последнее редактирование: 15 Февраля 2010, 02:17:11 от pinger »


Оффлайн
Azteka

а что мешает банально выполнить sudo update-grub без всяких лишних шаманств?


Оффлайн
Ost

а что мешает банально выполнить sudo update-grub без всяких лишних шаманств?

+1
эта команда обычно находит все видимые загрузчики и прописывает их в grub.


Оффлайн
blood112

Народ, а подскажите чайнику…
Команда sudo update-grub Ее назначение я понял)) Что нужно для того чтобы каманда сработала? Просто ввести в терминале? Может что-то перед ней нужно? И работает ли эта команда с LifeCD? Нужны ли права root? Спасибо за внимание))


tagnupip

Generating grub.cfg …
Found linux image: /boot/vmlinuz-2.6.31-20-generic
Found initrd image: /boot/initrd.img-2.6.31-20-generic
Found memtest86+ image: /memtest86+.bin
Found Microsoft Windows 2000 Professional RUS on /dev/sdb1
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1.  Check your device.map.

такая вот ошибочка выскакивает при использовании команды update-grub. в окне загрузки винда видна-но не грузится.


Оффлайн
Azteka

Народ, а подскажите чайнику…

Просто ввести в терминале? — да
Может что-то перед ней нужно? — нет
И работает ли эта команда с LifeCD? — да, в случае восстановления груб, способ chroot, но действие данной команды, в этом случае, имеет другое назначение.


Оффлайн
blood112

tagnupip, а у тебя Винда после  update-grub перестала грузиться или и до этого не грузилась?


Оффлайн
dimas000

На одном установлена Ubuntu 9.10 (sda 6), на другом — Windows Vista (sdb 1)

menuentry «Windows Vista (loader) (on /dev/sdb1)» {
   insmod ntfs
   set root=(hd1,1)
   search —no-floppy —fs-uuid —set 52c606cbc606aef3
   chainloader +1
}

если винда на другом харде, то перед chainloader нужно еще сделать

drivemap -s (hdX) {root}вместо hdX — hd1 для sdb. без этой штуки грузится только если с того же харда. не проканает — пробуй hd0…

grub-probe: error: Cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
такая вот ошибочка выскакивает при использовании команды update-grub. в окне загрузки винда видна-но не грузится.
сказано же нерусским языком, чего сделать надо: Check your device.map.))
лежит оный в /boot/grub/device.map. должен иметь вид

(hd0) /dev/sda
(hd1) /dev/sdb
ну и так далее, для всех хардов

Found Microsoft Windows 2000 Professional RUS on /dev/sdb1

решпект! последняя более-менее адекватная ось от мелкомягких))


Оффлайн
MobyDick

всем привет.
есть два жестких диска. на одном windows xp, на другом —  ubuntu 9.10

так вот, загрузчик ntldr и grub тоже на разных дисках, то есть чтобы войти в винду или Ubuntu я в биосе в хард бут девайс меняю порядок жесткого диска.
вопрос: как сделать так, чтобы grub увидел винду — что, как и где прописать?
спасибо


tagnupip

всем привет.
есть два жестких диска. на одном windows xp, на другом —  ubuntu 9.10

так вот, загрузчик ntldr и grub тоже на разных дисках, то есть чтобы войти в винду или Ubuntu я в биосе в хард бут девайс меняю порядок жесткого диска.
вопрос: как сделать так, чтобы grub увидел винду — что, как и где прописать?
спасибо

sudo update-grub2    попробуй


Оффлайн
MobyDick

всем привет.
есть два жестких диска. на одном windows xp, на другом —  ubuntu 9.10

так вот, загрузчик ntldr и grub тоже на разных дисках, то есть чтобы войти в винду или Ubuntu я в биосе в хард бут девайс меняю порядок жесткого диска.
вопрос: как сделать так, чтобы grub увидел винду — что, как и где прописать?
спасибо

sudo update-grub2    попробуй

благодарю. действительно, помогло


Оффлайн
zah_al

Здравствуйте. У меня тоже 2 жестких диска и стоит Ubuntu 9.10 и ХР на втором. Вот беда, граб находит загрузчик винды, прописывает, НО, у меня там когда-то семерка стояла ещё, и граб находит загрузчик от неё. Подскажите как вручную ntldr прописать, что там поправить?


  • Печать

Страницы: [1] 2  Все   Вверх

Я недавно получил компьютер из школы. Он пришел с установленной Windows 8.1. Затем я установил еще одну копию Windows 8.1 (чтобы она использовала встроенную лицензию Windows Pro) и обновил ее до Windows 10. Затем я установил Ubuntu вместе с Windows 8 и 10.

Обратите внимание, что я сделал отдельный раздел ext2 размером 255 МБ для /boot.

Теперь, когда я загружаю компьютер, я сначала вижу приглашение GRUB (я уже разархивировал приглашение grub, потому что оно мне так нравится) с параметрами Windows 8 и Ubuntu. Тем не менее, нет варианта Windows 10. Если я выберу Ubuntu, компьютер загрузится в Ubuntu. Однако, если я выберу опцию Windows 8, меня затем отправят в загрузчик Windows, где он затем дает мне возможность загрузить либо Windows 8, либо Windows 10. (Однако к этому моменту компьютер уже загрузил ядро ​​и все Очевидно, Microsoft неправильно поняла концепцию загрузчика и решила, что это означает «загрузить практически всю систему перед тем, как на самом деле показать загрузчик». Типичный Microsoft.)

Как отключить загрузчик Windows и добавить опцию Windows 10 в GRUB? РЕДАКТИРОВАТЬ: Кто-то ответил, сказав мне, чтобы отключить загрузчик Windows. Однако я до сих пор не знаю, как добавить Windows в список ОС GRUB. Может кто-нибудь помочь с этим?

РЕДАКТИРОВАТЬ 2: После удаления Windows 10 из загрузчика Windows с EasyBCD, казалось, что после нескольких перезагрузок он будет постоянно показывать себя, и Windows 10 появится снова. Однако позже я удалил Windows 10 из списка операционных систем в msconfig, и он, похоже, остался удаленным.

Тем не менее, я все еще не смог заставить Windows 10 появиться в GRUB. Как будто GRUB просто не обнаруживает это.

Кроме того, я поставлю это в вопросе, чтобы люди видели это — я попытался использовать boot-repair Однако, это не помогло никому.

2015-08-15 22:09

6
ответов

Иногда os-prober не прав.

Посмотрите на UUID вашего раздела Windows 10, например:

sudo blkid /dev/sda2

Затем отредактируйте /etc/grub.d/40_customи в конце файла добавьте:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

Не забудьте изменить UUID.

И, наконец, обновите ваш конфигурационный файл grub:

sudo update-grub

Источник


noraj

07 мар ’17 в 16:08
2017-03-07 16:08

2017-03-07 16:08

Это решение обеспечивает правильный вход в меню grub2 и загружает цепочки непосредственно в Windows 10 без ссылки на BIOS. Это происходит от https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi поэтому я не претендую на кредит. Было таким облегчением найти рабочее решение

Вкратце, отредактируйте /etc/grub.d/40_custom и добавьте:

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

Чтобы найти UUID для корневой строки —set= (в примере CC66-4B02), вы используете sudo fdisk -l для идентификации раздела EFI, затем sudo blkid /dev/sda1 (или любой другой) для поиска UUID раздела EFI, Обратите внимание, что вам нужен не раздел Windows, а EFI. После сохранения изменений запустите sudo update-grub, чтобы сгенерировать файл /boot/grub/menu.cfg, а затем перезапустите для проверки.

2017-11-17 00:50

Использование:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

Команды в терминале Ubuntu, возможно, это решит вашу проблему.

По этой команде система автоматически обнаружит установку окон и добавит их в список grub.


Neel Shah

16 авг ’15 в 02:20
2015-08-16 02:20

2015-08-16 02:20

Используйте это приложение EasyBCD для Windows http://neosmart.net/EasyBCD/ скачать бесплатную версию и установить ее.

Когда вы откроете его, вы увидите запись для Windows 8 и один для Windows 10.

удалите запись Windows 8, и вы будете в порядке.

Обновите после выполнения вышеуказанных шагов, вернитесь в Ubuntu,

открыть терминал, нажав Ctrl + Alt + T

затем скопируйте эти команды одну за другой,

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

и тем самым вы установите инструмент под названием boot-repair.

откройте восстановление загрузчика из тире, и вы получите это окно

выберите рекомендуемый ремонт и следуйте инструкциям.

Обратите внимание, что вы должны быть подключены к Интернету при использовании boot-repair.

2015-08-15 22:31

Насколько я понял ваш вопрос, у вас есть две разные установки Windows на одном или нескольких жестких дисках, и вы не хотите, чтобы загрузчик Windows мешал или управлял обеими установками Windows. Я помню, что на старых установках было возможно напрямую загрузить ядро ​​Windows из Grub (я могу ошибаться здесь), но я не смог сделать это на установках UEFI. Наличие двух независимых конфигураций загрузчика Windows, которые можно вызывать из Grub независимо, должно быть очень близко к тому, что вы ищете.

Он пришел с установленной Windows 8.1.

Я собираюсь предположить, что это компьютер с поддержкой UEFI.

  1. Проверьте, действительно ли компьютер поддерживает UEFI (я удалю свой ответ, если это не так) и ознакомьтесь с различиями между BIOS и UEFI ( разные режимы загрузки, efibootmgr, разные таблицы разделов, системный раздел EFI (ESP), загрузчики EFI…).
  2. Затем убедитесь, что все операционные системы установлены в режиме UEFI, и убедитесь, что у вас есть таблица разделов GPT. Вы можете использовать Windows dism чтобы выполнить резервное копирование и восстановление разделов в новом макете таблицы разделов и использовать командную строку с последнего установочного носителя Windows для переустановки загрузчика, подробнее об этом см. в следующем пункте.
    • Поскольку вам было рекомендовано попробовать различные другие инструменты, которые не решают вашу проблему, вы должны вернуть эти изменения в первоначальное состояние, иначе это будет становиться все более и более запутанным. Извини за это.:(
  3. Вы можете использовать мой ответ из раздела Как загрузить Windows 8 с устаревшего раздела MBR в режиме UEFI через GRUB?
    • Этот ответ устанавливает независимую конфигурацию загрузчика Windows через bcdboot в другом месте, где Grub будет называть это. Для удобства я выбрал корневой раздел Windows. Это необходимо сделать для каждой установки Windows, чтобы каждая установка Windows имела свою собственную и загружалась только сама (очистите отдельные меню загрузки Windows от других записей).
    • Помните, что вам нужно создать отдельную запись для каждой установки Windows, в которой вы хотите загрузиться /etc/grub.d/40_custom и следуйте инструкциям и объяснениям относительно UUID, разделов и таблиц разделов.
    • Вероятно, отключите все полу-умные функции, которые обнаруживают различные ОС, такие как OS-Prober в Grub (GRUB_DISABLE_OS_PROBER) или устранение неполадок при загрузке с Windows или загрузку-восстановление (или ручную очистку после них).

NB: Ваш запрос состоял в том, чтобы иметь возможность управлять всеми операционными системами с помощью Grub, однако в UEFI традиционный термин «двойная загрузка» становится почти неправильным. UEFI позволяет сосуществовать нескольким загрузчикам на ESP, и вы можете выбрать, какой из них загружать (если они были зарегистрированы в прошивке UEFI, а прошивка производителей не идет на попечение, как только загрузка Windows). Печально то, что очень немногие могут подумать об установке более чем одной (независимой) версии Windows, Linux или одного выпуска Ubuntu на один компьютер (или жесткий диск, который используется на нескольких компьютерах и загружает другую установку одна и та же версия ОС на каждом компьютере). Большая часть этого уже возможна, но механизмы в Windows и Ubuntu (Fedora,…) явно предпочитают перезаписывать то, что находится в их пространстве имен, при ложном предположении, что их может быть только один.

(Я загружаю Windows8/10, Ubuntu, Ubuntu LTS и Fedora на одном компьютере и несколько раз возился с загрузкой UEFI в соответствии с различными требованиями.)

2015-11-14 14:13

Вам необходимо создать новый раздел EFI для установленных позже окон. Поскольку у первого установленного был собственный EFI, но более поздний, видящий другие окна, просто добавил свою собственную запись в загрузчик, теперь создавая свой собственный EFI в /EFI/Microsoft/Boot/bootmgfw.efi, поэтому запустите CMD как администратор в вашей Windows 10 и введите следующие команды (Отсюда на TenForums):

diskpart
list disk
select disk # Note: Select the disk where Win10 is installed
list partition
select partition # Note: Select the Win10 installation partition.
shrink desired=100
create partition efi size=100
format quick fs=fat32
assign letter=s
list partition
list volume Note: Note the volume letter where the Win10 is installed.
exit

bcdboot X:\windows /s S:
Note: Replace "X" with the volume letter of the Win10 partition.

BCDBoot копирует загрузочные файлы из раздела Windows в системный раздел EFI и создает хранилище BCD в том же разделе.

Теперь просто добавьте запись, указывающую на этот раздел, например, в /etc/grub.d/40_custom или (любой пользовательский файл в /etc/grub.d/):

insmod part_gpt
insmod ntfs
set root=hd1,gpt10
chainloader /EFI/Microsoft/Boot/bootmgfw.efi


Ahmed

09 авг ’20 в 22:27
2020-08-09 22:27

2020-08-09 22:27

Просто войдите в свою ОС Ubuntu, откройте терминал:

sudo update-grub

перезагружать


Nidhan

15 май ’17 в 12:33
2017-05-15 12:33

2017-05-15 12:33

Windows 10, по большей части, будет добавлена ​​в загрузочное меню grub с помощью os-prober автоматически.

Для моей конкретной настройки я хотел полностью скрыть меню grub и автоматически загружать окна, если для загрузки Ubuntu не была нажата горячая клавиша. Итак, в моем конкретном случае os-prober не подходит, потому что самый важный шаг в сокрытии меню grub, о котором я не упоминал в большинстве ответов, — это установить флаг отключения os-prober, иначе меню будет отображаться до тех пор, пока os -пробер завершает.

На то, чтобы получить правильный ответ, потребовалось значительно больше времени, чем я ожидал, потому что существует так много частичных ответов, но большинство из них зависят от версии и могут сбить вас с пути. Я потратил много времени, пытаясь написать свою собственную запись меню grub, пытаясь использовать команды grub, которых не существовало, как ntdlr. Еще одно предостережение: функции chainloader на моем grub пытаются загрузить bios not efi, и это не сработает (я уверен, что делал что-то не так?)

В конце концов, решение оказалось на самом деле простым, поскольку сценарии, которые заставляют ваш /boot/grub/grub.cfg делать большую часть работы за вас по поиску UUID для ваших загрузочных разделов. Таким образом, вы можете пропустить шаги fdisk и blkid, о которых упоминает большинство людей.

Итак, шаг 1 — убедиться, что /boot/grub/grub.cfg актуален, используя update-grub для создания файла.cfg. В терминале

       sudo update-grub

Шаг 2 — добавить пользовательские пункты меню в /etc/grub.d/40_custom. Не тратьте время, пытаясь написать свой собственный, просто откройте /boot/grub/grub.cfg, найдите » menuentry » и скопируйте автоматически сгенерированные записи.

Первым в списке будет убунту мой выглядит так

       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

}

Винда будет похожей. Скопируйте оба файла в /etc/grub.d/40_custom. Единственное изменение, которое я сделал для Ubuntu, — это добавление флага —hotkey=key, который заставит grub загружать ОС, связанную с этой горячей клавишей.

       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

}

Я использую —hotkey=u здесь, чтобы установить горячую клавишу загрузки Ubuntu на u.

Затем я изменил запись в Windows, заменив $menuentry_id_option на флаг grub —id.

       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

}

Я использовал —id windows-custom. Сохраните изменения в /etc/grub.d/40_custom.

Наконец, откройте / etc / default / grub и добавьте

       GRUB_DISABLE_OS_PROBER=true

изменение
GRUB_DEFAULT=0 к
GRUB_DEFAULT=windows-custom и изменить
GRUB_TIMEOUT=10по вашему выбору я использую 0,5, чтобы дать себе немного больше времени, чтобы нажать u, чтобы загрузить Ubuntu после POST.

Надеюсь, это избавит кого-то от головной боли, ура!



26 июн ’20 в 18:33
2020-06-26 18:33

2020-06-26 18:33

После долгого поиска решения, а также из-за того, что я ленился из-за того, что не пытался потратить еще час на выяснение, что и где мне следует редактировать и обновлять (поскольку это было бесполезно), я в конце концов установил Grub Customizer. Творит чудеса!



06 май ’20 в 22:21
2020-05-06 22:21

2020-05-06 22:21

  • Как добавить windows server 2003 в домен
  • Как добавить wifi сеть вручную на windows 10
  • Как добавить wifi в компьютер windows 10
  • Как добавить webstorm в контекстное меню windows
  • Как добавить vpn подключение на windows 10