tl;dr: GPT, EFI, двойная загрузка Antergos-Windows 10, раздел EFI Windows удален, поэтому я могу загрузиться только в Antergos и хочу это исправить.
У меня была двойная загрузка Debian-Windows-10 с использованием MBR для запуска grub2. Недавно я переключил Debian на Antergos и использовал эту возможность для перехода на формат раздела GPT с загрузкой EFI.
У меня был такой список разделов:
- Зарезервировано системой Windows
- Виндовс 10
- Дебиан
- Менять
После переустановки это изменилось на:
- Зарезервировано системой Windows
- Виндовс 10
- Антергос
- Менять
- Раздел EFI
После этого os-probe
Windows не нашёлся, поэтому я попытался добавить его в grub вручную, но, видимо, эта настройка была предназначена для установки MBR. Затем я попытался переустановить Windows с помощью настройки UEFI. В итоге у меня получилась такая конфигурация:
- Восстановление системы Windows
- Раздел Windows EFI
- Зарезервировано системой Windows
- Виндовс 10
- Зарезервировано системой Windows
- Антергос
- Менять
- Angergos EFI
(Понятия не имею, почему при наличии большого участка пустого пространства установленная Windows решила создать 5 отдельных разделов...)
Очевидно, Antergos перестал загружаться, так как у меня 2 раздела EFI. Я думал, что нужен только 1, а Windows EFI содержит только загрузчик, который можно заменить grub, поэтому я удалил 2-й раздел.
Только после этого я смог восстановить работоспособность grub. Видимо, некоторые файлы из этого раздела нужны для запуска Windows. Поэтому я попытался восстановить этот раздел с помощью установочного диска Windows и автоматического восстановления, а также создания раздела EFI и его восстановления с помощью bcdboot
. Однако я получил только ошибку failure when attempting to copy boot files
.
В настоящее время - в зависимости от того, какой вариант я пробую, я вижу такие ошибки:
- NTLDR отсутствует
- В EFI отсутствует некоторая конфигурация
В настоящее время я не уверен, что мне следует попробовать, так как применение случайных решений из интернета уже заняло у меня целые выходные и не является эффективным способом выяснить, что делать. Поэтому мой вопрос: что можно сделать, чтобы восстановить Windows 10, не переустанавливая все с нуля?
У меня есть доступ к разделу Windows, установочному диску Windows, Antergos Live cd для chrooting. Я могу предоставить все логи и листинг, которые могут помочь.
решение1
Мне удалось создать копию Windows EFI.
Сначала я смонтировал раздел EFI с помощью diskpart
:
> diskpart # start diskpart tool
list volumes # prints all disks I have: C:, D:, etc
sel vol 8 # on my list EFI partition was unmounted and next to a number 8
assign letter=Z # since I marked EFI partition as selected I can now assign it a letter so that I could use it later on
exit # I am leaving the tool
Ранее это не удавалось - когда я пытался использовать его, assign mount=z
я видел ошибку типа «невозможно смонтировать системный раздел EFI», хотя help
команда предлагала это.
С установленным EFI я мог бы
bcdboot C:\Windows /s Z:
Он помещает файлы Windows EFI в раздел EFI.не затрагивая существующие файлы grub. В результате grub не сломался, но теперь у меня есть файлы, необходимые для загрузки Windows в настройках UEFI.
После этого os-probe
удалось найти Windows, поэтому update-grub
добавил отсутствующую запись в список.
Думаю, если кто-то окажется в такой же ситуации, как я, он должен быть готов к тому, что:
- Windows создаст несколько новых разделов, и EFI будет одним из них.
- Поскольку этот раздел будет иметь размер около 100 МБ, и я думаю, что предполагается, что он должен быть больше, мы можем заменить его на тот, который предоставлен нами (есть много хороших ресурсов о том, как это сделать, как на Arch Wiki, так и в документации Microsoft, в зависимости от того, какой инструмент мы будем использовать).
- перед этим мы можем сделать копию файлов с раздела Windows EFI - они скрыты, если вы их не видите - или удалить его, как я сделал, а затем пройти всю процедуру выше. Для этого вам понадобится установочный CD Windows.
решение2
Мне сложно создать хорошую ментальную модель текущего состояния вашего компьютера, поскольку вы внесли так много изменений, и не всегда ясно, каким может быть результат любого предпринятого вами шага. (Это не критика вашего вопроса; просто сложно понять, что делает сам компьютер, внося некоторые из этих изменений.) Поэтому я рекомендую вам сделать резервную копию важных пользовательских файлов, удалитьвсеразделы на диске и начните заново. Начните с установки Windows, затем установите Linux поверх нее. Затем вы можете восстановить свои пользовательские файлы.
Если начать с нуля не представляется возможным, запуститеУтилита восстановления загрузкии выберите опцию «Создать сводку BootInfo». (НЕнажмите «Рекомендуемое восстановление», по крайней мере, пока!) Когда вас спросят, загружать ли отчет, нажмите «Да», а затем разместите предоставленный здесь URL. Это предоставит подробную информацию о текущем состоянии вашего компьютера, необходимую для диагностики проблемы.
Чтобы помочь вам понять процесс загрузки EFI и реализовать конфигурацию двойной загрузки, я настоятельно рекомендую вам прочитать хотя бы некоторые из следующих страниц:
- Запись в блоге Адама Уильямсона о том, как работает EFI-- На этой странице описывается теория загрузки в режиме EFI.
- Вопрос и ответы о различиях между загрузкой BIOS и EFI на Superuser.com-- Это дает основные сведения о предыдущем, но является более кратким.
- Моя страница об установке Linux на EFI-системы-- Эта страница представляет собой более практическое введение в загрузку в режиме EFI, чем блог Адама Уильямсона.
- Моя страница о загрузчиках EFI для Linux-- На этой странице описываются варианты загрузчика EFI для систем Linux.
Если вы прочтете хотя бы одну из них, сделайте ее моей страницей об установке Linux на системы EFI; это самое практичное руководство из этих четырех страниц. Запись в блоге Адама Уильямсона является второй по приоритету или пост Superuser, если вы торопитесь; эти страницы предоставят необходимую справочную информацию. Моя страница о загрузчиках EFI, вероятно, будет полезна, если вы не хотите использовать любой загрузчик или менеджер загрузки, который ваш дистрибутив использует по умолчанию.