Как в загрузчик grub добавить windows 10

Многие новички и опытные пользователи Linux держат также установленной на своем компьютере операционную систему Windows, например, последней, десятой версии. Новичкам это нужно чтобы иметь запасную операционную систему, к которой они смогут вернуться, если их Linux сломается. А для опытных пользователей важно программное обеспечение, которое не поддерживается ни в Linux, ни даже с помощью эмулятора Wine, а таких программ достаточно много.

Но временами случается такая ситуация, что загрузчик Grub не распознает установленную Windows и не отображает ее в списке систем для загрузки. В этой статье мы рассмотрим почему возникает ошибка grub не видит Windows 10 и как ее решить.

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

Сначала можно попытаться сделать наш с Windows раздел более видимым для программы. Для этого примонтируйте его в какую-либо папку. Например, в /mnt/:

sudo mount -t ntfs-3g -o ro /dev/sda1

Я предполагаю, что система Windows установлена на разделе, который определяется в Linux, как /dev/sda1. Дальше запустите утилиту os-prober:

sudo os-prober

Если программа обнаружит Windows, то вам останется обновить конфигурацию загрузчика Grub:

sudo update-grub

Или:

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

Если же этот способ не сработает, а он, скорее всего, не сработает, то вам останется только вручную добавить пункт меню для Windows. Это не самое простое, но зато эффективное решение. Сначала нам нужно узнать UUID раздела диска, на который установлена Windows, например, /dev/sda1:

blkid /dev/sda1

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

menuentry "Windows 10" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set B4A6AEB7A6AE7A0E
chainloader +1
}

Если кратко, то здесь мы устанавливаем в качестве корня первый раздел первого диска, а затем указываем загрузчику, что нужно найти раздел с нужным нам UUID. Затем передаем управление загрузчику на этом разделе с помощью chainloader. Дальше осталось обновить конфигурацию Grub:

sudo update-grub

Мы использовали такой метод потому что теперь настройка не собьется после обновления ядра или другого процесса, инициализирующего обновление конфигурации. Потому что если бы мы добавили эти строки в /boot/grub/grub.cfg, то они были бы перезаписаны если не при первом, то при одном из следующих обновлений системы.

Когда конфигурация обновлена вы можете перезагрузить компьютер и загружать Windows с помощью нового пункта. Таким образом, можно добавить несколько пунктов, только для разных разделов нужно указывать их UUID.

Выводы

В этой небольшой статье мы разобрали что делать когда у вас возникнет ошибка grub не видит windows 10 и какими способами ее можно исправить. На самом деле решение очень простое, если вы не используете систему с UEFI. В варианте с EFI загрузка Windows управляется не Grub, а загрузчиком UEFI, но при использовании Linux рекомендуется отключить эту технологию.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

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: Установка Windows на диск с Linux
  • Способ 2: Обнаружение раздела Windows
  • Способ 3: Ручное добавление загрузчика
  • Вопросы и ответы

grub не видит Windows 10

Способ 1: Установка Windows на диск с Linux

Одной из наиболее распространенных причин отсутствия Windows 10 в загрузочном меню «Grub» является установка Windows не на тот же физический диск, на который устанавливается Linux. Если нужно установить на один компьютер Windows и Linux, устанавливайте их по возможности на один физический жесткий диск, причем первой необходимо установить Windows. Если сперва будет установлена Linux, а затем Windows, то есть большая вероятность, что загрузчик Windows затрет «Grub».

Если переустановка Windows 10 по какой-то причине невозможна, попробуйте обнаружить ее из среды Linux и добавить в загрузчик последней.

  1. Определите в Linux название раздела, на который установлена Windows. Получить сведения о дисках и разделах в Linux можно как из «Терминала», так и с помощью штатного приложения «Дисковая утилита». Скопируйте или запомните название устройства. Например, это будет «/dev/sda1».
  2. grub не видит Windows 10.1

  3. Откройте «Терминал» и примонтируйте раздел с Windows 10, для чего выполните команду sudo mount -t ntfs-3g -o ro /dev/sda1, где /dev/sda1 — полученный на предыдущем этапе путь к тому с Windows.
  4. Чтобы обнаружить Windows 10, выполните тут же в «Терминале» команду sudo os-prober.
  5. grub не видит Windows 10.2

  6. В случае успешного обнаружения Windows обновите конфигурацию «Grub» командой sudo update-grub либо же sudo grub2-mkconfig -o /boot/grub/grub.cfg.
  7. grub не видит Windows 10.3

Способ 3: Ручное добавление загрузчика

При использовании первого способа вероятность сходу обнаружить и прописать Windows 10 в линуксовый загрузчик довольно невелика. Более сложным, но и более эффективным способом восстановления записи Windows 10 в загрузочном меню Grub является ручное добавление. Способ универсальный, использовать его можно не только при потере Windows 10, но и других операционных систем Windows.

  1. Узнайте название раздела с Windows как было показано в первом пункте предыдущего способа.
  2. Определите UUID раздела, на котором установлена Windows 10, для чего выполните в «Терминале» команду blkid /dev/sda1, где /dev/sda1 — название раздела с Windows.
  3. grub не видит Windows 10.4

  4. Откройте любым текстовым редактором файл /etc/grub.d/40_custom и вставьте в него следующий код, где XXXXXXXXXXXXXXXX — полученный на предыдущем шаге UUID:

    menuentry "Windows 10" {
    insmod ntfs
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set XXXXXXXXXXXXXXXX
    chainloader +1
    }
    .
    Сохраните файл.

  5. grub не видит Windows 10.5

  6. Обновите конфигурацию Grub командой sudo update-grub, перезагрузите компьютер и посмотрите, появилась ли Windows в загрузочном меню Grub.

Если восстановить/добавить запись Windows 10 в загрузочное меню «Grub» не удалось, проверьте, не удален ли на диске служебный 100 МБ NTFS-раздел с загрузочными файлами. Если удален, можно будет попробовать его восстановить, но будет гораздо проще переустановить Windows и Linux. В том случае, когда используется «Grub 2» на UEFI, попробуйте включить в BIOS режим «Legacy».

Еще статьи по данной теме:

Помогла ли Вам статья?

  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.

Я недавно получил компьютер из школы. Он пришел с установленной 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 создать папку archives
  • Как в дистрибутиве посмотреть версию windows
  • Как ввести windows 10 pro в домен
  • Как ввести компьютер в спящий режим windows 10
  • Как в меню добавить панель управления в windows 10 в меню пуск