Errore 0x80070643 su KB5034439 in Windows Server 2022: come risolvere ridimensionando WinRE

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.

Indice

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

AspettoProContro
SicurezzaChiudi la vulnerabilità e rendi conforme il server.
OperativitàSoluzione definitiva; gli aggiornamenti WinRE futuri non si bloccheranno.Richiede una breve finestra di manutenzione.
RischiUn 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. Dopo reagentc /disable il file viene in genere portato in C:\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)

  1. Backup/Snapshot del server.
  2. Disabilita WinRE: reagentc /disable
  3. Libera spazio vicino a C: riducendo la partizione di sistema (≥ 300 MB, meglio 1 GB) con diskpart o un tool grafico.
  4. Estendi o crea la partizione WinRE usando lo spazio appena liberato.
  5. Ricollega Winre.wim e riabilita WinRE: reagentc /setreimage /path R:\Recovery\WindowsRE reagentc /enable reagentc /info
  6. Riavvia e ripeti Windows Update oppure installa l’MSU offline.
  7. 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 e minimum sono espressi in MB. Se lo shrink restituisce 0, prova defrag 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:

  1. Prepara un downtime e un backup completo.
  2. Usa un tool di partizionamento a freddo (es. live USB) per spostare C: in avanti o WinRE in coda, creando spazio contiguo.
  3. Riallinea, verifica l’avvio, poi reagentc /disable, estendi WinRE e reagentc /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 manca Winre.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= e minimum= 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 usa set 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

  1. Stato WinRE: reagentc /info
  2. Spazio effettivo (assegna temporaneamente una lettera): diskpart select disk 0 select partition <N> assign letter=R exit fsutil volume diskfree R: mountvol R: /d
  3. 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.

Indice