Как обновить Windows 10 KVM гость до Windows 11?

Вопрос или проблема

Я пытался обновить свой KVM гостевой Windows 10 до Windows 11, следуя официальной документации, и возникли некоторые проблемы:

  1. Процессор не поддерживается, и я пробовал Skylake, Broadwell и т.д., без успеха
  2. Windows 11 требует наличие компьютера с включенной безопасной загрузкой и UEFI. А моя ВМ работает на BIOS
  3. Windows 11 требует TPM 2.0

Пункт 3 был очень простым, но 1) и особенно 2) сложнее

Я работал с KVM на Ubuntu 22.04 и последней версией KVM из репозитория Ubuntu. Моя KVM-гостевая система – это Windows 10 с последними обновлениями и чипсетом q35. Все изменения вносились при выключенной ВМ, если не указано иное.

Проблемы, с которыми я столкнулся при обновлении до Windows 11, были следующими:

  1. Не поддерживается процессор
  2. Требуется безопасная загрузка
  3. Windows 11 требует версии TPM 2.0 или более поздней

Пункт три был первым, с чем я столкнулся, и это просто, вам просто нужно добавить оборудование TPM в вашу гостевую KVM-систему через графический интерфейс. Нажмите на TPM и установите версию 2.

Для пункта 1 это зависит от вашего реального оборудования, на сегодня (сентябрь 2022) ни один из 64-битных процессоров не подходит для установки Windows 11. Решением является выбор режима passthrough CPU, если ваш хост работает на процессе Intel 9-го поколения или новее.

Пункт 2 был более сложным. Вот шаги для решения этой проблемы:

  1. Переход с BIOS на UEFI
  2. Настройка безопасной загрузки для KVM.
  3. Решение проблемы с Apparmor, если она возникнет

1) Переход с BIOS на UEFI

С гостевой KVM Windows 10 версии 21H1 или новее откройте командную строку от имени администратора и введите из каталога Windows/system32 mbr2gpt /validate /allowFullOS. Если результат успешен, то введите mbr2gpt /convert /allowFullOS. Если вы видите сообщения об ошибках, начинающиеся с MBR2GPT в конце, игнорируйте их (для более точных инструкций и устранения неполадок смотрите эту страницу: https://geekflare.com/change-bios-mode-from-legacy-to-uefi/)

Если все прошло хорошо, выключите ВМ и продолжите с

2) Настройка безопасной загрузки для KVM

В Ubuntu 22.04 если у вас установлен KVM, это не обязательно, но проверьте директорию /usr/share/OVMF/. Если она существует и содержит много файлов с расширением .fd, все в порядке; иначе введите sudo apt install ovmf.

Из терминала введите virsh edit <Domain Name> и найдите запись <smm state="on"/> внутри тэга features. Если ее нет, введите ее.

Теперь найдите тэг os и сделайте его таким:

<os>
  <type arch="x86_64" machine="pc-q35-3.1">hvm</type>
  <loader readonly='yes' secure="yes" type="pflash">/usr/share/OVMF/OVMF_CODE.fd</loader>
  <nvram template="/usr/share/OVMF/OVMF_CODE.secboot.fd">/usr/share/OVMF/OVMF_CODE.secboot.fd</nvram>
  <boot dev='hd'/>
  <bootmenu enable="yes"/> //Может быть 'no', если хотите
</os>

Поскольку ВМ была на BIOS ранее, удалите запись <boot order="1"/> внутри тэга disk, который находится внутри тэга devices. Теперь сохраните (ctrl+o) и выйдите (ctrl+x). Если все прошло успешно, появится что-то вроде “Конфигурация XML домена Domain Name отредактирована.”. Часть информации для этой настройки в Ubuntu взята с https://specs.openstack.org/openstack/nova-specs/specs/train/approved/allow-secure-boot-for-qemu-kvm-guests.html

Если все прошло успешно, гостевая система Windows 10 готова для перехода к обновлению до Windows 11. Однако, если есть проблема с apparmor, вот что я сделал, потому что попробовал другие решения, такие как переустановка apparmor, и это не сработало.

3) Решение проблемы с Apparmor, если возникнет

Просто при запуске ВМ возникает ошибка с Apparmor, не удается найти файл для libvirt-hard drive UUID. Решением является создание новой ВМ с использованием virsh или графического интерфейса с UEFI и безопасной загрузкой, добавив все необходимое оборудование (TPM 2.0 и passthrough CPU) и все другое оборудование, которое было на неработоспособной ВМ, но жесткий диск нужно использовать тот же, что и на неработоспособной. Если у вас есть решение этой проблемы, пожалуйста, помогите мне. В последний раз я решал проблему с apparmor, перенастраивая его, но я не помню шагов.

Запустите вашу ВМ с Windows 10 и следуйте официальным шагам. Надеюсь, это будет полезно.

Отличный ответ от George. Моя ситуация была достаточно другой, чтобы было полезно дать другой ответ.

Моя ситуация

  • Гость на MBR
  • Неподдерживаемый процессор
  • Аппаратный TPM 1.2
  • Хост на Ubuntu 22.04.5 LTS

Шаги

  1. Сделайте копию вашего хранилища Windows 10 для резервного копирования
  2. На текущей копии установите ключ реестра AllowUpgradesWithUnsupportedTPMOrCPU, как описано здесь или в других источниках. Это решает проблему неподдерживаемого процессора
  3. Измените файловую систему на gpt (если нужно). Откройте терминал от имени администратора и введите mbr2gpt /validate /allowFullOS, а затем mbr2gpt /convert /allowFullOS, как описал George
  4. Выключите ВМ
  5. Если у вас на ВМ менее 40 ГБ свободного места, выполните следующее:

sudo qemu-img resize <имя вашего образа> +40G

затем используйте gparted для изменения размера вашего раздела C (узнайте в других источниках, как использовать gparted)

sudo udisksctl loop-setup -f <имя вашего образа>

gparted /dev/loop<что показала последняя команда>

sudo udisksctl loop-delete -b /dev/loop<что показала последняя команда>

  1. Теперь создайте новую ВМ в virt-manager повторно используя этот образ. Используйте настройки Windows 11 по умолчанию
  2. С помощью графического интерфейса virt-manager добавьте эмулированное оборудование TPM и измените настройку вашего хранилища на VirtIO, если ваш образ был использован.
  3. Перейдите на aka.ms/DownloadWindows11, выберите “Скачать образ диска Windows 11 (ISO) для x64 устройств” и сохраните ISO-файл в своей папке Загрузки (обратите внимание, что эта страница скачивания имеет странную последовательность из нескольких шагов, так что будьте внимательны)
  4. После загрузки ISO-файла щелкните правой кнопкой на него, чтобы смонтировать, затем дважды нажмите setup.exe. Следуйте инструкциям

.

Ответ или решение

Обновление виртуальной машины (VM) с Windows 10 до Windows 11 в KVM может быть сложной задачей из-за ряда технических требований, выдвигаемых новой операционной системой. Ваша проблема состоит в том, что вам необходимо решить три основные задачи: поддержка процессора, переход на безопасный загрузчик (Secure Boot) и реализация TPM 2.0. Рассмотрим, как справиться с каждым из этих вопросов.

Шаг 1: Поддержка процессора

Проблема поддержки процессора часто возникает из-за строгих требований Windows 11 к процессорам. Вам необходимо обеспечить поддержку "сквозного" режима процессора (CPU passthrough) на вашей хостовой машине, если у вас процессор Intel 9-го поколения или новее. Для этого в файле конфигурации вашей виртуальной машины измените тип процессора на "host-passthrough", что позволит использовать функциональные возможности вашего реального процессора.

Шаг 2: Переход с BIOS на UEFI и настройка Secure Boot

Windows 11 требует наличия UEFI и включения Secure Boot. Чтобы поддержать это:

  1. Переход с MBR на GPT:

    • Запустите гостевую OS (Windows 10) и откройте командную строку от имени администратора.
    • Выполните команду mbr2gpt /validate /allowFullOS. Если проверка успешна, выполните mbr2gpt /convert /allowFullOS.
  2. Настройка UEFI в KVM:

    • Убедитесь, что в системе установлены файлы OVMF, выполняя команду sudo apt install ovmf, если их нет.
    • Откройте конфигурацию виртуальной машины с помощью команды virsh edit <Domain Name>.
    • Измените секцию <os> и укажите загрузчик (<loader>) в режиме UEFI и включите Secure Boot, используя файлы OVMF.
    • Удалите любые записи о загрузке в режиме BIOS.

Шаг 3: Реализация TPM 2.0

TPM 2.0 можно добавить через интерфейс virt-manager. Достаточно выбрать соответствующий тип TPM и добавить его в конфигурацию вашей виртуальной машины.

Шаг 4: Решение проблем с AppArmor (если они возникнут)

Если возникнут ошибки, связанные с AppArmor, например, при загрузке VM, вы можете создать новую виртуальную машину с аналогичными настройками (включая TPM и CPU) и указать её использовать тот же жёсткий диск, что и исходная VM.

Финальный Шаг: Обновление до Windows 11

После выполнения всех вышеуказанных шагов запустите виртуальную машину, загрузите ISO-образ Windows 11 с официального сайта Microsoft, смонтируйте его внутри гостевой OS и следуйте инструкциям по обновлению.

Этот процесс решает основные проблемы, связанные с обновлением Windows 10 до Windows 11 внутри KVM на платформе Ubuntu. Важно уделять внимание каждому этапу, так как соблюдение всех требований Windows 11 критично для успешного обновления.

Оцените материал
Добавить комментарий

Капча загружается...