Если 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. И они автоматически увидели друг друга.