[РЕШЕНО] Загрузчик не видит Windows 7 и вообще файловые системы на этом диске
Сообщений: 0
#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 их не видит.
Вопрос. Что делать?) Как заставить загрузчик увидеть Винду на первом диске? И что вообще произошло, черт побери?))
[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 .
предупреждение от 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 таблицей размещения разделов
Спойлер
### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-4C0E8C3C0E8C20D6' { insmod part_msdos insmod ntfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 4C0E8C3C0E8C20D6 else search --no-floppy --fs-uuid --set=root 4C0E8C3C0E8C20D6 fi parttool ${root} hidden- chainloader +1 }
или - плюнуть на строку запуска винды в грубе и пользоваться загрузкой систем меняя в настройках биос деввайс для загрузки, или пользоваться функцией bootmenu для быстрого выбора девайса загрузки без захода в настройки биос.
Сообщений: 0
#4 - 22 декабря 2014 в 13:07
Я предварительно разметил все диски в mbr (msdos) с помощью gparted. И снова установил windows 7 и linux. Теперь gparted ни на что не ругается, но сути это не поменяло. Команда update-grub не видит Винду.
Сделал по вашему вот этому шаблону:
Код PHP:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda1)'--class windows --class os $menuentry_id_option'osprober-chain-4C0E8C3C0E8C20D6'{
Добавил в файл /etc/grub.d/40_custom этот код, заменяя все UUID на разделы с диска на котором Винда (для верности подставлял оба по очереди, там один с Виндой и один "Зарезервировано системой" походу с загрузчиком, Винда сама его создала). Потом запускал update-grub и перезагружался. В списке grub появлялся пункт с Виндой. Но при нажатии туда мне на черном экране показывалось такое:
Вообще Винда устанавливалась не в режиме EFI и я нигде на ее разделах не вижу файлов или папок с efi в названии. У меня в BIOS Features выставлено UEFI and Legacy и когда что-то можно запустить и так и так, то предлагаестя. Но вот при установки Винды варианта запуска с UEFI не было и например если выставить UEFI only, то Винду не установить.
Сообщений: 0
#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 по виндоразделу можно увидеть?
Редактировалось: 2 раз (Последний: 22 декабря 2014 в 14:27)
Сообщений: 0
#6 - 22 декабря 2014 в 14:45
1234567:
iamroman, 1. я разве говорил что надо делать update-grub после прямой правки grub.cfg ? Его не надо делать. Обычно update-grub полностью убивает ручную правку grub.cfg и мог полностью убрать виндовс из меню. Посмотрите руководство по настройке GRUB2 в инете.
2. Если запись которую вы сделали в grub.cfg осталась так как вы её внесли, может она останется и при последующих update-grub. Однако вы неправильно внесли изменения применительно к вашему ПК. Может быть ещё какие неточности есть, но то что вижу - вы оставили UUID моего виндового раздела. [spoiler=Спойлер][/spoiler] 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:
Код PHP:
Disk /dev/sda:128.0 GB,128035676160 bytes
255 heads,63 sectors/track,15566 cylinders, total 250069680 sectors
iamroman, по 1 - понятно. Принял повторённый вами код за показанное вами исправленное в вашем grub.cfg по2 - вообще-то я дал именно строки какие есть в grub.cfg для запуска вин7 с первого раздела харда , и предлагал только попробовать на запуск , посмотреть запустится ли. Посмотрел у себя в /etc/grub.d/ вин7 записан именно в 30_os-prober, а не в 40_custom и запись там совершенно другая. Впрочем это то что автоматически записалось. кстати а, а в grub.cfg эта запись один в один с вами внесённой в 40_custom, или как либо модифицировалась?
И ещё ,.. не пробовали в 40_custom , сделать вот такую запись , типа
по3 - так понимаю что при установке вин7 она создала свой скрытый boot раздел. Виндоустановщик разве не спрашивал делать или нет отдельный boot? я от создания такого раздела отказывался и ставил виндозагрузчик в один раздел с виндой. UUID какого виндораздела вы указывали sda1 или sda2? может другой надо было.
Сообщений: 0
#8 - 22 декабря 2014 в 16:47
Запись в grub.cfg идентичная той, что я внес в 40_custom. Внес туда menuentry "Windows 7", та же ошибка "error: invalid EFI file path". Он требует какой-то EFI файл. Но в разделе с загрузчиком Винды нет ничего с EFI в названии, так как она не может быть установлена в EFI. Флешка с установкой Винды просто не отображается, если включить UEFI only.
Редактировалось: 1 раз (Последний: 22 декабря 2014 в 16:47)
Сообщений: 0
#9 - 22 декабря 2014 в 19:35
iamroman:
В системе 3 жестких диска
iamroman:
Вот вывод fdisk -l: Код PHP:
Disk /dev/sda: 128.0 GB, 128035676160 bytes 255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000814a8
Device Boot Start End Blocks Id System /dev/sda1 * 2048 206847 102400 7 HPFS/NTFS/exFAT /dev/sda2 206848 250066943 124930048 7 HPFS/NTFS/exFAT
Где же здесь три диска? Покажите sudo blkid или sudo lsblk -fm
Сообщений: 0
#10 - 22 декабря 2014 в 21:50
sizonov stas, я просил вывод только по диску с установленным виндом. Показали sda У вас сесть подозрение что это третий, чистый ntfs?
Сообщений: 0
#11 - 23 декабря 2014 в 01:05
Всем спасибо за помощь.
В моем случае проблема была в том, что Linux был установлен в режиме UEFI, а Винда была установлена в режиме Legacy. Я часто встречал инфу, что нужно включить Legacy и больше никогда не вспоминать об UEFI и пробовал это делать, но флешка с Linux Mint почему-то в этом режиме не хотела загружаться, зато в UEFI грузилась как надо. А флешка с Виндой при этом была в версии для установки в Legacy.