Se l’aggiornamento di sicurezza KB5034439 su Windows Server 2022 fallisce con l’errore 0x80070643, quasi sempre la causa è una partizione Windows Recovery Environment (WinRE) troppo piccola. In questa guida trovi spiegazione, prerequisiti e una procedura sicura per ridimensionarla e completare l’update.
Segnali e sintomi
- Windows Update o l’installazione offline dell’MSU termina con il codice 0x80070643 (errore d’installazione del pacchetto).
- Nel registro CBS.log o negli eventi di Setup trovi riferimenti a WinRE e a spazio insufficiente.
- Il server è Windows Server 2022 (21H2, x64) e l’update in questione è KB5034439 (aggiornamento della partizione di ripristino per mitigare CVE‑2024‑20666, vulnerabilità di BitLocker).
La causa in parole semplici
KB5034439 aggiorna i componenti di Windows Recovery Environment per chiudere una falla di BitLocker. Per applicarsi, il pacchetto deve scrivere file aggiuntivi nella partizione WinRE. Se quella partizione non ha almeno ≈ 250 MB liberi (consigliati ≥ 750 MB per resilienza agli update futuri), l’installazione fallisce con 0x80070643. Microsoft indica esplicitamente che la sola soluzione è ridimensionare WinRE finché c’è spazio sufficiente.
Quando conviene ridimensionare
Aspetto | Pro | Contro |
---|---|---|
Sicurezza | Chiudi la vulnerabilità e rendi conforme il server. | — |
Operatività | Soluzione definitiva; gli aggiornamenti WinRE futuri non si bloccheranno. | Richiede una breve finestra di manutenzione. |
Rischi | — | Un ridimensionamento errato può danneggiare le partizioni. Effettua un backup/snapshot. |
Checklist pre-intervento
- Backup o snapshot della VM (o immagine del sistema se bare metal).
- Finestra di manutenzione e verifica dei prerequisiti di accesso (console out‑of‑band/ILO/DRAC se server fisico).
- Se usi BitLocker su C:, sospendi temporaneamente i protectors prima di ridurre il volume:
manage-bde -protectors -disable C: -RebootCount 1
- Chiudi applicazioni che bloccano il volume di sistema (backup, antivirus, VSS). Facoltativo: ottimizza C: per migliorare lo shrink:
defrag C: /x
Verifiche preliminari
Controlla lo stato di WinRE
reagentc /info
- Windows RE status deve essere Enabled (se è Disabled, la procedura lo ripristinerà).
- Windows RE location indica dove si trova
Winre.wim
. Doporeagentc /disable
il file viene in genere portato inC:\Windows\System32\Recovery
.
Individua la partizione di ripristino
diskpart
list disk
select disk 0
list partition
list volume
exit
La partizione WinRE è spesso l’ultima sul disco, senza lettera, etichettata Recovery o con tipo GPT Windows RE Tools.
Misura lo spazio libero di WinRE (opzionale ma utile)
diskpart
select disk 0
select partition <N> rem <N> = partizione di ripristino
assign letter=R
exit
fsutil volume diskfree R:
dir /a R:\Recovery\WindowsRE
Se lo spazio libero è < 250 MB, procedi con il ridimensionamento. Al termine rimuoverai la lettera con mountvol R: /d
.
Procedura sintetizzata (TL;DR)
- Backup/Snapshot del server.
- Disabilita WinRE:
reagentc /disable
- Libera spazio vicino a C: riducendo la partizione di sistema (≥ 300 MB, meglio 1 GB) con
diskpart
o un tool grafico. - Estendi o crea la partizione WinRE usando lo spazio appena liberato.
- Ricollega
Winre.wim
e riabilita WinRE:reagentc /setreimage /path R:\Recovery\WindowsRE reagentc /enable reagentc /info
- Riavvia e ripeti Windows Update oppure installa l’MSU offline.
- In alternativa, usa lo script PowerShell ufficiale Extend‑WinRE‑Partition.ps1 (funziona se WinRE è ultima partizione e c’è spazio contiguo).
Procedura dettagliata passo‑passo
Disabilita WinRE
Apri un prompt con privilegi elevati ed esegui:
reagentc /disable
reagentc /info rem verifica che sia Disabled
Questo passaggio libera eventuali lock e sposta Winre.wim
nella cartella di sistema, semplificando le operazioni successive.
Riduci la partizione di sistema C:
Con diskpart
puoi liberare spazio contiguo subito dopo C:. Esempio per ottenere 1024 MB (1 GB):
diskpart
list volume
select volume C
shrink desired=1024 minimum=512
exit
desired
eminimum
sono espressi in MB. Se lo shrink restituisce 0, provadefrag C: /x
e ripeti; in casi ostinati servirà un tool di partizionamento a freddo.- Se il layout prevede la partizione WinRE prima di C: (caso raro), non potrai semplicemente estenderla: dovrai spostare le partizioni con strumenti dedicati (GParted/MiniTool ecc.) in un downtime controllato.
Crea o estendi la partizione WinRE
Scenario A – WinRE è già l’ultima partizione: estendila con lo spazio liberato.
diskpart
select disk 0
list partition
select partition <N> rem <N> = partizione di ripristino
extend size=1024 rem estende di 1024 MB
exit
Scenario B – WinRE non esiste o non è estendibile: creane una nuova subito dopo C: (consigliato 1024 MB per lasciare > 750 MB liberi post‑update).
diskpart
select disk 0
create partition primary size=1024
format quick fs=ntfs label="Recovery"
rem Imposta il tipo partizione WinRE (GPT) + attributi nascosta/required
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
assign letter=R
exit
Nota: su dischi MBR, usa set id=27 override
al posto del GUID. Gli attributi GPT impongono Hidden e Required per la partizione di ripristino.
Prepara la struttura di cartelle e la WIM
Se la cartella non esiste, creala e copia il file:
mkdir R:\Recovery\WindowsRE
copy /y C:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\Winre.wim
dir /a R:\Recovery\WindowsRE
Riabilita WinRE e collega il percorso corretto
reagentc /setreimage /path R:\Recovery\WindowsRE
reagentc /enable
reagentc /info
- Verifica che Windows RE status sia Enabled e che il Location punti alla partizione appena preparata.
- Rimuovi la lettera assegnata (per tornare “nascosta”):
mountvol R: /d
Riavvia il server
Un riavvio assicura che i metadati delle partizioni e le protezioni BitLocker (se sospese) tornino allo stato desiderato.
Installare l’aggiornamento dopo il fix
Via Windows Update
Riesegui Verifica disponibilità aggiornamenti. Se la partizione WinRE è correttamente dimensionata, KB5034439 si installerà senza errori.
Via pacchetto offline
Se disponi del file .msu
di KB5034439 (o del cumulativo che lo include), puoi applicarlo con:
wusa <Percorso>\windows10.0-kb5034439-x64.msu /quiet /norestart
In alternativa (per pacchetti .cab):
DISM /Online /Add-Package /PackagePath:<Percorso>\kb5034439.cab
Verifica dell’installazione
- Storico aggiornamenti: Impostazioni > Windows Update > Cronologia aggiornamenti.
- Event Viewer: Applications and Services Logs > Microsoft > Windows > WindowsUpdateClient, cerca eventi di successo dopo il riavvio.
- PowerShell (indicativo, alcuni update WinRE non compaiono in
Get-HotFix
):Get-HotFix -Id KB5034439
- DISM per l’elenco pacchetti:
DISM /Online /Get-Packages /Format:Table
Automazione con lo script ufficiale
Microsoft fornisce lo script Extend‑WinRE‑Partition.ps1 per automatizzare il ridimensionamento. Punti chiave:
- Funziona solo se la partizione WinRE è l’ultima sul disco e c’è spazio contiguo da estendere.
- Non risolve layout complessi (WinRE prima di C:, più partizioni intermedie, Storage Spaces, dischi dinamici).
- Esecuzione tipica (PowerShell come amministratore):
Set-ExecutionPolicy Bypass -Scope Process -Force .\Extend-WinRE-Partition.ps1 -Verbose
- Dopo l’esecuzione, verificare con
reagentc /info
e ripetere Windows Update.
Strategia di dimensionamento consigliata
Il requisito minimo dichiarato per l’installazione è ≈ 250 MB liberi. Per ridurre la probabilità di blocchi con update WinRE futuri, adotta una politica prudente:
- Dimensione partizione: 1024 MB (1 GB) o superiore su sistemi con spazio disco adeguato.
- Spazio libero target: lasciare ≥ 750 MB liberi dopo l’aggiornamento.
- Posizionamento: preferibilmente subito dopo C:, così da poter estendere/ridurre facilmente.
Casi particolari e come gestirli
WinRE prima di C:
Alcuni OEM dispongono WinRE all’inizio del disco. In tal caso:
- Prepara un downtime e un backup completo.
- Usa un tool di partizionamento a freddo (es. live USB) per spostare C: in avanti o WinRE in coda, creando spazio contiguo.
- Riallinea, verifica l’avvio, poi
reagentc /disable
, estendi WinRE ereagentc /enable
.
Dischi MBR, Storage Spaces, dinamici
- MBR: WinRE usa ID
27
; i comandi DiskPart differiscono leggermente (set id=27 override
). - Storage Spaces / Dischi dinamici: valuta l’uso di strumenti specifici del tuo stack; evita manipolazioni rischiose in produzione.
- Cluster/Hyper‑V: se il server è VM, la strada più sicura è snapshot VM prima del ridimensionamento.
BitLocker
- Sospendi i protectors su C: prima dello shrink e riattivali dopo il riavvio:
manage-bde -protectors -enable C:
- Se la partizione WinRE è cifrata per policy, assicurati che la nuova partizione mantenga gli attributi corretti e non venga protetta in modo improprio.
Server Core vs Desktop Experience
La procedura è identica. Su Server Core esegui tutto via riga di comando/PowerShell.
Errori comuni e come evitarli
- Estensione negata: la partizione WinRE non è adiacente allo spazio libero. Soluzione: sposta/compatta con tool a freddo o crea una nuova WinRE nella posizione corretta.
- Reagentc fallisce con “path not found”: la cartella
R:\Recovery\WindowsRE
non esiste o mancaWinre.wim
. Crea la cartella e copia la WIM. - Lo shrink di C: è 0 MB: ci sono file non spostabili. Prova
defrag C: /x
, disattiva temporaneamente file di paging/Shadow Copies o esegui lo shrink offline. - Partizione non nascosta: dimenticati gli attributi GPT/ID. Impostali come indicato e rimuovi la lettera con
mountvol R: /d
. - Ritorno immediato dell’errore 0x80070643: WinRE non ha ancora spazio sufficiente. Verifica la dimensione effettiva post‑update e lascia margine (≥ 750 MB liberi).
Esempi di script pronti all’uso
Estensione rapida di una WinRE esistente (ultima partizione)
reagentc /disable
diskpart
select disk 0
list partition
select partition \ rem WinRE
extend size=1024
exit
assign R: rem se non ha lettera: usa diskpart per assign
mkdir R:\Recovery\WindowsRE rem se necessario
copy /y C:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\Winre.wim
reagentc /setreimage /path R:\Recovery\WindowsRE
reagentc /enable
reagentc /info
mountvol R: /d
Creazione ex‑novo di una partizione WinRE da 1 GB dopo C:
reagentc /disable
diskpart
select volume C
shrink desired=1024 minimum=512
select disk 0
create partition primary size=1024
format quick fs=ntfs label="Recovery"
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
assign letter=R
exit
mkdir R:\Recovery\WindowsRE
copy /y C:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\Winre.wim
reagentc /setreimage /path R:\Recovery\WindowsRE
reagentc /enable
reagentc /info
mountvol R: /d
Domande frequenti
Posso “saltare” l’aggiornamento? Sconsigliato: lasci la vulnerabilità aperta e potresti bloccare aggiornamenti futuri che richiedono WinRE.
Esiste una correzione automatica via Windows Update? No. Microsoft indica che l’intervento manuale/assistito resta necessario: ridimensiona WinRE o usa lo script ufficiale se il layout è compatibile.
Quanto spazio devo lasciare? Minimo tecnico ≈ 250 MB liberi. Consigliato: partizione da 1 GB con ≥ 750 MB liberi post‑update.
Dove trovo Winre.wim
? Dopo reagentc /disable
normalmente è in C:\Windows\System32\Recovery
. In caso contrario, verifica la precedente location con reagentc /info
e copia la WIM da lì.
Come controllo che WinRE sia attiva? reagentc /info
deve mostrare Windows RE status: Enabled e un percorso valido.
Riepilogo operativo
- L’errore 0x80070643 durante KB5034439 è dovuto a spazio insufficiente nella partizione WinRE.
- La soluzione è ridimensionare WinRE fino ad avere spazio libero sufficiente (≥ 250 MB; meglio lasciare ≥ 750 MB).
- Procedura: backup → reagentc /disable → shrink C: → estendi/crea WinRE → copia Winre.wim → reagentc /enable → riavvio → installa update.
- Se WinRE non è l’ultima partizione, valuta uno spostamento a freddo o la ricreazione nella posizione corretta.
Appendice: come leggere correttamente i parametri DiskPart
shrink desired=
eminimum=
sono in MB. Imposta minimum a un valore che sei certo di ottenere; se non si raggiunge desired, verrà usato minimum.extend size=
aumenta la partizione selezionata della quantità indicata (MB), a patto che ci sia spazio contiguo.set id=de94...
imposta il partition type GUID “Windows RE Tools” su GPT. Con MBR usaset id=27 override
.gpt attributes=0x8000000000000001
configura gli attributi Hidden e Required, rendendo la partizione non visibile all’utente e protetta.
Appendice: controlli post‑intervento
- Stato WinRE:
reagentc /info
- Spazio effettivo (assegna temporaneamente una lettera):
diskpart select disk 0 select partition <N> assign letter=R exit fsutil volume diskfree R: mountvol R: /d
- Aggiornamento: riesegui Windows Update o
wusa
. Verifica eventi e storico.
Conclusioni
Il blocco di KB5034439 su Windows Server 2022 con errore 0x80070643 è una conseguenza del design degli update WinRE: senza spazio sufficiente nella partizione di ripristino, l’installazione non può proseguire. Una volta effettuato il ridimensionamento (manuale o tramite lo script ufficiale, quando applicabile), l’update si installa regolarmente e il server torna a ricevere patch WinRE future senza intoppi. Pianifica l’intervento, prendi le dovute precauzioni e punta a una partizione da 1 GB per ridurre al minimo i rischi di re‑insorgenza del problema.
Nota finale: Se il tuo ambiente presenta vincoli particolari (RAID hardware, Storage Spaces, boot legacy, requisiti di compliance stringenti), valida la procedura su un clone o una VM di test prima della produzione.