Добавить Windows 10 в список GRUB OS

Недавно я получил компьютер из школы. Он пришел с установленной 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, однако, это НЕ помогло никому.

49
задан 19 November 2015 в 07:59

9 ответов

используйте это приложение 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 из тире, и вы получите это окно

enter image description here

выберите рекомендуемый ремонт и выполните шаги.

Note у вас есть для подключения к Интернету при использовании восстановления загрузки.

11
ответ дан 19 November 2015 в 17:59

Используйте команды:

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

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

С помощью этой команды система автоматически обнаружит ваши установки Windows и добавит их в список GRUB.

28
ответ дан 19 November 2015 в 17:59
  • 1
    который является общим местом для создания - > что делает средства здания в человечности. – obo 9 November 2016 в 15:23

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

Он поставляется с установленной Windows 8.1.

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

  1. Пожалуйста, проверьте, что компьютер действительно поддерживает UEFI (я удалю свой ответ, если это не так) и ознакомьтесь с различиями между BIOS и UEFI (различными режимами загрузки, efibootmgr, различными таблицами разделов, EFI системным разделом (ESP), EFI загрузчиками...).
  2. Затем проверьте, что все операционные системы установлены в режиме UEFI и проверьте, что у вас есть таблица разделов GPT. Вы можете использовать dism Windows для резервного копирования и восстановления разделов в новую таблицу разделов и использовать командную строку с последнего установочного носителя 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 или при восстановлении загрузки (или ручной чистке после них).

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

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

5
ответ дан 19 November 2015 в 17:59
  • 1
    @WinEunuuchs2Unix you' ve получил его назад тогда. Изучите мерзавца перед большинством из тех. – muru 7 November 2016 в 19:09

Иногда 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

Источник

29
ответ дан 19 November 2015 в 17:59
  • 1
    Извините, я don' t понимают Ваш вопрос. Инструкции по установке для Ubuntu цитируются в разделе 2 из моего ответа. – David Foerster 9 November 2016 в 20:48

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

sudo update-grub

перезагрузите

2
ответ дан 19 November 2015 в 17:59
  • 1
    @WinEunuuchs2Unix, да, Вы закрепили его в голове, что затем после нажимает зеленую кнопку (клон или загрузка) – obo 8 November 2016 в 02:16

Это решение обеспечивает правильный вход в меню grub2 и загружается напрямую в Windows 10 без ссылки на BIOS. Он взят с этой веб-страницы , поэтому я не претендую на кредит. Было большим облегчением найти рабочее решение.

Вкратце, отредактируйте /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 = строка root (CC66-4B02 в примере) вы используете sudo fdisk -l для идентификации раздела EFI, затем sudo blkid / dev / sda1 (или что-то еще), чтобы найти UUID раздела EFI. Обратите внимание, что это не раздел Windows, а нужный вам EFI. После сохранения изменений запустите sudo update-grub , чтобы сгенерировать файл /boot/grub/menu.cfg , а затем перезапустите его для проверки.

22
ответ дан 23 November 2019 в 00:56

Вам необходимо создать новый раздел 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
1
ответ дан 5 January 2021 в 22:50

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

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

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

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

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

sudo update-grub

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

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

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 будет похожей. Скопируйте оба файла в /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.

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

0
ответ дан 5 January 2021 в 22:50

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

0
ответ дан 5 January 2021 в 22:50

Другие вопросы по тегам:

Похожие вопросы: