Ao instalar uma Atualização Cumulativa no Windows Server, o erro 0x80070070 indica falta de espaço em disco. Mesmo com ~12 GB livres, o processo costuma exigir mais. A prática recomendada para servidores é começar com, no mínimo, 20 GB livres para concluir a atualização com segurança.
Visão geral do problema
Um administrador tenta aplicar uma Atualização Cumulativa (LCU) e recebe a falha 0x80070070 – ERRORDISKFULL. A pergunta é direta: quanto espaço livre é necessário para concluir a instalação?
Resposta direta
- O código 0x80070070 confirma falta de espaço.
- Mantenha ao menos 20 GB livres no volume do sistema (
C:\
) antes de iniciar a atualização. - Esse colchão de espaço cobre:
- o download dos pacotes;
- a descompactação temporária e o staging dos binários;
- a criação de backups/rollback no repositório de componentes (WinSxS).
Regra prática para produção: em servidores Windows (2012 R2, 2016, 2019, 2022 e 2025), planeje ≥ 20 GB de espaço livre no sistema antes de LCUs. Em ciclos com várias atualizações pendentes, mire 25–30 GB para folga operacional.
Por que as Atualizações Cumulativas precisam de tanto espaço?
O mecanismo de manutenção do Windows (servicing) trabalha em etapas. Em cada uma, mais espaço é consumido, às vezes simultaneamente:
Fase | O que acontece | Impacto de espaço |
---|---|---|
Download | Arquivos da LCU e, se aplicável, SSU (Servicing Stack Update) são baixados para SoftwareDistribution\Download . | Algumas centenas de MB a alguns GB |
Descompactação | Pacotes são extraídos em diretórios temporários. | Expansão de 1,5–3× sobre o tamanho baixado |
Staging | Componentes são preparados e colocados no repositório de componentes (WinSxS). | Varia por versão/roles instalados |
Backup/Rollback | Arquivos de reversão são criados para permitir desinstalar a atualização. | Adicional temporário até a limpeza de componentes |
Logs | Geração de logs em C:\Windows\Logs\CBS e \DISM . | Dezenas a centenas de MB (ou mais em cenários com erros) |
O efeito combinado dessas fases explica por que 12 GB podem não bastar, e por que a orientação de 20 GB traz previsibilidade.
Requisitos práticos de espaço por cenário
Cenário | Espaço livre recomendado | Notas |
---|---|---|
Windows Server Core (qualquer versão suportada) | ≥ 20 GB | Menos componentes, mas o processo de staging/rollback ainda exige folga. |
Windows Server com Desktop Experience | 20–30 GB | Mais recursos instalados → pacotes maiores. |
Servidor com muitos Features on Demand/Roles | ≥ 25 GB | Planeje margem adicional para backup/rollback. |
Vários meses sem atualizar | 25–30 GB | Sequência de LCUs/SSUs pendentes aumenta o consumo temporário. |
Cluster com atualização por rotação (node a node) | ≥ 20 GB por nó | Aplicar boas práticas abaixo para cada nó, isoladamente. |
Checklist rápido antes de atualizar
- Confirme o espaço livre em
C:\
(Win + E
ou PowerShell:Get-PSDrive -PSProvider FileSystem
). - Verifique se há reboot pendente (Chaves como
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
). - Registre um backup ou snapshot da VM.
- Garanta janela de manutenção e comunicação com stakeholders.
- Se usar WSUS, sincronize e aprove a LCU/SSU relevantes antes.
Como liberar espaço com segurança
Limpeza de componentes (WinSxS)
Esta é a ação que mais recupera espaço quando houve muitas atualizações no passado.
Dism /Online /Cleanup-Image /AnalyzeComponentStore
Dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase
- O que faz: remove versões antigas de componentes e consolida a base (WinSxS).
- Observação importante: com
/ResetBase
, você não poderá desinstalar atualizações já aplicadas. Use em ambientes controlados.
Excluir arquivos temporários e cache do Windows Update
Ideal quando o download anterior ficou corrompido ou ocupando espaço.
- Pare os serviços:
net stop wuauserv net stop bits
- Apague conteúdos temporários:
del /f /s /q %SystemRoot%\SoftwareDistribution\Download\. del /f /s /q %SystemRoot%\Temp\.
- Reinicie os serviços:
net start wuauserv net start bits
No Server 2019/2022/2025, prefira o Storage Sense (Configurações → Sistema → Armazenamento) para limpar temporários de maneira guiada. No Desktop Experience, Disk Cleanup (cleanmgr
) também ajuda.
Mover ou arquivar logs e backups
- Compacte ou mova logs grandes em
C:\Windows\Logs\CBS\
eC:\Windows\Logs\DISM\
. - Transfira backups do Windows Server Backup para outro volume ou rede.
- Verifique
C:\Windows\MEMORY.DMP
eC:\Windows\Minidump\
(podem ser grandes). Se não for preciso manter, mova/compacte.
# Compactar logs maiores que 100 MB
Get-ChildItem "C:\Windows\Logs" -Recurse -File |
Where-Object { $_.Length -gt 100MB } |
ForEach-Object { Compress-Archive -Path $.FullName -DestinationPath ($.FullName + ".zip") -Force }
Aumentar o volume do sistema
Quando a limpeza não basta, amplie o volume:
- VMs Hyper‑V/VMware: expanda o VHDX/VMDK e depois ajuste a partição no convidado.
- PowerShell (partição NTFS):
Get-Partition -DriveLetter C | Resize-Partition -Size (Get-PartitionSupportedSize -DriveLetter C).SizeMax
- DiskPart: em casos específicos, use
diskpart
→select volume C
→extend
.
Boas práticas: evite habilitar Deduplicação no volume do sistema; use-a apenas em dados suportados (como compartilhamentos e VDI).
Diagnóstico e sinais de falta de espaço
- 0x80070070: erro explícito de disco cheio.
- 0x800F0922: geralmente indica partição reservada do sistema/mecanismo de instalação (não é exatamente espaço em
C:\
, mas falta de espaço em partições especiais ou falha de conectividade com o Windows Update/WSUS). - Logs com mensagens de Not enough storage em
C:\Windows\Logs\CBS\CBS.log
.
Fluxo recomendado de correção (passo a passo)
- Cheque o espaço atual. Se < 20 GB, prossiga para os passos de limpeza.
- Limpeza de componentes: rode
StartComponentCleanup /ResetBase
. - Limpeza de temporários e cache do Windows Update.
- Mover/compactar logs e dumps.
- Reinicie o servidor, se havia reboot pendente ou arquivos bloqueados.
- Tente novamente a instalação da LCU.
- Se ainda faltar espaço, aumente a partição do sistema.
Script de automação (PowerShell) para recuperar espaço e validar o mínimo
O script abaixo consolida tarefas típicas e confirma se o patamar de 20 GB foi atingido antes da atualização. Ajuste conforme sua política de mudanças.
# Requisitos: executar em console elevado (Administrador)
\$MinFreeGB = 20
\$Temp = "\$env\:SystemRoot\Temp"
\$SWD = "\$env\:SystemRoot\SoftwareDistribution\Download"
\$Logs = "C:\Windows\Logs"
Write-Host "Espaço livre inicial em C: ..." -ForegroundColor Cyan
\$freeGB = \[math]::Round((Get-PSDrive -Name C).Free/1GB,2)
Write-Host "Livre: \$freeGB GB"
1) Limpeza de componentes (WinSxS)
Write-Host "Analisando Component Store..." -ForegroundColor Cyan
Dism /Online /Cleanup-Image /AnalyzeComponentStore | Out-Null
Write-Host "Limpando Component Store (ResetBase)..." -ForegroundColor Cyan
Dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase | Out-Null
2) Stop serviços do Windows Update e limpar caches temporários
Write-Host "Parando serviços de update..." -ForegroundColor Cyan
net stop wuauserv | Out-Null
net stop bits | Out-Null
Write-Host "Limpando temporários e cache de download..." -ForegroundColor Cyan
Get-ChildItem \$Temp -Recurse -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
Get-ChildItem \$SWD -Recurse -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "Reiniciando serviços..." -ForegroundColor Cyan
net start wuauserv | Out-Null
net start bits | Out-Null
3) Compactar logs acima de 100 MB
Write-Host "Compactando logs maiores que 100 MB..." -ForegroundColor Cyan
Get-ChildItem \$Logs -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { \$*.Length -gt 100MB } |
ForEach-Object {
try {
Compress-Archive -Path \$.FullName -DestinationPath (\$.FullName + ".zip") -Force -ErrorAction Stop
Remove-Item \$*.FullName -Force
} catch { Write-Warning "Falha ao compactar \$(\$.FullName): \$(\$.Exception.Message)" }
}
4) Recalcular espaço e validar alvo
\$freeGB = \[math]::Round((Get-PSDrive -Name C).Free/1GB,2)
Write-Host "Espaço livre atual: \$freeGB GB" -ForegroundColor Green
if (\$freeGB -lt \$MinFreeGB) {
Write-Warning "Ainda faltam \$(\[math]::Round(\$MinFreeGB - \$freeGB,2)) GB para atingir o mínimo recomendado de \$MinFreeGB GB."
Write-Host "Avalie mover/backupar dumps, logs de apps, ou expandir a partição C:." -ForegroundColor Yellow
} else {
Write-Host "OK: mínimo de \$MinFreeGB GB atendido. Prossiga com a atualização." -ForegroundColor Green
}
5) Sinalizar reboot pendente (se existir)
\$RebootPending = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"
if (\$RebootPending) {
Write-Warning "Reinicialização pendente detectada. Reinicie antes de aplicar a LCU."
}
FAQ – Perguntas frequentes
Posso instalar a atualização com menos de 20 GB livres?
Às vezes sim, mas é arriscado. O consumo real varia por versão/roles e pode esgotar durante a descompactação. Em produção, adote 20 GB como base e 25–30 GB quando houver LCUs acumuladas.
Server Core precisa do mesmo espaço?
Geralmente um pouco menos, mas o ganho não é tão grande a ponto de mudar a recomendação. Mantenha ≥ 20 GB.
Devo apagar a pasta C:\Windows\Installer
?
Não. Ela armazena pacotes MSI necessários a reparos/desinstalações. Removê-la pode corromper a manutenção do sistema.
O /ResetBase
é seguro?
Sim, em servidores estáveis e com backup. Lembre-se: após /ResetBase
você não consegue desinstalar atualizações anteriores; use em conjunto com boas práticas de versionamento e testes.
E se o erro for 0x800F0922?
Investigue a partição reservada do sistema e conectividade com o serviço de atualização. O problema não é necessariamente espaço em C:\
, mas sim na partição de boot ou comunicação com o endpoint de updates.
Boas práticas permanentes
- Planejamento de capacidade: dimensione a unidade do sistema com folga. Para servidores modernos, 80–100 GB em
C:\
é comum, além de volumes separados para dados e logs de aplicações. - Rotina de limpeza: agende
StartComponentCleanup
periodicamente para evitar crescimento excessivo do WinSxS. - Monitoramento: configure alertas quando o volume do sistema ficar abaixo de 20% de espaço livre.
- Segregação de dados: direcione logs e dumps de apps para volumes não-sistêmicos.
- WSUS: se o servidor for WSUS, mantenha o conteúdo em volume dedicado; no SO, priorize o espaço do sistema para o mecanismo de manutenção.
Resumo
O erro 0x80070070 é inequívoco: o Windows não tem espaço suficiente para concluir a Atualização Cumulativa. Em ambientes de Windows Server, a recomendação prática é começar com pelo menos 20 GB livres no volume do sistema, valor que acomoda download, descompactação e arquivos de rollback. Se o servidor não atingir essa meta, aplique as ações de limpeza (WinSxS, temporários e cache do Windows Update), mova/compacte logs e, quando necessário, expanda a partição. Seguindo essa rota, a instalação da LCU tende a ocorrer sem o erro de falta de espaço.