Восстановление файлов Windows EFI в разделе / ​​boot (Linux + Windows с двойной загрузкой)

18

У меня двойная загрузка Windows 10 (предновогоднее обновление) и Fedora 24 на Lenovo IdeaPad N580 (Intel Pentium B960 2,2 ГГц, 4 ГБ ОЗУ, UEFI с отключенной безопасной загрузкой). Первоначально у меня была только Windows 10, а затем была установлена ​​Fedora 23 вместе с ней, и все работало нормально - она ​​работала также, когда я обновился до Fedora 24. Некоторое время назад я решил попробовать Ubuntu и установил его только поверх корневого каталога, / boot и SWAP разделы и сохраняю мой домашний раздел. Windows 10 все еще может загрузиться здесь. Тогда я решил, что мне не нравится Ubuntu, и переустановил Fedora с помощью установщика 24, пытаясь сделать то же самое, что я сделал с Ubuntu. Интерфейс был немного другим, но я уверен, что я сделал это правильно: после того, как я выполнил настройку всех разделов, у меня появилось всплывающее окно с надписью «Мы коснемся только этих разделов» и перечисленные разделы были root, / boot и SWAP. Ничего больше.

Затем, когда он закончил установку, я перезагрузился. Единственными параметрами в меню GRUB были Fedora и Fedora Recovery - больше ничего. Нет Windows.

Я попытался установить rEFInd, который работал для меня в прошлом. Но это не помогло, это дало мне те же два варианта.

Раздел Windows все еще существует, и я могу получить к нему доступ из Fedora - важные файлы, такие как / bootmgr и / Boot / BCD, кажутся нетронутыми. Раздел Windows находится в / dev / sda5.

Кроме того, в настройках BIOS, где раньше отображался Windows Boot Manager, это не так. У него просто есть REFInd и запись с номером модели моего жесткого диска - который, я предполагаю, просто приводит меня в меню GRUB. (Я на самом деле не пытался вывести его в начало списка и перезагрузить, хотя - я немного ленив: P)

Может кто-нибудь помочь?

ОБНОВЛЕНИЕ: Маной определил проблему: отформатировав раздел / boot, я избавился от файлов Windows EFI. Поэтому мне нужно восстановить файлы в /boot/efi/EFI/Microsoft. Я думаю, что реконструировал каталог /boot/efi/EFI/Microsoft/Boot, но мне нужны другие файлы Microsoft. Может кто-нибудь сказать мне, какие файлы мне там нужны?

TheInitializer
источник
о, bootmgfw.efi, bootmgr.efiи memtest.efiне там ...
TheInitializer
ЭТИ ФАЙЛЫ ВХОДЯТ windows partition/Windows/Boot/EFI!!!
TheInitializer
Поскольку вы не делали резервную копию (почему?), Вам следует изменить свой вопрос. "Как воссоздать загрузочные файлы Windows UEFI?"
Ксалори
Я создал папку EFI из файлов, найденных на моем разделе Windows, думаю, это будет работать? storage2.static.itmages.com/i/16/0809/...
TheInitializer

Ответы:

20

Поскольку вы скопировали все необходимые файлы boot/efi/EFI/Microsoft/Boot, вам необходимо перестроить конфигурацию загрузчика Windows. Вам понадобится загрузочный USB-диск или DVD-диск (предпочтительнее 64-битная версия).

1: загрузка с вашего загрузочного носителя. Убедитесь, что вы загружаетесь в режиме UEFI.

2: На первом экране (где вам нужно выбрать язык и клавиатуру) нажмите Shift + F10. Это даст вам командную строку.

3: Введите, diskpartа затем list disk(для просмотра всех доступных дисков). Выберите подходящий жесткий диск, набрав select disk #.

4: Теперь введите list partitionи убедитесь, что есть раздел типа system(раздел efi). Выберите этот раздел, набрав select partition #и назначив ему временную букву, скажем G, набрав assign letter=G.

5: Просто чтобы убедиться, что буква диска назначена правильно, введите list vol. Вы должны увидеть объем с drive letter (Ltr) as G&file system (Fs) as FAT32

6: Закрыть diskpart, набрав выход. Убедитесь, что вы в X:\Sources.

7: Тип cd /d G:\EFI\Microsoft\Boot\. Теперь выполните эти команды одну за другой.

bootrec /scanos     
bootrec /fixmbr    
bootrec /fixboot
bootrec /rebuildbcd    
bcdboot C:\Windows /l en-us /s G: /f ALL

8. Закройте командную строку и перезапустите систему. Теперь вы должны загрузиться в Windows.

9: Конечно, вы можете не иметь или не иметь меню grub сейчас. Но установить grub намного проще. Перейдите по любой из этих ссылок для получения дополнительной информации.

ссылка1 , ссылка2 , ссылка3

Источники: 1 , 2 , 3 , 4 .

РЕДАКТИРОВАТЬ - Убедитесь, что вы удалили букву G, назначенную разделу efi, как можно скорее, чтобы она не отображалась в Моем компьютере.

Манодж
источник
Спасибо, но у меня нет USB для восстановления (довольно глупо с моей стороны), и я не могу создать его без доступа к Windows. Я постараюсь найти способ сделать один
TheInitializer
1
Большое вам спасибо, это сработало !! Публикация из Windows: D
TheInitializer
1
bootrec /rebuildbcdне удалось для меня, но все равно сработало после того, как я пропустил
en4bz
1
Спасибо за ссылки на источник , помог понять и применить только необходимое. После этого, чтобы снова загрузить загрузчик rEFInd, я использовал bcdedit, как описано здесь : bcdedit /set "{bootmgr}" path \EFI\refind\refind_x64.efi
Pau Coma Ramirez
Что вы можете сделать, если ваш раздел не указан в списке list disk?
Харша Голи
0

Перед тем, как начать резервное копирование вашего загрузочного раздела, используйте mkdir $HOME/backup && sudo cp -R /boot $HOME/backup. Загрузочный раздел обычно ограничен 100 МБ, поэтому он должен быть очень маленьким.

Если у вас все еще есть загрузочный носитель Windows 10 (например, USB-накопитель или DVD-диск), вы сможете найти там файлы EFI.

Если у вас нет загрузочного носителя Windows, вы можете смонтировать ISO ( загрузить при необходимости ) с помощью команды sudo mkdir /tmp/win10iso && sudo mount -o loop /location/of/win10.iso /tmp/win10iso.

После успешного копирования этих файлов EFI в раздел Windows добавьте запись в файл /etc/grub.d/40_custom.

Запись будет выглядеть так:

menuentry 'Windows 10' {
set root='(hd0,msdos5)'
chainloader +1
}

В конфигурации GRUB hdXобозначает /dev/sdXи msdosYобозначает /dev/sdXY. Обратите внимание, что hdX начинается с 0, а / dev / sdX начинается с A.

После этого обновите GRUB с помощью sudo update-grub2. Загрузочная запись Windows теперь должна быть там.

кондор
источник
Спасибо, я сейчас загружаю ISO (это большой файл!)
TheInitializer
Я смонтировал ISO, и у меня есть вопрос - какие файлы я должен копировать и в какую папку? Я думаю, от Windows ISO/bootк /boot/efi/EFI/Microsoft, но я действительно не уверен.
TheInitializer