Grub не отображает windows

На ноутбуке с двойной загрузкой (Ubuntu 22.04 + Windows 10) не отображается меню GRUB, в котором можно выбрать операционную систему для загрузки (Linux или Windows). По-умолчанию на ноутбук всегда загружается Ubuntu, а GRUB меню просто не показывается опцию для загрузки Windows 10.

На ноутбук были последовательно установлены Windows и Ubuntu, в качестве загрузчика выбран GRUB. GRUB успешно определил что на компьютере установлены две операционные системы и добавил файл загрузчика Windows (/EFI/Microsoft/Boot/bootmgfw.efi) в список доступных. Но после перезагрузки GRUB меню не отобразилось.

Чтобы показать меню GRUB можно при загрузке зажать:

  • клавишу
    Shift
    (на компьютерах с BIOS)
  • клавишу
    Esc
    (для современных компьютеров с UEFI)

Если это не помогло, нужно отредактировать конфигурационный файл GRUB. Загрузитесь в Linux и включите отображение меню GRUB, добавив (раскомментировав) следующие строки в /etc/default/grub:

$ sudo nano /etc/default/grub

GRUB_TIMEOUT=20

Эта опция включает таймаут 20 секунд, которые должен ждать GRUB при загрузки на этапе выбора операционной системы. Убедитесь, что в конфигурационном файле нет строки GRUB_TIMEOUT=0

Проверьте, есть ли в конфиг файле строка:

GRUB_TIMEOUT_STYLE=hidden

Если такая строка есть, закоментируйте ее или измените на

GRUB_TIMEOUT_STYLE=menu

Если параметра нет, создайте его вручную. Проверьте, что в конфиг файле нет параметров GRUB_HIDDEN.

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

$ 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-25-generic
Found initrd image: /boot/initrd.img-5.15.0-25-generic
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings...
done

sudo update-grub - обновить конфигурацию GRUB

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

Если меню GRUB все еще не показывается, возможно GRUB не поддерживает видео режим вашего графической адаптера. Вы можете вместо графического GRUB меню отобразить консольное меню. Для этого добавьте в файл etc/default/grub строку:

GRUB_TERMINAL=console

включить режим консольного меню в GRUB

Сохраните файл и обновите конфигурацию:

$ sudo update-grub

Перезагрузите устройство и убедитесь, что GRUB теперь показывает загрузочное меню.

GRUB меню показывает список доступных операционных систем для загрузки

Grub (GNU GRand Unified Bootloader) — свободный загрузчик операционных систем, который используется во многих дистрибутивах Linux. Он позволяет выбирать операционную систему для загрузки при старте компьютера и управлять процессом загрузки системы, также поддерживает загрузку различных OS, включая различные версии Linux, Windows, macOS, позволяет настраивать параметры загрузки, создавать различные профили загрузки и выполнять другие задачи, связанные с загрузкой операционных систем.

Grub обычно устанавливается в начало жесткого диска компьютера и запускается при старте системы для предоставления пользователю возможности выбора операционной системы для загрузки. Grub является важной частью многих дистрибутивов Linux и играет ключевую роль в процессе загрузки операционной системы.

GRUB (GNU GRand Unified Bootloader) — мощный и гибкий загрузчик операционных систем, который используется во многих дистрибутивах Linux и других операционных систем, таких как FreeBSD. GRUB предоставляет пользователю возможность выбора операционной системы или ядра, которое нужно загрузить при старте компьютера.

Позволяет загружать различные операционные системы, а также варианты загрузки для конкретной операционной системы, например, в безопасном режиме или с другими параметрами загрузки. Он также поддерживает многоядерные системы и может автоматически обнаруживать установленные операционные системы на жестком диске. Имеет гибкую конфигурацию, которая позволяет пользователям настраивать параметры загрузки, добавлять новые ядра или операционные системы в меню загрузки, а также выполнять другие действия при загрузке системы.

GRUB является одним из наиболее распространенных загрузчиков для систем Linux и используется по умолчанию во многих дистрибутивах Linux, таких как Ubuntu, Fedora, Debian и многих других.

Если Grub не видит Windows 10 при загрузке, возможно, что загрузочная запись Windows была повреждена или удалена. Есть несколько причин, почему так происходит:

  1. Неправильная конфигурация: если Grub неправильно сконфигурирован или не обновлен после установки Windows 10, он может не видеть новую операционную систему.
  2. Изменения разделов диска: после установки Windows 10 могли произойти изменения в разделах диска, из-за чего Grub перестал её видеть..
  3. Проблемы с загрузочным сектором: некорректное обновление загрузочного сектора или MBR (Master Boot Record) могут привести к проблеме.
  4. Проблемы с UEFI/BIOS: некорректные настройки в UEFI или BIOS компьютера могут привести к тому, что Grub не сможет правильно обнаружить операционную систему.
  5. Поврежденные файлы загрузки: если файлы загрузки повреждены или отсутствуют, Grub не сможет их обнаружить.

Дальше расскажем, что же делать, если возникла такая проблема.

Сначала можно попытаться сделать наш с 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.

Была установлена Windows7, которой я пользовался достаточно длительное время. Захотел освоить убунту. Т.к. нельзя было уничтожать инфу и пока не разберусь с убунтой, решил оставить винду на всякий случай.
Разбивка получилась бредовая, но по другому никак(
вот результат fdisk -l

7e71f7e4ccdb473a91d309a5b19e6b85.png

sda1 — /boot/
sda2 — мой диск E в винде
sda3 — windows
sda5 — мой диск D в винде
sda6 — swap
sda7 — /
sda8 — /home/

grub-update делал, но он не видит винду. Появляется только убунту и 2 штуки сканирования памяти.
Установил пакет boot-repair.
Попытался востановить MBR винды, но после этого вылезла такая штука минуя граб:
BOOTMGR is missing
Press ctrl+alt+del to restart

лог: ЛОГ

Обратно всё вернулось после выбора рекомендуемых параметров boot-repair. Лог от boot-repair: ЛОГ

Подскажите пожалуйста как подружить ubuntu и Windows7 в моей ситуации. Целый день карачился и ничего так и не получилось.


  • Вопрос задан

  • 11872 просмотра

Все предложенные варианты — не помогли((
Пришлось переразбивать винт и нормально, последовательно всё ставить.

Пригласить эксперта

Нормальная практика;) последовательность действий следующая-> востанавливаете загрузчик винды(для этого нужен образ винды) после этого будет загружаться винда, после востанавливаете grub с помощью live-cd ubuntu

Возможно поможет

sudo -s
apt-get install os-prober
update grub

Это стандартные проблемы, которые связанны с MBR и различными флагами.

Если хотите быстро и просто решить проблему, грузите Ubuntu и устанавливайте Boot-Repair:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo sed 's/trusty/saucy/g' -i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list
sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

Если нужны детали, обращайтесь сюда: Boot Repair

Добавте в /etc/grub.d/40_custom , (или создать, пример, 50_windows)

menuentry 'Windows' {
	insmod part_msdos
        insmod fat
 	insmod ntfs
        insmod ntldr
 	set root='hd0,msdos1'
        search --no-floppy --file --set=root /bootmgr
	ntldr /bootmgr
}

update-grub

Скорее всего, у Вас UEFI/EFI. У меня такое было после установки линукса паралельно с Windows 7 на EFI. Grub просто не «подхватил» нужную запись.
В линуксе сделайте в терминале, пот рутом:

~# update-grub
~# reboot

Если не появился нужный пункт в списке систем, продолжаем. Выполните под рутом:

~# grub-probe —target=fs_uuid /boot/*/*/Microsoft/Boot/bootmgfw.efi
выводом будет Ваш идентификатор диска с виндой — выпишем его на бумагу

затем выполните (я использую vim, если не знакомы — любой другой консольный редактор:
~# vim /etc/grub.d/40_custom
и в самый конец допишите, после всех комментариев с новой строки:

menuentry «Windows x86_64 UEFI-GPT» {
insmod part_gpt
insmod fat
search —fs-uuid —no-floppy —set=root ВАШ_ИДЕНТИФИКАТОР_С_БУМАГИ
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

После этого выполните от рута:
~# update-grub
~# reboot

Profit!

Войдите, чтобы написать ответ


  • Показать ещё
    Загружается…

Минуточку внимания

#
1 год, 8 месяцев назад

Темы:

4

Сообщения:

9

Участник с: 07 августа 2023

Всем ку!!! помогите, пожалуйста, поставил дуалбут, а граб Винду не видит…

перепробовал эти гайды:

https://lumpics.ru/grub-does-not-see-windows-10/

https://askubuntu.com/questions/216215/invalid-efi-file-path

и вроде в меню винда появляется, но либо не грузит, либо пишет «Invalid EFI file path»

помогите, прошу…

vasek

#
1 год, 8 месяцев назад

(отредактировано

1 год, 8 месяцев назад)

Темы:

47

Сообщения:

11925

Участник с: 17 февраля 2013

Информации мало, гадать никто не будет …
Для начала посмотри этот топик — возможно причина и в os-prober

Ошибки не исчезают с опытом — они просто умнеют

arruka

#
1 год, 8 месяцев назад

Темы:

4

Сообщения:

9

Участник с: 07 августа 2023

решение через os-prober тоже пробовал, но ничего не получилось т_т
весь интернет перерыл — ничего не помогает _(

однако!!!
если же проблема в грабе, то может снести граб и поставить systemd-boot?

zotkindm

#
1 год, 8 месяцев назад

Темы:

73

Сообщения:

591

Участник с: 21 мая 2014

arruka
если же проблема в грабе, то может снести граб и поставить systemd-boot?

У всех работает у одного тебя нет. EFI раздел монтировал?

Natrio

#
1 год, 8 месяцев назад

Темы:

48

Сообщения:

4771

Участник с: 08 января 2011

Для начала надо неплохо было бы выяснить, что за Windows, и загружается ли она из BIOS/UEFI (и жива ли вообще).
Видно ли там в вариантах загрузки «Windows boot manager»? Видно ли grub, arch или что-то в этом духе? В каком режиме (BIOS/UEFI) запускается GRUB?
Чтобы запустить загрузчик Windows из GRUB, они должны быть одинакового типа (BIOS-BIOS или UEFI-UEFI).

kononow

#
1 год, 8 месяцев назад

Темы:

0

Сообщения:

2

Участник с: 23 января 2022

arruka
решение через os-prober тоже пробовал, но ничего не получилось т_т
весь интернет перерыл — ничего не помогает _(

До того как в вики появилось я с этим столкнулся:
«os-prober might not work properly when run in a chroot. Try again after rebooting into the system if you experience this.»
Если всё правильно смонтировано(и т.д.), то должно работать.

acid_raccoon

#
1 год, 8 месяцев назад

Темы:

10

Сообщения:

111

Участник с: 08 мая 2020

Всем привет. Извините что немного не по теме. У кого dualboot win10 и arch в uefi режиме.
Поделитесь примером menuentry для win10 из grub.cfg которая создана командой
# grub-mkconfig -o /boot/grub/grub.cfg. Спасибо.

«Load universe into cannon. Aim at brain. Fire.» ©

RusWolf

#
1 год, 8 месяцев назад

Темы:

11

Сообщения:

2869

Участник с: 16 июля 2016

acid_raccoon
которая создана командой
# grub-mkconfig -o /boot/grub/grub.cfg.


### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Pro 11' --class windows --class os $menuentry_id_option 'osprober-efi-EC96-E1AD' {
	insmod part_gpt
	insmod fat
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  EC96-E1AD
	else
	  search --no-floppy --fs-uuid --set=root EC96-E1AD
	fi
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

https://t.me/arch_linuxru

acid_raccoon

#
1 год, 8 месяцев назад

(отредактировано

1 год, 8 месяцев назад)

Темы:

10

Сообщения:

111

Участник с: 08 мая 2020

RusWolf
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

Судя по этой строчке у тебя общий esp раздел для win и linux, и оба загрузчика находятся на нём.

А как chainloader должен выглядеть если win на отдельном диске, со своим esp и bootmgfw.efi не нём.
А arch тоже на отдельном диске со своим esp и grub соответственно на нём.

Если записываю так:

menuentry 'Windows10 PRO {
 insmod part_gpt
 insmod fat
 set root='hd0,gpt3'
 chainloader +1
}

получаю:

error: invalid EFI file path.
Press any key to continue...

[raccoon@acid ~ ]$ lsblk -lf
NAME      FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1
nvme1n1p1 vfat   FAT32       123D-8B24
nvme1n1p2
nvme1n1p3 ntfs               70E63E3AE63E00C0
nvme1n1p4 ntfs               E460541E6053F630
nvme0n1
nvme0n1p1 vfat   FAT32 esp   9022-2042                              98,2M     0% /boot/efi
nvme0n1p2 btrfs        btrfs 364ae37a-9425-45df-9dc8-6df2b49df020    899G     3% /
nvme0n1p3 swap   1           da6259fd-18f4-47b8-b98f-94491e732eb6                [SWAP]

«Load universe into cannon. Aim at brain. Fire.» ©

RusWolf

#
1 год, 8 месяцев назад

(отредактировано

1 год, 8 месяцев назад)

Темы:

11

Сообщения:

2869

Участник с: 16 июля 2016

acid_raccoon
Судя по этой строчке у тебя общий esp раздел для win и linux, и оба загрузчика находятся на нём.

Нет. На разных дисках.

acid_raccoon
А как chainloader должен выглядеть если win на отдельном диске, со своим esp и bootmgfw.efi не нём.

Так же:
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

acid_raccoon
set root=’hd0,gpt3′

У тебя ESP раздел, совсем не на третьем разделе, из вывода твоего lsblk -lf.

https://t.me/arch_linuxru

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

Об авторе

Веб разработчик. Создал losst 9 лет назад. Увлекаюсь открытым программным обеспечением, программрованием, Linux, DevOps. Люблю узнавать что-то новое. В качестве основной ОС сейчас использую Fedora.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Mdev group microsip for windows
  • Какой формат иконок в windows 10
  • Программа для поиска больших файлов windows
  • Windows 10 с флешки без установки rufus
  • Qt creator download for windows