На ноутбуке с двойной загрузкой (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
Перезагрузите компьютер.
Если меню GRUB все еще не показывается, возможно GRUB не поддерживает видео режим вашего графической адаптера. Вы можете вместо графического GRUB меню отобразить консольное меню. Для этого добавьте в файл etc/default/grub строку:
GRUB_TERMINAL=console
Сохраните файл и обновите конфигурацию:
$ sudo update-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 была повреждена или удалена. Есть несколько причин, почему так происходит:
- Неправильная конфигурация: если Grub неправильно сконфигурирован или не обновлен после установки Windows 10, он может не видеть новую операционную систему.
- Изменения разделов диска: после установки Windows 10 могли произойти изменения в разделах диска, из-за чего Grub перестал её видеть..
- Проблемы с загрузочным сектором: некорректное обновление загрузочного сектора или MBR (Master Boot Record) могут привести к проблеме.
- Проблемы с UEFI/BIOS: некорректные настройки в UEFI или BIOS компьютера могут привести к тому, что Grub не сможет правильно обнаружить операционную систему.
- Поврежденные файлы загрузки: если файлы загрузки повреждены или отсутствуют, 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
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!
Войдите, чтобы написать ответ
-
Показать ещё
Загружается…
Минуточку внимания
# |
|
Темы: 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 месяцев назад) |
Темы: 47 Сообщения: 11925 Участник с: 17 февраля 2013 |
Информации мало, гадать никто не будет … Для начала посмотри этот топик — возможно причина и в os-prober Ошибки не исчезают с опытом — они просто умнеют |
arruka |
# |
Темы: 4 Сообщения: 9 Участник с: 07 августа 2023 |
решение через os-prober тоже пробовал, но ничего не получилось т_т весь интернет перерыл — ничего не помогает _( однако!!! |
zotkindm |
# |
Темы: 73 Сообщения: 591 Участник с: 21 мая 2014 |
У всех работает у одного тебя нет. EFI раздел монтировал? |
Natrio |
# |
Темы: 48 Сообщения: 4771 Участник с: 08 января 2011 |
Для начала надо неплохо было бы выяснить, что за Windows, и загружается ли она из BIOS/UEFI (и жива ли вообще). Видно ли там в вариантах загрузки «Windows boot manager»? Видно ли grub, arch или что-то в этом духе? В каком режиме (BIOS/UEFI) запускается GRUB? Чтобы запустить загрузчик Windows из GRUB, они должны быть одинакового типа (BIOS-BIOS или UEFI-UEFI). |
kononow |
# |
Темы: 0 Сообщения: 2 Участник с: 23 января 2022 |
До того как в вики появилось я с этим столкнулся: |
acid_raccoon |
# |
Темы: 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 |
# |
Темы: 11 Сообщения: 2869 Участник с: 16 июля 2016 |
https://t.me/arch_linuxru |
acid_raccoon |
# (отредактировано 1 год, 8 месяцев назад) |
Темы: 10 Сообщения: 111 Участник с: 08 мая 2020 |
Судя по этой строчке у тебя общий esp раздел для win и linux, и оба загрузчика находятся на нём. А как chainloader должен выглядеть если win на отдельном диске, со своим esp и bootmgfw.efi не нём. Если записываю так:
получаю:
«Load universe into cannon. Aim at brain. Fire.» © |
RusWolf |
# (отредактировано 1 год, 8 месяцев назад) |
Темы: 11 Сообщения: 2869 Участник с: 16 июля 2016 |
Нет. На разных дисках.
Так же:
У тебя 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.