0
Найти на сайте: параметры поиска

 

[РЕШЕНО] Загрузчик не видит Windows 7 и вообще файловые системы на этом диске

  
Сообщений: 0
В системе 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 их не видит.

Вопрос. Что делать?) Как заставить загрузчик увидеть Винду на первом диске? И что вообще произошло, черт побери?))
Сообщений: 0
Поставьте Boot repair
http://help.ubuntu.ru/wiki/boot_repair
Сообщений: 0
сообщение 1
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 таблицей размещения разделов
Спойлер

или
- плюнуть на строку запуска винды в грубе и пользоваться загрузкой систем меняя в настройках биос деввайс для загрузки,
или пользоваться функцией bootmenu для быстрого выбора девайса загрузки без захода в настройки биос.
Сообщений: 0
Я предварительно разметил все диски в mbr (msdos) с помощью gparted. И снова установил windows 7 и linux. Теперь gparted ни на что не ругается, но сути это не поменяло. Команда update-grub не видит Винду.

Сделал по вашему вот этому шаблону:
Код PHP:
  1. ### BEGIN /etc/grub.d/30_os-prober ###
  2. menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-4C0E8C3C0E8C20D6' {
  3. insmod part_msdos
  4. insmod ntfs
  5. set root='hd0,msdos1'
  6. if [ x$feature_platform_search_hint = xy ]; then
  7. search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 4C0E8C3C0E8C20D6
  8. else
  9. search --no-floppy --fs-uuid --set=root 4C0E8C3C0E8C20D6
  10. fi
  11. parttool ${root} hidden-
  12. chainloader +1
  13. }
Добавил в файл /etc/grub.d/40_custom этот код, заменяя все UUID на разделы с диска на котором Винда (для верности подставлял оба по очереди, там один с Виндой и один "Зарезервировано системой" походу с загрузчиком, Винда сама его создала). Потом запускал update-grub и перезагружался. В списке grub появлялся пункт с Виндой. Но при нажатии туда мне на черном экране показывалось такое:
Код PHP:
  1. Setting partition type to 0x7
  2. error: invalid EFI file path
  3.  
  4. Press any key to continue...
Вообще Винда устанавливалась не в режиме EFI и я нигде на ее разделах не вижу файлов или папок с efi в названии. У меня в BIOS Features выставлено UEFI and Legacy и когда что-то можно запустить и так и так, то предлагаестя. Но вот при установки Винды варианта запуска с UEFI не было и например если выставить UEFI only, то Винду не установить.
Сообщений: 0
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
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:
  1. Disk /dev/sda: 128.0 GB, 128035676160 bytes
  2. 255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
  3. Units = sectors of 1 * 512 = 512 bytes
  4. Sector size (logical/physical): 512 bytes / 4096 bytes
  5. I/O size (minimum/optimal): 4096 bytes / 4096 bytes
  6. Disk identifier: 0x000814a8
  7.  
  8. Device Boot Start End Blocks Id System
  9. /dev/sda1 * 2048 206847 102400 7 HPFS/NTFS/exFAT
  10. /dev/sda2 206848 250066943 124930048 7 HPFS/NTFS/exFAT
Сообщений: 0
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
}

по мотивам (с) http://askubuntu.com/questions/501614/grub2-etc-grub-d-40-custom-multi-boot
а вдруг...

по3 - так понимаю что при установке вин7 она создала свой скрытый boot раздел. Виндоустановщик разве не спрашивал делать или нет отдельный boot?
scratch я от создания такого раздела отказывался и ставил виндозагрузчик в один раздел с виндой. UUID какого виндораздела вы указывали sda1 или sda2? может другой надо было.
Сообщений: 0
Запись в grub.cfg идентичная той, что я внес в 40_custom. Внес туда menuentry "Windows 7", та же ошибка "error: invalid EFI file path". Он требует какой-то EFI файл. Но в разделе с загрузчиком Винды нет ничего с EFI в названии, так как она не может быть установлена в EFI. Флешка с установкой Винды просто не отображается, если включить UEFI only.
Редактировалось: 1 раз (Последний: 22 декабря 2014 в 16:47)
Сообщений: 0
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
sizonov stas, я просил вывод только по диску с установленным виндом. Показали sda
У вас сесть подозрение что это третий, чистый ntfs?
Сообщений: 0
Всем спасибо за помощь.

В моем случае проблема была в том, что Linux был установлен в режиме UEFI, а Винда была установлена в режиме Legacy. Я часто встречал инфу, что нужно включить Legacy и больше никогда не вспоминать об UEFI и пробовал это делать, но флешка с Linux Mint почему-то в этом режиме не хотела загружаться, зато в UEFI грузилась как надо. А флешка с Виндой при этом была в версии для установки в Legacy.

Но оказывается, что флешку с Виндой можно заточить под установку в UEFI. Вот тут рассказано, как: http://winitpro.ru/index.php/2013/12/31/sozdaem-zagruzochnuyu-fleshku-s-windows-7-dlya-uefi-sistemy/

Я установил Винду в режиме UEFI. Потом установил Линукс в режиме UEFI. И они автоматически увидели друг друга.
В начало страницы 
|
Перейти на форум:
test