Grub no windows entry

Ошибка grub не видит Windows 10

Многие новички и опытные пользователи 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:

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

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

Если же этот способ не сработает, а он, скорее всего, не сработает, то вам останется только вручную добавить пункт меню для Windows. Это не самое простое, но зато эффективное решение. Сначала нам нужно узнать UUID раздела диска, на который установлена Windows, например, /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:

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

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

Выводы

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

Добавить 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 просто не обнаруживает это.

Читайте также:  Подготовка автоматического восстановления windows 10 как убрать

Кроме того, я поставлю это в вопросе, чтобы люди видели это — я попытался использовать boot-repair Однако, это не помогло никому.

6 ответов

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

По этой команде система автоматически обнаружит установку окон и добавит их в список grub.

Иногда os-prober не прав.

Посмотрите на UUID вашего раздела Windows 10, например:

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

Не забудьте изменить UUID.

И, наконец, обновите ваш конфигурационный файл grub:

Используйте это приложение EasyBCD для Windows http://neosmart.net/EasyBCD/ скачать бесплатную версию и установить ее.

Когда вы откроете его, вы увидите запись для Windows 8 и один для Windows 10.

удалите запись Windows 8, и вы будете в порядке.

Обновите после выполнения вышеуказанных шагов, вернитесь в Ubuntu,

открыть терминал, нажав Ctrl + Alt + T

затем скопируйте эти команды одну за другой,

и тем самым вы установите инструмент под названием boot-repair.

откройте восстановление загрузчика из тире, и вы получите это окно

выберите рекомендуемый ремонт и следуйте инструкциям.

Обратите внимание, что вы должны быть подключены к Интернету при использовании boot-repair.

Это решение обеспечивает правильный вход в меню grub2 и загружает цепочки непосредственно в Windows 10 без ссылки на BIOS. Это происходит от https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi поэтому я не претендую на кредит. Было таким облегчением найти рабочее решение

Вкратце, отредактируйте /etc/grub.d/40_custom и добавьте:

Чтобы найти UUID для корневой строки —set= (в примере CC66-4B02), вы используете sudo fdisk -l для идентификации раздела EFI, затем sudo blkid /dev/sda1 (или любой другой) для поиска UUID раздела EFI, Обратите внимание, что вам нужен не раздел Windows, а EFI. После сохранения изменений запустите sudo update-grub, чтобы сгенерировать файл /boot/grub/menu.cfg, а затем перезапустите для проверки.

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

GRUB2 не видит Windows РЕШЕНО

Накатил утром свежий пакет обновлений для манжаро. Grub2 перестал видеть винду (win7x64), хотя еще 8 часов назад все было в порядке и полтора года до этого момента все было в порядке.
os-prober видит запись

Читайте также:  Secure crt mac os

Винда установлена на другом физическом диске. Как это исправить? Как скоро исправят данный баг?

За подсказки и помощь спасибо alexal9 и Agafron
Агафон вообще выручает часто, шикарный))

23 комментария

Как это исправить? — не знаю
Как скоро исправят данный баг? — не знаю.
И где брать тот же герыч что и у кодеров граба? — не скажу.
))))

Откатитесь на последний бекап. Это же не проблема.

P.S.
Бекап — это не проявление трусости.

И я не делаю.
Раз в неделю, вполне себе норм.

И хранить последние 3 версии.

Да, я можно сказать, москвич.
Общаюсь с вами с ноута 2008 года выпуска )))
Бекап бывает разный. Можно бекапить все, а можно выборочно.
Я бекаплю только систему, как раз на случай подобных сбоев и скрытые файлы хомяка. Из бекапа так же исключен кеш скачанных пакетов. В общем все занимает не особо много места на терабайтном HDD.

Это все конечно не отностится к вашему вопросу… Только дает тему для размышлений.

Timeshift аккуратненько скадывает все ему нужное в одну папочку, на любом, даже внешнем диске. Попробуйте с ним подружиться.

Прошу вас простить разработчиков. Не ошибается тот, кто ничего не делает. Я уверен, они все поправят. Может через несколько дней, а может недель.
Все же пользуясь роллинг релизом, нужно страховаться и самому.

я обычно ищу и спрашиваю в англоязычной среде

мой совет для ленивых, а граб все равно надо подправить, достаточно добавить одну строчку

а еще рекомендую ознакомиться с how-to от dimonmmk и станет проще.
Да и по сути это не баг, просто граб, видимо, раньше игнорил отсутствие данного пункта.
в вики все есть

Не загружается Linux, чиним загрузчик GRUB

Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.

Что такое Grub

Grub (или GRand Unified Bootloader) — загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего — основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows , вам определенно понадобится помощь Grub.

Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно — узнаете далее.

От чего могут возникнуть проблемы

Одна из самых распространенных причин — это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК — вам непременно стоит знать правильную последовательность:

  • Сначала устанавливаем Windows
  • И только потом уже Linux

Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.

Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.

Восстановление Grub с помощью LiveCD/USB

Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.

Как создать LiveCD/USB

Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.

Идем на официальную страницу загрузки . Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.

С помощью Rufus:

Последняя версия приложения доступна на официальном сайте . Сразу после загрузки и запуска/установки мы увидим такое окно:

Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:

Находим загруженный образ через менеджер, после чего жмем «Старт».

С помощью Etcher:

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

Читайте также:  Telegram linux 32 bit

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

Открываем таблицу разделов с помощью команды:

Примерно такая таблица будет выведена на экран:

/dev/sda1 27 7683 66999082+ 83 Linux
/dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS
/dev/sda3 11885 16574 6503497 5 Extended

По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.

С помощью следующей команды мы смонтируем этот раздел в /mnt:

sudo mount /dev/sda1 /mnt

Теперь, для записи grub в MBR, нужно ввести следующую команду:

sudo grub-install —root-directory=/mnt /dev/sda

Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.

Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:

sudo update-grub —output=/mnt/boot/grub/grub.cfg

Вот и все, восстановление закончено!

Восстановление с помощью chroot

Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.

Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:

В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.

/dev/sda1 27 7683 66999082+ 83 Linux
/dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS
/dev/sda3 11885 16574 6503497 5 Extended

В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:

sudo mount /dev/sda1 /mnt
sudo mount —bind /dev /mnt/dev
sudo mount —bind /proc /mnt/proc
sudo mount —bind /sys /mnt/sys

Обратите внимание , что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.

Далее мы переходим в окружающую среду chroot с помощью команды:

sudo chroot /mnt

И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:

Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:

grub-install —recheck /dev/sda

grub-install —recheck —no-floppy /dev/sda

Если все прошло успешно, выходим из chroot, используя команду:

Далее нужно отмонтировать все разделы. Для этого вводим в терминал:

sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt

В случае, если вы монтировали раздел /boot введите команду:

sudo umount /mnt/boot

Теперь перезагружаем систему с помощью:

Можно также обновить меню Grub, используя команду:

Восстановление Grub в rescue mode

Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.

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

Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).

Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:

Для начала вводим следующую команду:

В выводе будет что-то подобное:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.

В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела — (hd0,1). Используем следующую команду:

set prefix=(hd0,1)/boot/grub
set root=(hd0,1)

С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:

Если в выводе будет список файлов и папок, значит мы все сделали правильно. Теперь можно загрузить все необходимые модули. Для этого выполним команды:

insmod ext2
insmod normal
normal

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

Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:

sdX — диск, на который должен быть установлен Grub.

Если операционная система расположена на разделе с файловой системой btrfs , то нам необходимо выполнить следующие команды:

set prefix=(hd0,1)/@/boot/grub
set root=(hd0,1)

Оцените статью