четверг, 11 июня 2015 г.

Восстанавливаем загрузчик Windows если система стоит на VHD

На моем компьютере стоит 2 системы Linux и Windows, причем Windows установлен на VHD диск. Жесткие диски в формате GPT и в BIOS включен UEFI и Security boot.
В ходе экспериментов по оптимизации пространства, нужно было пересоздать UEFI System Partition. 


Самый простой способ который я нашел.
Вначале все как обычно, запустить установку Windows, когда появится окно с выбором диска, разбить диск как требуется, после чего нажать Shift+F10, появится командная строка.
Запускаем
diskpart
Создаем VHD диск
create vdisk file="C:\Windows.vhdx" maximum=70000 type=expandable
Поясню, что тут происходит: создается windows.vhdx диск на диске C: размером 70GB, файл расширяется по мере заполнения vhd диска.

Дальше его нужно приаттачить:
select vdisk file=C:\Windows.vhdx
attach vdisk
На этом работа с diskpart закончена.
В окне выбора диска нажимаем обновить, должен появится новый диск, выбираем его и продолжаем установку.

Если требуется чистая установка, то на этом можно и закончить, дальше все ставится в обычном режиме. После установки, система будет видеть VHD диск как диск C:

Если же уже есть vhd диск с установленной системой, и требуется только восстановить загрузчик, тогда процесс установки можно прервать, перезагрузив компьютер, и заново запустить установку Windows.
Но теперь вместо выбора Install, выбираем Repair

Windows repair

Выбираем Troubleshoot, затем Command Line.
Предполагается, что на диске С уже лежит/скопирован файл с ранее установленным образом диска.
Вводим:
bcdedit /copy {default} /d "Windows 8.1 from VHD"
Команда вернет guid вновь созданной записи 
Далее вводим следующие команды, заменяя {guid} на тот, что вернула предыдущая команда
bcdedit /set {guid} device vhd=[С:]\Windows.vhdx
bcdedit /set {guid} osdevice vhd=[С:]\Windows.vhdx
bcdedit /default {guid}
bcdedit /set {guid} detecthal on
Угловые скобки обязательна, без них команда выдаст ошибку.

Все, можно перезагружаться. Система загрузится в штатном режиме.
Можно было бы подумать что прервав или дождавшись окончания установки, достаточно просто взять и подменить новый vhd файл на старый, но так не получится. Система будет сообщать об ошибки, и упорно отказываться грузиться.

Как восстановить загрузчик в Linux читайте в статье Восстанавливаем загрузчик Linux.

Комментариев нет :

Отправить комментарий