Pull to refresh

Миграция Windows между BIOS <-> UEFI

System administration *UEFI *
Tutorial
Появляется такая задача не часто, но все-же, нужно преобразовать уже установленную систему, загружаемую в BIOS (или UEFI режиме) в UEFI режим (в BIOS соответственно).
Кому интересно, читаем далее:

К счастью, Windows 7 и старше, изначально готовы грузится в любом из режимов, нужно только изменить структуру разделов и загрузчик.
Для этого нам понадобится:
  • Установочный диск с Windows (или любой другой рабочий установочный носитель).
  • systemrescuecd
  • Новый диск, на который мы будем мигрировать (конвертацией займетесь сами, если диска нет)


Загрузимся с systemrescuecd и просмотрим наши диски:
fdisk -l

fdisk -l


У вас ситуация может немного отличаться, в моем случае, /dev/sda это исходный диск, а /dev/sdb на который будем переносить систему.
Начнем создавать разделы (используем gdisk для разметки в gpt, а fdisk для mbr):
gdisk /dev/sdb

Создание разделов в gdisk






Немного сожмем нашу исходную ФС на разделе /dev/sda2 (чтобы она точно влезла в новый раздел).
ntfsresize -s 126G -f /dev/sda2

Клонируем раздел, и расширяем его на все доступное пространство:
partclone.ntfs -b -I -s /dev/sda2 -o /dev/sdb4
ntfsresize -f /dev/sdb4

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


Будьте внимательны, выбрав не тот диск, можно сделать очень больно и обидно.
В моем случае, новый диск имеет цифру 1. Его выбираем, выбираем второй раздел и форматируем его в FAT32 (для системного раздела UEFI), в конце назначаем ему букву диска S:
format quick fs=fat32 label="EFI"
assign letter="S"

Сложнее с разделами, куда установлена Windows. После клонирования, метки тома у них одинаковые (можно было и в Linux их поменять). Но нам опять поможет diskpart, мы просто выберем том, и посмотрим его детальные параметры.
Выбираем диск с копией Windows


Интересный нам раздел с буквой E, на него нужно установить загрузочные файлы:
bcdboot E:\Windows /s s: /f UEFI

Затем, проверим, что конфигурация загрузчика верна, и если это не так, пропишем правильные данные (в моем случае, загрузка указывала на неверный том, и я его переопределил, в примере идентификатор, начинающийся на 586).
Корректировка BCD



Вот и все, после перезапуска, система должна загрузиться.

Из UEFI в BIOS


В обратную сторону все примерно также (помним про типы разметки), но нужно создать один загрузочный раздел с NTFS (метров 100) и раздел для самой системы. Сделать активным загрузочный раздел, а затем установить на него загрузчик и загрузочную информацию (загрузочный раздел у нас с буквой S):
bcdboot E:\Windows /s s: /f BIOS
bootsect /nt60 s: /mbr

Дальше правим загрузочную конфигурацию, и все.
Tags: windowsuefimbrbiosgpt
Hubs: System administration UEFI
Total votes 23: ↑20 and ↓3 +17
Comments 40
Comments Comments 40

Popular right now

Top of the last 24 hours