Creazione in Proxmox della VM Windows 11


Creare in Proxmox una VM con le seguenti caratteristiche.


Creare una immagine NUOVA ogni volta perchè se si "recicla una immagine già usata la procedura fallisce (come se il disco di installazione fosse corrotto)

Per windows 11 i requisiti minimi di sistema includono un processore 1 GHz o superiore con 2 o più core, 4 GB di RAM, un dispositivo di archiviazione da 64 GB


Agganciare  alla VM due CD/DVD rispettivamente con i seguenti file ISO:



 Alla prima schermata (“Scegli lingua / layout tastiera”)

 Premi Shift + F10 Scrivi i comandi nel prompt

ISTRUZIONI IN TEST (per risolvere proeelma della partizione dischi in corso....)

:: LabConfig: bypass hardware checks

reg add HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassCPUCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassStorageCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassDiskCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassNetworkCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassBitlockerCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassWin10BuildVersionCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v UseLegacySetupFlow /t REG_DWORD /d 1 /f


:: MoSetup: consente aggiornamenti su hardware non supportato
reg add HKLM\SYSTEM\Setup\MoSetup /v AllowUpgradesWithUnsupportedTPMOrCPU /t REG_DWORD /d 1 /f


:: Disabilita OOBE dinamico (connessione a internet e aggiornamenti durante setup)
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\OOBE /v DisableDynamicUpdate /t REG_DWORD /d 1 /f
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\OOBE /v SkipMachineOOBE /t REG_DWORD /d 1 /f
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\OOBE /v SkipUserOOBE /t REG_DWORD /d 1 /f

:: Imposta valore per evitare setup moderno (potenziale blocco 24H2)
reg add HKLM\SYSTEM\Setup /v SetupPlatform /t REG_SZ /d "Classic" /f


file di log in 

notepad C:\Windows\Panther\setupact.log
notepad C:\Windows\Panther\setuperr.log


diskpart
select disk 0
clean
convert mbr
create partition primary
format fs=ntfs quick
active
assign letter=c
exit


reg add HKLM\SYSTEM\Setup\LabConfig
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /t REG_DWORD /d 1
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassCPUCheck /t REG_DWORD /d 1
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassStorageCheck /t REG_DWORD /d 1
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassDiskCheck /t REG_DWORD /d 1
 -

Comando

A cosa serve

BypassTPMCheck

Ignora l’assenza di TPM 2.0

BypassSecureBootCheck

Ignora la mancanza di Secure Boot

BypassRAMCheck

Permette installazione anche con meno di 4 GB di RAM

BypassCPUCheck

Ignora CPU non ufficialmente supportate

BypassStorageCheck

Evita blocco per spazio disco insufficiente




Selezionare "I don't have a product key"



Selezionare Windows 11 Pro perché ha il Remote desktop ed è accettata dalle licenze KMS (maggiori info qui per le Licenze INFN)



Seleziona Load Driver



Nel CD virtio-win cercare nella cartella amd60a la versione di windows che si sta installando



E procedere all’installazione del driver proposto

A questo punto il disco della macchina virtuale compare ed è possibile procedere con l'installazione.

FORMAT + DELETE 
Procedere a cancellare tutte le partizioni e a formattare il disco da questa maschera:



Quando ti trovi nella schermata "Select location to install Windows 11",   SHIFT+F10 e si aprirà una finestra dos ed esegui questi comandi:


diskpart
list disk
select disk 0
clean
create partition primary
format fs=ntfs quick
assign
active
exit
  1. clean – Cancella tutte le partizioni e il contenuto del disco selezionato.
  2. create partition primary – Crea una singola partizione primaria (senza partizione di sistema, recovery, ecc.).
  3. format fs=ntfs quick – Formatto in NTFS.
  4. active – Imposta la partizione come avviabile (bootable)

Eseguendo il refresh il disco apparirà unico in modo da procedere con l'installazione:


Da qua poi inizia l’installazione di windows (ci sono alcuni riavvii)

In Windows11 non c'è più la possibilità di procedere senza internet

SHIFT + F10

OOBE\BYPASSNRO


 Il PC si riavvia automaticamente

 Al riavvio, l’opzione “I don’t have internet” apparirà magicamente nella schermata di rete

Clicca su “I don’t have internet”, poi “Continue with limited setup”

 Ora puoi creare un account locale e finire l’installazione


Specificare un nome utente tale utente non verra' poi utilizzato se non durante questa fase di preparazione (si consiglia di usare un nome di fantasia come "cloud", ma in ogni caso non usare un account utilizzato in produzione).

Windows è installato



Sysprep non può essere eseguito quando il sistema sta usando la "Reserved Storage" (una porzione del disco riservata per aggiornamenti e manutenzioni di Windows), e questo blocca la fase di pulizia (cleanup) di Sysprep.

powershell (aprire la riga di comando apposita con diritti di amministrazione):

dism /Online /Set-ReservedStorageState /State:Disabled


Il servizio onedrive, anche se non configurato, crea problemi nel

passaggio successivo, quindi e' necessario disinstallarlo per tutti gli utenti tramite questi comandi

powershell (aprire la riga di comando apposita con diritti di amministrazione):

Get-AppxPackage -AllUsers Microsoft.OneDriveSync | Remove-AppxPackage -AllUsers


riavviare la macchina per rendere effettiva la modifica


Ora procedere ad installare il resto dei driver necessari

Dall disco con i driver virtio ed eseguire "virtio-win-guest-tools" per installare tutti i driver necessari al buon funzionamento della VM.


al termine dell'installazione eseguire riavvio

Verificare che il disco sia unico e non ci sia discontinuità (Disk Management)

ATTENZIONE attualmente ora (03/06/2025) la situazione è questa (WIN11 HA CREATO UNA PARTIZIONE DI RECOVERY ALLA FINE):


Attivazione RDP e PING

Per attivare la connessione da Remoto:

  • Apri Esegui (Win + R oppure scrivi "Run”), digita sysdm.cpl e premi Invio.
  • Vai alla scheda Connessione remota
  • Seleziona Consenti connessioni remote a questo computer
  • Assicurati che l'opzione "Consenti solo connessioni da computer con autenticazione NLA" sia disabilitata se ti connetti da dispositivi non Windows (esempio Linux).


Perchè la macchina risponda al ping :

  • Windows Defender Firewall con sicurezza avanzata 
  • Vai su Regole in entrata (Inbound Rules).
  • Cerca la regola "Monitoraggio macchine virtuali - Richiesta Echo (ICMPv4-In)" - Virtual Machine Monitoring - Echo Request (ICMPv4-In).
  • Se è disabilitata, fai clic destro e seleziona Abilita regola.- Enable Rule

Restart della macchina


Preparazione Immagine per distribuzione


Ora procedere alla pulizia di tutta la macchina

A questo punto resta solo da installare il servizio cloudbase-init, che comunica con openstack durante l'istanziazione della macchina.


Nel CD  trovi

installare cloud-init sulla VM.


Procedere all’installazione


Prima della maschera “Complete The Cloudbase-Init….”
copia il contenuto dei file cloudbase-init-unattend.conf e Unattend.xml negli stessi file presenti in

C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf

I file devono essere aperti con Notepad come amministratore


  • "Run Sysprep to create the generalized image"
  • "Shutdown when Sysprep terminates"


Ottimizzazione immagine cloud

Ora la nostra immagine e' pronta per essere utilizzata sul cloud ma per ottimizzare lo spazio è possibile compattare il disco.

Sul computer host, dove si e' installata la vm windows, recarsi nel percorso dove e' presente il disco virtuale  (su Proxmox /var/lib/vz/images/NumeroVM) e quindi dare i seguenti comandi:

apt install libguestfs-tools
virt-sparsify <nome_immagine.qcow2> <nuova_immagine.qcow2>

esempio:


virt-sparsify vm-110-disk-1.qcow2 vmCloud240325.qcow2

L'immagine è ora veramente pronta per l'uso su cloud.


Procedere con Upload in glance di una nuova immagine pubblica