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

в 18:42, , рубрики: gpt, mbr, UEFI, windows, системное администрирование

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

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

  • Установочный диск с Windows (или любой другой рабочий установочный носитель).
  • systemrescuecd
  • Новый диск, на который мы будем мигрировать (конвертацией займетесь сами, если диска нет)

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

fdisk -l

fdisk -l

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

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

gdisk /dev/sdb

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

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

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

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

Немного сожмем нашу исходную ФС на разделе /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

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

Будьте внимательны, выбрав не тот диск, можно сделать очень больно и обидно.
В моем случае, новый диск имеет цифру 1. Его выбираем, выбираем второй раздел и форматируем его в FAT32 (для системного раздела UEFI), в конце назначаем ему букву диска S:

format quick fs=fat32 label="EFI"
assign letter="S"

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

Выбираем диск с копией Windows

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

Интересный нам раздел с буквой E, на него нужно установить загрузочные файлы:

bcdboot E:Windows /s s: /f UEFI

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

Корректировка BCD

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

Вот и все, после перезапуска, система должна загрузиться.
В обратную сторону все примерно также (помним про типы разметки), но нужно создать один загрузочный раздел с NTFS (метров 100) и раздел для самой системы. Сделать активным загрузочный раздел, а затем установить на него загрузчик и загрузочную информацию (загрузочный раздел у нас с буквой S):

bcdboot E:Windows /s s: /f BIOS
bootsect /nt60 s: /mbr

Дальше правим загрузочную конфигурацию, и все.

Автор: MagicGTS

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js