Como apagar um SSD com segurança (NVMe Secure Erase, antes de vender ou descartar)
Resposta rápida: num SSD (unidade de estado sólido), não recorra às ferramentas que usaria num disco rígido mecânico - shred, dd if=/dev/zero, o multipasse Gutmann ou o DBAN. Elas são pouco confiáveis nos SSDs e desgastam a unidade sem nenhum ganho de segurança. Em vez disso, use um de dois métodos: (1) o comando de sanitização do próprio firmware da unidade - ATA Secure Erase para SSDs SATA, ou NVMe Format / NVMe Sanitize para unidades NVMe - ou (2) a cripto-apagagem: se a unidade estiver cifrada, destrua a chave de cifragem e cada bloco fica instantaneamente ilegível. Qualquer um é apropriado antes de vender, doar ou descartar uma unidade.
Este guia explica por que os SSDs são diferentes, percorre os comandos de firmware no Linux e cobre o atalho da cripto-apagagem, muitas vezes a opção mais simples e confiável.
Por que um SSD não é um disco rígido
Num disco rígido mecânico, um endereço de bloco lógico corresponde a um local físico fixo num prato giratório. Sobrescreva esse bloco e você substituiu fisicamente o estado magnético onde os dados viviam. É por isso que a limpeza baseada em sobrescrita (shred, dd, ferramentas multipasse) funciona nos discos rígidos.
Os SSDs quebram essa premissa de três formas:
- Nivelamento de desgaste (wear-leveling). As células de memória flash NAND se degradam a cada escrita, então o controlador do SSD distribui as escritas pelos chips para equilibrar o desgaste. Quando você „sobrescreve” um arquivo, o controlador normalmente grava os novos dados num bloco físico diferente e novo e remapeia o endereço lógico - deixando os dados originais numa célula agora órfã que você não consegue endereçar pelo sistema operacional.
- Sobreprovisionamento (over-provisioning). Todo SSD reserva capacidade física extra (muitas vezes de 7 a 28 %) nunca exposta ao sistema operacional. Dados podem permanecer nesse espaço de reserva, totalmente fora do alcance de qualquer sobrescrita que você dispare.
- TRIM e a camada de tradução flash. O controlador mantém sua própria tabela de correspondência entre endereços lógicos e físicos. Você não tem nenhum caminho de comando direto para uma célula específica; você apenas pede ao controlador, e ele decide.
A consequência: um passe de sobrescrita por software não pode garantir que tocou cada célula física que algum dia guardou seus dados. Métodos multipasse como o Gutmann foram projetados para a codificação magnética dos discos rígidos dos anos 1990 e não trazem nenhum benefício adicional na flash - apenas multiplicam o desgaste de escrita. A abordagem correta entrega o trabalho ao único componente que consegue alcançar cada célula: o próprio controlador do SSD.

Método 1 - Sanitização por firmware (ATA Secure Erase / NVMe Sanitize)
Todo controlador de SSD moderno implementa um comando embutido que zera as células que o controlador conhece - incluindo a reserva de sobreprovisionamento. É a forma autoritativa de apagar o meio físico.
Um aviso enfático antes de qualquer comando abaixo: essas operações apagam a unidade inteira de forma irreversível, incluindo partições, o sistema operacional e quaisquer dados que você esqueceu que estavam ali. Identifique primeiro o dispositivo correto (lsblk, sudo nvme list), desmonte-o e nunca os execute contra o disco de sistema em uso. Faça backup de tudo o que precisa antes.
SSDs NVMe no Linux (nvme-cli)
O pacote nvme-cli fornece os comandos padronizados de sanitize e format para unidades NVMe. Substitua /dev/nvmeXn1 pelo namespace real da unidade que pretende apagar - e verifique-o duas vezes.
# Liste os dispositivos NVMe para escolher o correto
sudo nvme list
# Apagagem criptográfica: rotaciona a chave de cifragem interna do meio,
# tornando todos os dados existentes indecifráveis na hora (se suportado)
sudo nvme format /dev/nvmeXn1 --ses=2
# Ou uma apagagem de blocos (dados do usuário) em vez da cripto-apagagem
sudo nvme format /dev/nvmeXn1 --ses=1
# O comando dedicado sanitize (apagagem de blocos); verifique o suporte primeiro
sudo nvme sanitize /dev/nvmeXn1 --sanact=2
--ses=2 solicita uma apagagem criptográfica: muitos SSDs NVMe cifram de forma transparente todos os dados com uma chave interna, e rotacionar essa chave torna o conteúdo antigo irrecuperável em segundos. --ses=1 solicita uma apagagem dos dados do usuário. O suporte a cada modo varia por unidade; sudo nvme id-ctrl /dev/nvmeXn1 informa as capacidades de sanitize e format que o controlador anuncia.
SSDs SATA no Linux (hdparm)
Para SSDs SATA, o comando ATA Secure Erase é emitido através do hdparm. A unidade não pode estar „frozen” (um ciclo de energia ou suspender/retomar costuma limpar um estado frozen). A sequência define uma senha de usuário temporária e então emite a apagagem, que remove a senha como parte da operação.
# Confirme que a unidade está "not frozen" e suporta o comando
sudo hdparm -I /dev/sdX | grep -i -A2 security
# Defina uma senha temporária (exigida pela especificação ATA para armar a apagagem)
sudo hdparm --user-master u --security-set-pass p /dev/sdX
# Emita o secure erase (ou --security-erase-enhanced se listado como suportado)
sudo hdparm --user-master u --security-erase p /dev/sdX
Novamente, /dev/sdX é um espaço reservado - substitua pelo nó de dispositivo verificado. blkdiscard /dev/sdX é uma alternativa mais leve que emite um TRIM/discard por todo o dispositivo; é mais rápida mas, ao contrário do sanitize, não garante que a área de reserva seja limpa, então para o descarte prefira o sanitize por firmware.
Ferramentas dos fabricantes
A maioria dos fabricantes de SSD fornece utilitários de desktop que encapsulam esses mesmos comandos de firmware atrás de um botão - o caminho mais fácil para usuários Windows: Samsung Magician (Secure Erase), Crucial Storage Executive, WD Dashboard / SanDisk Dashboard e semelhantes. Eles emitem os comandos padrão ATA/NVMe de sanitize nos bastidores.
Método 2 - Cripto-apagagem (destruir a chave)
O método mais simples e robusto não apaga célula alguma - torna os dados permanentemente indecifráveis destruindo a chave.
Se a unidade inteira já estiver cifrada - com LUKS no Linux, BitLocker no Windows ou FileVault no macOS - então cada bloco do disco é texto cifrado. O texto claro só existe enquanto a chave está carregada. Apague ou sobrescreva o material da chave e o volume inteiro se torna um campo de bytes de aparência aleatória que ninguém consegue decifrar, na hora e independentemente do wear-leveling ou do over-provisioning.
Num volume LUKS isso significa destruir o cabeçalho que contém os slots de chave:
# Apague de forma irreversível um slot de chave LUKS específico, ou o cabeçalho inteiro
sudo cryptsetup luksErase /dev/sdX
Uma vez que o cabeçalho LUKS se foi, a chave de volume que ele protegia nunca mais pode ser recuperada, então os dados são irrecuperáveis mesmo que o texto cifrado permaneça fisicamente nas células. É por isso que cifrar uma unidade desde o primeiro dia é a melhor estratégia de descarte: quando chegar a hora, você não precisa confiar no sanitize por firmware - basta jogar a chave fora. Veja nossos guias sobre cifragem completa do disco e o que é realmente a cifragem para configurar isso corretamente.
Para unidades que nunca foram cifradas, a cripto-apagagem fica indisponível depois do fato, então recorra ao sanitize por firmware do Método 1.
Antes de vender, doar ou descartar
| Método | Quando usar | Confiabilidade em SSD |
|---|---|---|
| ATA Secure Erase / NVMe Sanitize | Qualquer SSD que você controla diretamente; antes da revenda | Alta - o controlador zera todas as células, reserva incluída |
| Cripto-apagagem (destruir a chave) | Unidade já cifrada (LUKS/BitLocker/FileVault) | Alta - instantânea, independente do wear-leveling |
blkdiscard (TRIM) | Limpeza rápida quando o sanitize não está disponível | Média - área de reserva não garantida |
| Cifrar e então reset de fábrica | Telefones, laptops com reset integrado | Alta se a cifragem estava ativa antes do reset |
shred / dd / multipasse Gutmann | Apenas discos rígidos mecânicos | Baixa em SSD - não alcança as células remapeadas |
| Formatação rápida / exclusão / esvaziar a lixeira | Nunca, para descarte seguro | Nenhuma - só remove a entrada na tabela de arquivos |
Vender ou dar a unidade: execute um Secure Erase por firmware (ou a ferramenta do fabricante), ou se ela estava cifrada, faça uma cripto-apagagem destruindo a chave, e então opcionalmente um único sanitize por firmware para sua tranquilidade. Destruir fisicamente uma unidade morta que não liga mais (de modo que nenhum comando pode alcançá-la): a destruição mecânica dos chips NAND é o recurso quando o sanitize é impossível.
O que NÃO funciona
- A formatação rápida reescreve o índice do sistema de arquivos, não os dados; os blocos subjacentes permanecem intactos.
- Excluir arquivos / esvaziar a lixeira remove apenas ponteiros.
- Um único passe de zeros num SSD deixa de fora as células remapeadas e sobreprovisionadas e não faz autoridade.
shred,dd, Gutmann, DBAN foram feitos para pratos magnéticos e não dão garantia na flash, ao mesmo tempo que adicionam desgaste de escrita.
Perguntas frequentes
O shred funciona num SSD?
Não de forma confiável. O shred sobrescreve os blocos lógicos que você aponta, mas o controlador de um SSD usa wear-leveling e over-provisioning, então sua sobrescrita muitas vezes cai em células novas enquanto os dados originais sobrevivem em células remapeadas ou reservadas que você não consegue endereçar. Use em vez disso o Secure Erase / Sanitize por firmware da unidade, ou a cripto-apagagem se a unidade estiver cifrada.
O ATA Secure Erase é seguro para a unidade?
Sim. ATA Secure Erase e NVMe Sanitize são comandos padrão que o controlador foi projetado para executar; eles zeram as células em vez de martelá-las com passes, então causam muito menos desgaste do que uma sobrescrita multipasse. O risco real é humano: o comando apaga a unidade inteira de forma irreversível, então verifique o nó de dispositivo e faça backup do que precisa antes.
Como apago um SSD NVMe com segurança no Linux?
Instale o nvme-cli, execute sudo nvme list para identificar o namespace correto, então emita sudo nvme format /dev/nvmeXn1 --ses=2 para uma apagagem criptográfica (ou --ses=1 para uma apagagem dos dados do usuário). Algumas unidades também suportam sudo nvme sanitize. Verifique com sudo nvme id-ctrl quais modos sua unidade anuncia, e confira o caminho do dispositivo duas vezes - a operação não pode ser desfeita.
Cifrar e depois destruir a chave é suficiente?
Sim, quando a unidade inteira foi cifrada desde o início. Se cada bloco é texto cifrado (LUKS, BitLocker, FileVault), destruir o material da chave - por exemplo apagando o cabeçalho LUKS com cryptsetup luksErase - torna todos os dados indecifráveis na hora, independentemente do wear-leveling ou do over-provisioning. Isso não ajuda com dados escritos antes de a cifragem ser ativada, razão pela qual cifrar uma unidade no primeiro dia é o plano de descarte mais limpo.