В статье рассмотрю пример установки MS Windows 11 в виртуальную машину без модуля TPM 2.0, без включения безопасной загрузки с помощью штатных средств оригинального установочного образа системы.
При установке на неподдерживаемое оборудование, установщик Windows 11 сообщит что дальнейшая установка невозможна.
Установить систему на подобное оборудование можно с помощью распаковки образа install.wim утилитой dism с последующей установкой загрузчика.
Действия будут производится внутри виртуальной машины Qemu-KVM. При установке Windows все данные с виртуального жёсткого диска будут удалены.
Загрузка образов
Заходим на сайт Microsoft, получаем ссылку для загрузки iso образа (возможно, потребует открыть сайт через vpn).
Скачиваем образ (загрузка по прямой ссылке проходит успешно без vpn).
Скачиваем iso образ с драйверами Virtio для Windows - https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md
Подготовка виртуальной машины Qemu KVM
Подробнее про запуск виртуальных машин Qemu-KVM и подготовку виртуальной сети написано в моей статье:
Сейчас кратко опишу подготовку к запуску.
Если вы используете другую систему виртуализации или устанавливаете Windows 11 на физическую машину, то можете перейти к следующему пункту.
Виртуальную сеть будем использовать с tap адаптерами.
Готовим виртуальный диск для Qemu-KVM:
qemu-img create -f qcow2 /mnt/virtual/Windows11/windows11.qcow2 50G
Из пакета edk2-ovmf копируем образы UEFI и NVRAM:
cp /usr/share/edk2/ovmf/OVMF_CODE.fd /mnt/virtual/Windows11
cp /usr/share/edk2/ovmf/OVMF_VARS.fd /mnt/virtual/Windows11
Запускаем виртуальную машину с образами Windows и драйверами virtio:
sudo qemu-kvm \
-run-with user=$USER \
-machine q35 \
-smbios type=1,manufacturer=Qemu,product=KVM,version=1 \
-cpu qemu64 \
-accel kvm \
-smp cpus=4,sockets=1,cores=4 \
-m 6G \
-k en-us \
-vga qxl \
-display spice-app \
-device virtio-net-pci,mac=52:54:00:00:00:01,netdev=lan \
-netdev tap,id=lan,ifname=tap0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown \
-drive if=pflash,format=raw,readonly=on,file=/mnt/virtual/Windows11/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/mnt/virtual/Windows11/OVMF_VARS.fd \
-drive file=/mnt/virtual/Windows11/Windows11.qcow2,if=virtio,cache=writeback,media=disk \
-drive file=/mnt/iso/Win11_Russian_x64.iso,media=cdrom \
-drive file=/mnt/iso/virtio-win-0.1.217.iso,media=cdrom
Вход в режим восстановления
Загружаемся с CD-ROM, входим в режим восстановления.
Определяем имена обнаруженных логических дисков с помощью команды:
wmic logicaldisk get caption
Загрузка драйвера дискового контроллера
В Windows 11 нет драйвера дискового контроллера Virtio, поэтому необходимо его загрузить вручную.
Поочерёдно смотрим содержимое дисков командой dir, определяем на каком диске находятся драйвера. В моём случае это оказался диск E:
Загружаем драйвер дискового контроллера:
drvload E:\amd64\w11\viostor.inf
DrvLoad: Успешно загружен E:\amd64\w11\viostor.inf
Создание разделов на диске для установки Windows 11
Запускаем в командной строке программу diskpart.
Получаем список дисков с помощью команды list disk.
Выбираем диск:
select disk 0
УДАЛЯЕМ ВСЕ ДАННЫЕ НА ДИСКЕ (команда подтверждения не запрашивает):
clean
Создаём на диске разметку GPT:
convert gpt
Создаём раздел ESP для загрузки на 256 МБ, назначаем ему свободную букву (U:) и форматируем в FAT32:
create partition efi size=256
assign letter=U
format fs=fat label=ESP quick
Создаём раздел Microsoft Reserved Partition объёмом 16 МБ:
create partition msr size=16
Создаём раздел для системы на всё оставшееся место, назначаем ему свободную букву (у меня свободна буква С:, у вас буква диска может быть другой) и форматируем в NTFS:
create partition primary
assign letter=C
format fs=ntfs label=Windows11 quick
Выходим из diskpart:
exit
Распаковка wim-образа
Определяем букву диска, где находятся установочные файлы Windows 11. У меня это оказался диск D:
Информация об образе
Получаем информацию об установочном образе:
dism /Get-WimInfo /WimFile:D:\sources\install.wim
Запоминаем индекс нужной нам редакции Windows.
Распаковка образа
С помощью команды dism распаковываем образ на диск С: (у вас буква диска может быть другой).
Dism /apply-image /imagefile:D:\sources\install.wim /index:4 /ApplyDir:C:\
Параметры:
- /imagefile - путь к образу wim
- /index - вариант редакции Windows
- /ApplyDir - каталог для распаковки образа
Проверяем содержимое диска, куда распаковали образ (у меня это диск C:)
Добавления драйвера в Windows 11
После выхода из режима восстановления система не загрузится, так как в ней нет драйверов для дискового контроллера, поскольку drvload загрузил драйвер только на время сеанса.
Добавляем драйвер с помощью команды dism:
dism /image:С:\ /add-driver /driver:e:\viostor\w11\amd64\viostor.inf
Параметры:
- /image - диск с распакованной Windows
- /driver - путь к драйверу
Установка загрузчика
Выполняем установку файлов, необходимых для загрузки, на раздел ESP (я ранее назначил ему букву U:)
bcdboot C:\Windows /s U: /f UEFI
Выходим из командой строки. Выбираем продолжить или выключаем виртуальную машину.
Настройка Windows 11 после установки
Запускаем Windows, ждём когда она завершит настройку оборудования, отмечаем на вопросы мастера первоначальной настройки.
Мастер настройки Windows 11 потребует обязательного подключения к Интернет для завершения настройки. Если интернет отсутствует, то необходимо перезапустить настройку через команду oobe\bypassnro.
Для этого при запуске экрана настроек нажмите клавиши Shift+F10 чтобы открыть командную строку и находясь в каталоге c:\windows\system32 введите команду:
oobe\bypassnro
Система перезагрузится, и после запуска настройки можно выбрать пункт "У меня нет Интернета".
После завершения первоначальной настройки устанавливаем оставшиеся драйвера.
После установки драйверов выключаем машину, убираем из параметров запуска iso-образы и запускам снова.
На этом установка завершена.