Ошибка 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 рекомендуется отключить эту технологию.
Если Linux не видит разделов Windows 7 при установке.
Автор: SPwKA. Опубликовано в Linux статьи
Пришла идея поставить на ноутбук Ubuntu, рядом с уже имеющейся там Windows 7. Данная процедура уже не раз была мной проделана на других машинах и обычно не вызывала особых проблем. На этот раз, установщик Ubuntu приподнес сюрприз, показав, что диск не содержит никаких разделов и вовсе не размечен. Хотя, там было два раздела, на одном из которых стоит «семерка», другой отдан под файлы, и третий, скрытый загрузочный, создаваемый Windows 7 по умолчанию всегда.
Gparted — отдельная утилита для разметки дисков, показала то же самое — разделов нет, все пространство неразмечено. Только Disk Utility, также по умолчанию входящая в дистрибутив программа, вывела нормальную информацию. Сразу же стало понятно, что проблема в установщике. Как оказалось, новая версия установщика (я проверял на 12.04 версии системы), неправильно воспринимает разметку диска, которую делает Windows 7 на этапе установки. Говоря конкретнее — нестандартно размеченная таблица GPT (GUID).
Решение
Решается все просто и довольно быстро — установкой софтины FixParts.
Итак, если вам также, как мне, повезло поиметь «семерку» с подобной разметкой, то выполняем такие действия:
1. Загружаемся с LiveCD Ubuntu, настраиваем соединение с интернетом;
2. Заходим на страницу загрузки FixParts, выбираем последнюю версию. Переходим в каталог «fixparts-binaries», оттуда загружаем дистрибутив программы под вашу систему;
3. Устанавливаем, как любую другую программу;
4. Запускаем Терминал, там вводим:
sudo fixparts /dev/sda
Не забудьте изменить «sda» в этой команде на нужную букву вашего диска (sdb, sdc);
5. Программа сразу же просканирует диск на ошибки. На появившийся вопрос о лечении «кривых» GPT разделов, отвечаем да (yes);
6. Когда командная строка выдаст «MBR command….», закрываем Терминал;
7. На этом все! Можно запустить установку и радоваться тому, что наконец-то видно все разделы.
[РЕШЕНО] Загрузчик не видит Windows 7 и вообще файловые системы на этом диске
#1 — 18 декабря 2014 в 13:16 |
В системе 3 жестких диска. На первом поставил Windows 7, на втором поставил Linux Mint Cinnamon 17.1, третий чистый отформатированный в NTFS.
Все грузится по отдельности, если в BIOS указать соответствующий жесткий диск. Но загрузчик Linux отказывается видеть Винду, чтобы при загрузке выдавать список операционных систем. Более того, Linux отказывается признавать наличие файловых систем на диске с Виндой. Если запустить GParted, то он выдаст такое сообщение:
Предупреждение от libparted
/dev/sda contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid fake msdos partition table, as it should. Perhaps it was corrupted — possibly by a program that doesn’t understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition table. Is this a GPT partition table?
Да / Нет
И сам этот диск в программе будет как пустой и неразмеченный, хотя на самом деле там раздел с Виндой и раздел с ее загрузчиком. Примечательно, что на самом деле все разделы на этом диске мне доступны через файловый менеджер, я могу по ним ходить и все такое. Но загрузчик и GParted их не видит.
Вопрос. Что делать?) Как заставить загрузчик увидеть Винду на первом диске? И что вообще произошло, черт побери?))
#2 — 19 декабря 2014 в 01:40 |
#3 — 19 декабря 2014 в 10:06 |
[quote=iamroman]
В системе 3 жестких диска. На первом поставил Windows 7, на втором поставил Linux Mint Cinnamon 17.1, третий чистый отформатированный в NTFS.
Все грузится по отдельности, если в BIOS указать соответствующий жесткий диск. Но загрузчик Linux отказывается видеть Винду, чтобы при загрузке выдавать список операционных систем. Более того, Linux отказывается признавать наличие файловых систем на диске с Виндой. Если запустить GParted, то он выдаст такое сообщение:
Предупреждение от libparted
/dev/sda contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid fake msdos partition table, as it should. Perhaps it was corrupted — possibly by a program that doesn’t understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition table. Is this a GPT partition table?
Да / Нет
И сам этот диск в программе будет как пустой и неразмеченный, хотя на самом деле там раздел с Виндой и раздел с ее загрузчиком. Примечательно, что на самом деле все разделы на этом диске мне доступны через файловый менеджер, я могу по ним ходить и все такое. Но загрузчик и GParted их не видит.
Вопрос. Что делать?) Как заставить загрузчик увидеть Винду на первом диске? И что вообще произошло, черт побери?))
[/quote]
iamroman: |
. Вопрос. Что делать?) Как заставить загрузчик увидеть Винду на первом диске? И что вообще произошло, черт побери?)) |
Отвечаю на вопросы (в обратном порядке)
3. И что вообще произошло, черт побери?))
Произошло неприятное, но поправимое. Произошло — нежелание прочитать предупреждение от libparted .
и воспользоваться поиском в инете( включая поиск и по форуму) на предмет наличия тем по вопросам кривых GPT созданных в виндопрограммами, и тд. и отсутствие попытки разобраться с применяемыми на ПК таблицами разделов (GPT, MBR, . ) и применяемыми загрузчиками на ПК ( mbr, UEFI , . )
2. Как заставить загрузчик( увидеть Винду на первом диске?
наверное — Создать условия чтобы загрузчик GRUB мог видеть виндовс с его виндозагрузчиком.
1. Что делать?)
— установить винду на нормально подготовленный HDD, чтобы загрузчик GRUB (по sudo update-grub) смог увидеть виндовс с его виндозагрузчиком.
Возможна ли будет загрузкаиз GRUB при UEFI системе загрузки на виндохарде — это уже другой вопрос.
Что запишет в /boot/grub/grub.cfg установленный Boot repair и поможет ли эта запись при uefi, не знаю. Возможно и поможет.
Но для опыта можно ещё попробовать вручную внести и подредактировать запись для запуска виндовс в grub.cfg с учётом конфигурации HDD и разделов на них на вашем ПК. Для исходника для редактирования могу предложить вам запись из моего grub.cfg для запуска вин7 на ноуте но она для HDD c MBR таблицей размещения разделов
#4 — 22 декабря 2014 в 13:07 |
Я предварительно разметил все диски в mbr (msdos) с помощью gparted. И снова установил windows 7 и linux. Теперь gparted ни на что не ругается, но сути это не поменяло. Команда update-grub не видит Винду.
Сделал по вашему вот этому шаблону:
#5 — 22 декабря 2014 в 14:13 |
iamroman,
1. я разве говорил что надо делать update-grub после прямой правки grub.cfg ?
Его не надо делать. Обычно update-grub полностью убивает ручную правку grub.cfg и мог полностью убрать виндовс из меню. Посмотрите руководство по настройке GRUB2 в инете.
2. Если запись которую вы сделали в grub.cfg осталась так как вы её внесли, может она останется и при последующих update-grub.
Однако вы неправильно внесли изменения применительно к вашему ПК.
Может быть ещё какие неточности есть, но то что вижу — вы оставили UUID моего виндового раздела.
UUID вашего виндового раздела можете узнать в выводе команды $ sudo blkid или в gparted (ПКМ по виндоразделу-Информация)
Если апдатинг груба не поменял запись , то ваш груб ищет мой виндораздел по его UUID на вашем компе , и вряд ли найдёт.
3. С EFI этим прям засада какаято. но в биос должно быть выключено уефи и секьюрити( типа — «выключаете UEFI для этого выбираете Security, далее в Secure Boot жмякаете на Disabled, потом выбираете Boot и в Boot Mode жмете на Legacy» )
Вывод $ sudo fdisk -l по виндоразделу можно увидеть?
#6 — 22 декабря 2014 в 14:45 |
1234567: |
iamroman, 1. я разве говорил что надо делать update-grub после прямой правки grub.cfg ? Его не надо делать. Обычно update-grub полностью убивает ручную правку grub.cfg и мог полностью убрать виндовс из меню. Посмотрите руководство по настройке GRUB2 в инете. |
2. Если запись которую вы сделали в grub.cfg осталась так как вы её внесли, может она останется и при последующих update-grub.
Однако вы неправильно внесли изменения применительно к вашему ПК.
Может быть ещё какие неточности есть, но то что вижу — вы оставили UUID моего виндового раздела.
UUID вашего виндового раздела можете узнать в выводе команды $ sudo blkid или в gparted (ПКМ по виндоразделу-Информация)
Если апдатинг груба не поменял запись , то ваш груб ищет мой виндораздел по его UUID на вашем компе , и вряд ли найдёт.
3. С EFI этим прям засада какаято. но в биос должно быть выключено уефи и секьюрити( типа — «выключаете UEFI для этого выбираете Security, далее в Secure Boot жмякаете на Disabled, потом выбираете Boot и в Boot Mode жмете на Legacy» )
Вывод $ sudo fdisk -l по виндоразделу можно увидеть?
1. Я не редактировал grub.cfg, я редактировал /etc/grub.d/40_custom. Из этих файлов собирается grub.cfg при update-grub.
2. Я подставлял UUID своих разделов. В сообщении просто привел ваш код. Вставлял его без изменений, только подставлял свой UUID.
3. Этот UEFI меня уже доканал. В биосе есть опция, в которой есть выбор UEFI and Legacy, UEFI only, Legacy only. У меня стоит UEFI and Legacy. И в меню загрузки, когда это возможно, мне предлагается вариант загрузиться в режиме UEFI или в режиме Legacy. Когда я ставил Legacy only и пытался установить Linux Mint, то почему-то оно после самого первого меню (когда еще предлагается Start Linux Mint) был черный экран и все. Поэтому Linux Mint у меня установлен в UEFI режиме. А Винда НЕ в UEFI режиме, режим UEFI там даже не предлагался.
Вот вывод fdisk -l:
#7 — 22 декабря 2014 в 15:23 |
iamroman, по 1 — понятно. Принял повторённый вами код за показанное вами исправленное в вашем grub.cfg
по2 — вообще-то я дал именно строки какие есть в grub.cfg для запуска вин7 с первого раздела харда , и предлагал только попробовать на запуск , посмотреть запустится ли.
Посмотрел у себя в /etc/grub.d/ вин7 записан именно в 30_os-prober, а не в 40_custom и запись там совершенно другая. Впрочем это то что автоматически записалось.
кстати а, а в grub.cfg эта запись один в один с вами внесённой в 40_custom, или как либо модифицировалась?
И ещё . не пробовали в 40_custom , сделать вот такую запись , типа
menuentry «Windows 7» <
insmod ntfs
set root='(hd0,1)’
search —no-floppy —fs-uuid —set 1CFC7A8DFC7A60C6
chainloader +1
>
по3 — так понимаю что при установке вин7 она создала свой скрытый boot раздел. Виндоустановщик разве не спрашивал делать или нет отдельный boot?
я от создания такого раздела отказывался и ставил виндозагрузчик в один раздел с виндой. UUID какого виндораздела вы указывали sda1 или sda2? может другой надо было.
#8 — 22 декабря 2014 в 16:47 |
#9 — 22 декабря 2014 в 19:35 |
iamroman: |
В системе 3 жестких диска |
iamroman: |
Вот вывод fdisk -l: Код PHP: Disk /dev/sda: 128.0 GB, 128035676160 bytes Device Boot Start End Blocks Id System |
Где же здесь три диска?
Покажите sudo blkid или sudo lsblk -fm
#10 — 22 декабря 2014 в 21:50 |
#11 — 23 декабря 2014 в 01:05 |
Всем спасибо за помощь.
В моем случае проблема была в том, что Linux был установлен в режиме UEFI, а Винда была установлена в режиме Legacy. Я часто встречал инфу, что нужно включить Legacy и больше никогда не вспоминать об UEFI и пробовал это делать, но флешка с Linux Mint почему-то в этом режиме не хотела загружаться, зато в UEFI грузилась как надо. А флешка с Виндой при этом была в версии для установки в Legacy.
Я установил Винду в режиме UEFI. Потом установил Линукс в режиме UEFI. И они автоматически увидели друг друга.
Adblockdetector