Многие новички и опытные пользователи Linux держат также установленной на своем компьютере операционную систему Windows, например, последней, десятой версии. Новичкам это нужно чтобы иметь запасную операционную систему, к которой они смогут вернуться, если их Linux сломается. А для опытных пользователей важно программное обеспечение, которое не поддерживается ни в Linux, ни даже с помощью эмулятора Wine, а таких программ достаточно много.
Но временами случается такая ситуация, что загрузчик Grub не распознает установленную Windows и не отображает ее в списке систем для загрузки. В этой статье мы рассмотрим почему возникает ошибка grub не видит Windows 10 и как ее решить.
Ошибка 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 рекомендуется отключить эту технологию.
Осознанно полностью перешёл на Линукс, и не жалею.
Долой винду.
Пятый год на Убунту, но! От Windows никуда не денешься. Фотошопу нет замены и никакой Gimp даже рядом не стоял. То же самое нет замены для Sony Vegas Pro. Поэтому рядом существуют Ubuntu gnome 14.04.5 и Win 10 на ноутбуке, Ubuntu 14.04 server и Win7 на РС.
Вы бы посмотрели, как ПРОФЕССИОНАЛЫ работают в Gimp и поняли, что он настолько мощный, как и фотошоп.
Только почему-то профессионалы предпочитают именно фотошоп :). Но не будем отвлекаться от темы. Лично у меня grub видит Win 10.
Не будем забывать, что бывают разные профессионалы 🙂
А зачем вам всем фотошоп? Ну правда. Что все такого невероятного в нём делают? Кого не спроси, все на линукс не хотят переходить изза фотошопа, как будто все вокруг стали график дизайнерами.
Мне вот он не нужен, а для минимальных преобразований, на которые может быть способен дилетант, GIMP'а хватит выше крыши. DarkTable нормальная замена LightRoom'у и т.д.
Есть много других приложений AutoCad, Adobe Animate, Adobe InDesign, Comsol для проектирования их можно перечислять очень долго. А так если судить то и в Painte много шедевров сделано вопрос удобства вначале линуксойды пусть нацчатся программы писать так чтобы они на всех линуксах нормально работали а не так чтобы надо было привинчивать модули. А так в интернете полазать то конечно линукса за глаза хватит
Хорошая статья. Для решения этой проблемы кому-то могут пригодиться такие программы, как Boot Ice на Windows и Grub Customizer на Linux.
Я пользуюсь Rescatux, и востановление grub и загрузчик винды и моногое другое в один клик, Вот ссылочка кому интересно "http://www.supergrubdisk.org/rescatux/"
а можно русский мануал по восстановлению mbr, для не продвинутых пользователей?
Linux Mint стоит на /dev/sda1, Windows 10 - на /dev/sdb2, /dev/sdb имеет раздел UEFI на /dev/sdb1. Первый вариант у меня не сработал и я делал все по второму варианту. В меню выбора системы для загрузки Windows 10 появилась. Но попытки загрузить Windows заканчиваются сообщением о неверном пути к разделу UEFI. Я указывал UIID раздела, на котором стоит Windows и раздела UEFI - безрезультатно. Что я делаю не так?
У меня прямо один в один как у вас происходит (за исключением, что у меня Kubuntu 19.04 на /dev/sda2 (/boot/efi на sda1))
Для Debian 12 (после обновления перестала определяться Windows 11) внёс изменения, как предложили на "https://manjaro.ru/newby-corner/grub2-ne-vidit-windows-resheno.html", затем через терминал "sudo grub-mkconfig -o /boot/grub/grub.cfg" и после выключения АРМ и последующего включения загрузка Windows 11 восстановилась.
Привет.
А если поменять диски местами? То есть sda будет с виндой, а sdb с линукс?
Но автор стать предупредил, что uefi и grub не дружат.
Столкнулся с тем, что grub2-mkconfig в Fedora распознает NTFS раздел и сама создает нужную строку в меню загрузки а в Centos этого не происходит.
Позднее я нашел объяснение. В Fedora, начиная не помню с какой версии, включена поддержка NTFS.
А в Centos по умолчанию - нет. Принцип - ничего лишнего.
Как подключить поддержку NTFS написано в Centos WiKi.
После установки поддержки NTFS в Centos, запускаем:
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig в процессе работы выводит сообщение, что нашла раздел Windows, а в grub.cfg появляется строка загрузки Windows
стоял windows 10 накатил mint 19. Винда осталась на uefi а линукс на легаси. Для того что бы грузить винду или линукс мне приходится заходить в биос и руками изменять место загрузки(((( эта инструкция мне совсем не помогла.
os-prober видит, а update-grub нет.
при попытке загрузить винду получаю "no such device..." и "invalid signature"
Спасибо добрый человек, всё получилось.
Спасибо за инструкцию, вторая винда отобразилась после данных манипуляций.
Первый раз поставил Линукс и его не знаю, что этот спец объясняет, где все это и как. Надо писать так , что бы и чайники поняли. Ни тема не получилось.
А как в GRUB вернуть Linux после всех этих действий? (Теперь у меня автоматом грузится виндовс 10)
Тебе нужно установить GRUB_TIMEOUT=10 в файле /etc/default/grub. Можешь не 10, а столько времени (в секундах), сколько grub будет ждать до автоматического выбора первого пункта в списке. Скорее всего у тебя там 0
Загружаетесь с установчного диска и пишите sudo update-grub
gedit открывает файл /etc/grub.d/40_custom "только для чтения", невозможно сохранить изменения, почему ? и что делать?
Запускай от имени суперпользователя. `sudo gedit /etc/grub.d/40_custom`. После этого введи свой пароль. Если пишет `имяпользователя is not in the sudoers file`, то нужно выдать себе права суперпользователя. Пишешь `su`, после этого пароль root, и addgroup имяпользователя sudo`.
sudo gedit /etc/grub.d/40_custom
Подскажите пожалуйста что вводить после кода где написано вставка непонятно. Спасибо
предустановленная убунту от dell на новом ПК оказалось настолько глючной что такого не встречал за 20 лет. на прежнем китайском jumper с виндой за 3,5 года ни разу не приходилось жаловаться даже на 1% от того с чем приходиться сталкиваться на убунту. 100 раз пожалел что не снес убунту к едене фене.
мльять открыл /etc/grub.d/40_custom
a@1:~$ /etc/grub.d/40_custom
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
a@1:~$ ^C
a@1:~$ ^C
a@1:~$
и как его закрыть? желательно ничего не изменив в этом вроде пустом файле, в котором вроде последняя строка должна быть пустой. Хрена я поверил статье и туда полез. Esc не помогает
sudo nano /etc/default/grub
GRUB_DISABLE_OS_PROBER=false
sudo update-grub
reboot