Instalace Windows 11 na KVM Gentoo moje. Instalaci jsem dělal z Win11_25H2_Czech_x64.iso, účet u Microsoftu se dá obejít. Nenstaloval jsem proto z Win-11-pro-25H2-NTLite-2.iso od Pavla, protože tam nefunguje vzdálená plocha, chybí služba Remote Desktop Services UserMode Port Redirector, umrdp.dll. Virtuální stroj používá TPM emulátor a UEFI. Drivery pro disk a síťovku jsou z virtio-win-0.1.285.iso

Instalace UEFI BIOSU do KVM (obvykle není potřeba dělat, je to nainstalováno s qemu):

emerge edk2

Instalace emulátoru TPM

echo '>=net-libs/gnutls-3.8.10-r1 pkcs11 tools' >>/etc/portage/package.use/gnutls
emerge swtpm

Potřebné soubory

/home/vm/iso
-rw-r--r-- 1 root root 6494486528 26. říj 12.27 Win-11-pro-25H2-NTLite-2.iso
-rw-r--r-- 1 root root 7577804800 16. pro 15.24 Win11_25H2_Czech_x64.iso
-rw-rw-r-- 1 root root  789645312 29. pro 03.48 virtio-win-0.1.285.iso

Vytvoření virtuálního disku v adresáři /data1/vm/20-win11:

mkdir /data1/vm/20-win11
cd /data1/vm/20-win11
qemu-img create -f qcow2 win11-disk1.qcow2

Kopírování dat pro UEFI

cp /usr/share/edk2/OvmfX64/ OVMF_CODE.fd /data1/vm/20-win11/

Spouštěcí skript pro virtuání stroj:

/etc/init.d/kvm-20-win11
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_commands="zaloha zalstop"

CISLO="20"
NAME="${CISLO}-win11"
WINIMG="/home/vm/iso/Win11_25H2_Czech_x64.iso"
#WINIMG="/home/vm/iso/Win-11-pro-25H2-NTLite-2.iso"
VIRTIMG="/home/vm/iso/virtio-win-0.1.285.iso"
DISK="win11-disk1.qcow2"
VIRT_DIR="/data1/vm/${NAME}"
VIRTDISK="${VIRT_DIR}/${DISK}"
ZALOHA_DIR="/data5/vm/${NAME}"
ZALOHA="${ZALOHA_DIR}/${DISK}"
pidfile="/run/kvm-${NAME}.pid"
MEMORY=16000
CORES=4
PORT=59${CISLO}
MAC="00:25:2d:75:f6:${CISLO}"
NETDEV="mp${CISLO}"
BR="br0"
TAP="tap${CISLO}"
CHANNEL=${CISLO}
SECRET="/etc/qemu/spice_secrets_${CISLO}"


depend() {
        use logger clock hostname net
}

start() {
        ebegin "Starting ${SVCNAME}"
        mkdir -p /run/kvm-${NAME}
        swtpm socket --tpm2 --tpmstate dir=${VIRT_DIR} --ctrl type=unixio,path=${VIRT_DIR}/swtpm.sock,terminate -d
        qemu-system-x86_64 --enable-kvm \
            -machine q35 \
            -cpu host \
            -name ${NAME} \
            -smp cores=${CORES} \
            -m ${MEMORY} \
            -boot menu=on \
            -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/OvmfX64/OVMF_CODE.secboot.fd \
            -drive if=pflash,format=raw,file=${VIRT_DIR}/OVMF_VARS.fd \
            -drive file=${WINIMG},media=cdrom,if=none,id=cd0 \
            -device ide-cd,drive=cd0,bootindex=0 \
            -drive file=${VIRTIMG},media=cdrom \
            -drive driver=qcow2,file=${VIRTDISK},if=virtio \
            -device virtio-net,netdev=${NETDEV},mac=${MAC} \
            -netdev tap,id=${NETDEV},ifname=${TAP},br=${BR} \
            -rtc base=localtime,clock=host \
            -object secret,id=spice_sec,file=${SECRET} \
            -vga qxl -device virtio-serial-pci -spice port=${PORT},ipv4=off,ipv6=on,password-secret=spice_sec \
            -device virtserialport,chardev=spicechannel1,name=com.redhat.spice.1 -chardev spicevmc,id=spicechannel1,name=vdagent \
            -monitor unix:/run/kvm-${NAME}/monitor,server,nowait \
            -object rng-random,id=rng0,filename=/dev/urandom -device virtio-rng-pci,rng=rng0 \
            -chardev socket,id=chrtpm,path=${VIRT_DIR}/swtpm.sock \
            -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0 \
            -daemonize \
            -pidfile ${pidfile}
        eend $?
}


stop() {
        ebegin "Stopping ${SVCNAME}"
#       ssh Administrator@win11 "shutdown /s /c: \"Zaloha\" /t 10 /d p:4:1" ||
        echo system_powerdown | socat - UNIX-CONNECT:/run/kvm-${NAME}/monitor
        sleep 20
        start-stop-daemon --stop --pidfile ${pidfile}
        ret=$?
        eend ${ret}
}

zaloha() {
        stop
        ebegin "Zalohuji ${SVCNAME}"
        mkdir -p ${ZALOHA_DIR}
        mv ${ZALOHA}.5.zstd ${ZALOHA}.6.zstd
        mv ${ZALOHA}.4.zstd ${ZALOHA}.5.zstd
        mv ${ZALOHA}.3.zstd ${ZALOHA}.4.zstd
        mv ${ZALOHA}.2.zstd ${ZALOHA}.3.zstd
        mv ${ZALOHA}.1.zstd ${ZALOHA}.2.zstd
        zstd -10 -T8 -k -c -o ${ZALOHA}.1.zstd ${VIRTDISK}
        eend $?
        start
}

zalstop() {
        stop
        ebegin "Zalohuji ${SVCNAME}"
        mkdir -p ${ZALOHA_DIR}
        mv ${ZALOHA}.5.zstd ${ZALOHA}.6.zstd
        mv ${ZALOHA}.4.zstd ${ZALOHA}.5.zstd
        mv ${ZALOHA}.3.zstd ${ZALOHA}.4.zstd
        mv ${ZALOHA}.2.zstd ${ZALOHA}.3.zstd
        mv ${ZALOHA}.1.zstd ${ZALOHA}.2.zstd
        zstd -10 -T8 -k -c -o ${ZALOHA}.1.zstd ${VIRTDISK}
        eend $?
}

Instalace Windows11 25H2 bez účtu u Microsoftu:

  1. Prostředí české

  2. Klávesnice česká

  3. Po tomto nastavení stisknout Shift+F10 a na konzoli napsat příkaz OOBE\BYPASSNRO.

Aktivace:

Klíč:  xxxxx-VNWHQ-MPB7X-VVQ98-VH66Y

slmgr /xpr
Nainstalované Windows 11

win11 funguje

Zdroje a odkazy