Небольшая предыстория: купил себе новый жесктий на 1 ТБ, в довесок к уже имеющимся жестком на 500 и 300 гигов. У меня совместно стояли Windows 7 и Ubuntu. Так как системам уже сто лет, решил на новый жесткий установить все по новой. В качестве Linux системы я взял Kubuntu 14.04. Хотел сделать следующим образом:
1ТБ - под Linux,
300ГБ - под Windows 7,
500Гб - файлопомойка.
Чтобы все поставилось чисто, я оставил включенным только терабайтник и поставил на него Kubuntu. После установки подключил другие жесткие, скинул с них инфу и форматнул.
На 300 гиговый диск установил винду. Ставил также аккуратно, с включенным только 300 гиговым диском. Все поставилось нормально, загружается Windows нормально.
Когда я подключил все диски вместе и выставил в биосе приоритет терабайтного жесткого, то грузился Linux, как и предполагается. Будучи уверенным, что все должно пройти нормально, я решил обновить grub и прописать туда винду. Вот что я сделал:
$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-24-generic
Found initrd image: /boot/initrd.img-3.13.0-24-generic
Adding boot menu entry for EFI firmware configuration
done
Винды не видно. Начал гуглить, попытался восстановить виндовый загрузчик с помощью загрузочной флешки. Делал следующее (в виндовой консоли):
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
Windows по отдельности как загружалась, так и загружается. Но update-grub упорно ее не видит. Полдня курил мануалы и форумы, попробовал кучу способов - результат не меняется. В итоге, решил забить на автоопределение винды и прописал ее вручную в конфиг. Сделал все как полагается: /boot/grub/grub.cfg не трогал, прописал в /etc/grub.d/40_custom следующее:
menuentry 'Windows 7' --class windows --class os {
insmod part_msdos
insmod ntfs
set root='hd2,msdos1'
chainloader +1
}
Пункт меню в grub появился, но когда я его выбирал, то видел следующую ошибку: "error: Invalid EFI file path. Press any key to continue...". У меня мать с UEFI BIOS, но с прошлой dual boot конфигурацией у меня таких проблем не было.
Начал курить форумы дальше. Некоторые рекомендуют вручную прописать следующий chainloader:
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
Я попробовал, но файлы не находятся. Зашел в загрузочный диск винды (тот, который "Зарезервировано системой") и не обнаружил ничего, что хоть как-то связано с UEFI загрузчиком: ни *.efi файлов, ни efi папки.
У меня возникло подозрение, что когда Windows грузится самостоятельно, то происходит следующее: биос ищет uefi загрузчик, не находит, ищет mbr загрузчик, находит - и радостно включает винду. Но когда я загружаюсь из Linuxа - он находит uefi загрузчик grub'а и грузится им. И grub также ищет в update-grub uefi загрзузчик у винды, а его просто нету. А когда я вручную прописал загрузчик винды, то биос уже загрузил в uefi режиме grub и не может загрузить виндовый mbr загрузчик. Я попытался найти способ восстановления efi загрузчика, но ничего путного не нашел.
В итоге я так и не знаю что делать. Каким образом заставить загрузится винду? Нужно ли мне восстанавливать uefi загрузчик для винды, или есть способ научить grub видеть mbr загрузчик и нормально его грузить? Если нужно восстановить uefi загрузчик, то как это сделать?