
Ferramenta para limpar dispositivos e partições de forma segura e eficiente para Linux
dwipe é uma ferramenta para limpar discos e partições no Linux para ajudar a proteger seus dados. dwipe visa reduzir erros fornecendo informações amplas sobre seus dispositivos durante a seleção.

| Funcionalidade | dwipe | nwipe | shred | dd |
|---|---|---|---|---|
| Limpezas de firmware (apagamento seguro SATA/NVMe) | ✓ | ✗ | ✗ | ✗ |
| Limpezas por software (Zero, Pseudo Aleatório) | ✓ | ✓ | ✓ | ✗ |
| TUI interativa | ✓ | ✓ | ✗ | ✗ |
| Múltiplas limpezas simultâneas | ✓ | ✗ | ✗ | ✗ |
| Estado de limpeza persistente | ✓ | ✗ | ✗ | ✗ |
| Detecção/liberação hot-swap | ✓ | ✗ | ✗ | ✗ |
| Bloqueio de dispositivo/partição | ✓ | ✗ | ✗ | ✗ |
| Retomar limpezas por software interrompidas | ✓ | ✗ | ✗ | ✗ |
| Registro de operações de limpeza | ✓ | ✗ | ✗ | ✗ |
| Detecção/prevenção de montagem | ✓ | ✓ | ✗ | ✗ |
| Verificação rápida por amostragem estatística | ✓ | ✗ | ✗ | ✗ |
| Destruição certificada (padrões DoD/Gutmann, verificação completa, certificados) | ✗ | ✓ | ✗ | ✗ |
- Limpezas de firmware (SATA/NVMe) são as mais completas e rápidas: Apagamento acelerado por hardware opera no nível do controlador (segundos a minutos), limpa todos os mapeamentos da unidade, mas requer apagamento do dispositivo inteiro sem relatório de progresso ou verificação visível.
- Limpezas por software com uma passagem de zeros são suficientes: Unidades modernas (pós-2001) são limpas de forma confiável com uma única passagem de zeros (NIST SP 800-88). Modos de múltiplas passagens estão disponíveis para confiança adicional, mas não fornecem garantia de segurança extra.
- A verificação usa amostragem estatística inteligente: Mesmo 1% de amostras de verificação em todo o disco via 100 seções, fornecendo cobertura abrangente sem leitura sequencial completa.
/dev/, /sys/, /proc/)Opcional (para copiar para a área de transferência na tela de histórico):
apt install xclip ou xsel)apt install wl-clipboard)pipx install dwipedwipe --helppipx uninstall dwipedwipedwipe a partir de um terminal (sudo será solicitado automaticamente)w para limpar uma unidade, você deve digitar a abreviação (ex.: Rand, Zero, Crypto); as limpezas são apresentadas da menos para a mais recomendada, e a última é marcada com *. Normalmente, escolha a última opção, mas ...Rand ou Zero (interruptível, mostra progresso).dwipe detecta automaticamente a retomada e reexamina. Ou pressione para reexaminar manualmente. A unidade deve voltar descongelada.dwipe fornece capacidades abrangentes de limpeza de disco com recursos de segurança:
Nota:
dwipemostra rótulos do sistema de arquivos e, se não disponível, o rótulo da partição. É uma boa prática rotular partições e sistemas de arquivos bem para facilitar a seleção.
Simplesmente execute dwipe a partir da linha de comando sem argumentos: dwipe
Nota: Todas as opções de preferência usam seus últimos valores salvos como padrões. Esses padrões são mostrados em --help e podem ser alterados interativamente com atalhos de teclado. Os argumentos da linha de comando substituem as preferências salvas.
--mode {-V,+V} - Modo de verificação (padrão: sua última preferência)
-V - Limpar sem verificação automática+V - Verificar dispositivo após conclusão da limpeza--passes {1,2,4} - Número de passagens para limpezas por software (padrão: sua última preferência)
--verify-pct {1,3,10,30,100} - Percentual de verificação (padrão: sua última preferência)
--dense {True,False} - Modo de exibição compacto (padrão: sua última preferência)
True - Espaçamento compacto (menos linhas em branco entre discos)False - Exibição espaçada (linhas em branco entre discos para legibilidade)--port-serial {Auto,On,Off} - Exibição de porta/serial do disco (padrão: sua última preferência)
Auto - Mostrar porta/serial apenas para discos inteiros (recomendado)On - Mostrar sempre porta e número de sérieOff - Nunca mostrar porta e número de série--slowdown-stop {0,4,16,64,256} - Parar se o disco desacelerar (padrão: sua última preferência, milissegundos)
0 = Desabilitado--stall-timeout {0,60,120,300,600} - Tempo limite de parada em segundos (padrão: sua última preferência)
0 = Desabilitado (nunca expirar)--firmware-wipes ou -F - Habilitar limpezas de firmware
--dump-lsblk - Despejar informações do dispositivo analisadas e sair (para depuração)--help - Mostrar mensagem de ajuda com todas as opções disponíveisdwipe usa codificação de cores para fornecer feedback visual instantâneo sobre o estado do dispositivo e da operação:
dwipe suporta múltiplos temas de cores para melhor visibilidade e estética.
Temas disponíveis:
default - Padrão do Terminal (cores ANSI básicas)dark-mono - Mono Escuro (quase-branco em quase-preto com cores brilhantes)light-mono - Mono Claro (quase-preto em quase-branco com cores brilhantes)solarized-dark - Paleta Solarized Escurasolarized-light - Paleta Solarized Clara (para fundos de terminal claros)gruvbox - Paleta Gruvbox Escuranord - Paleta NordAlterando temas:
Recursos do tema:
A coluna ESTADO mostra o status atual de cada dispositivo:
A linha superior mostra as ações disponíveis. Algumas são sensíveis ao contexto (disponíveis apenas para certos dispositivos):
Pressione h para visualizar o registro do histórico de limpeza. A tela de histórico mostra todas as operações de limpeza e verificação com timestamps, informações do dispositivo e resultados.
Ações da tela de histórico:
/ para pesquisa JSON profunda)Métodos de cópia para área de transferência (detectados automaticamente):
Nota: Se o OSC 52 não funcionar com seu terminal, o texto ainda aparece na tela para seleção manual. Para tmux, habilite a área de transferência com
set -g set-clipboard onno seu.tmux.conf.
dwipe suporta limpezas de firmware (aceleradas por hardware) e limpezas por software. Limpezas de firmware requerem a flag --firmware-wipes ou -F. As tabelas abaixo listam os métodos de limpeza do mais desejável (Rank 1) ao menos.
Nota: HDDs não possuem nivelamento de desgaste ou blocos ocultos, então limpezas por software são igualmente completas que limpezas de firmware, mas oferecem melhor controle (progresso, pausa/retomada, interruptibilidade).
| Rank | Abrev | Nome Oficial | Observações |
|---|---|---|---|
| 1 | Rand | Software Random Write | Preferido; padrão imprevisível; verificação estatística |
| 2 | Zero | Software Zero Write | Mais simples; verificação rápida (falha no primeiro byte não zero) |
Notas:
- Limpezas de firmware mostram apenas métodos suportados por cada unidade (veja coluna FwCAPS).
- Limpezas de firmware incluem verificação automática spotcheck.
- O sufixo
+Vhabilita verificação automática após limpezas por software. Sem+V, pressione v para verificar manualmente.- Limpezas por software de múltiplas passagens (2 ou 4) alternam padrões zero/aleatório, terminando no seu modo selecionado.
- Unidades USB e partições carecem de apagamento de firmware—apenas limpezas por software disponíveis.
Limpezas interrompidas (estado s) podem ser retomadas pressionando w no dispositivo. Escolha o mesmo tipo de limpeza ou recomeçará de 0%.
Como a Retomada Funciona:
Exemplos de Retomada:
Benefícios:
Limpezas por software usam verificação inteligente com análise estatística e otimizações de falha rápida. A verificação é configurável e opcional.
Amostragem Inteligente:
--verify-pct (salva como preferência)Detecção de Padrão:
Modos de Verificação:
+V (Rand+V ou Zero+V) e defina a verificação % > 0Por que a amostragem estatística é melhor que a sequencial:
Limpezas de firmware (apagamento seguro SATA/NVMe) usam uma verificação de verificação aleatória incondicional que é realizada automaticamente para todas as limpezas de firmware. Isso verifica se o comando de apagamento de hardware realmente foi executado.
Abordagem de Verificação Aleatória:
Por que as Verificações Aleatórias São Eficazes:
Nota Importante: Limpezas de firmware não mostram verificação baseada em porcentagem como as limpezas de software. A verificação aleatória ocorre silenciosamente como parte da operação de limpeza, e o sucesso/falha é registrado no marcador de estado de limpeza persistente.
Ao limpar um dispositivo por software, dwipe exibe:
Os estados W (limpo) e s (parcialmente limpo) são persistentes entre reinicializações. Isso é alcançado escrevendo metadados nos primeiros 16KB do dispositivo:
Quando um dispositivo com estado persistente é exibido, informações adicionais mostram:
Quando ? é digitado, você pode ver as teclas disponíveis e as opções de linha de comando com suas configurações atuais.
Você pode navegar pela lista de dispositivos usando:
A tecla / ativa a filtragem de pesquisa incremental com comportamento estilo vim:
Como funciona:
Exemplos de Filtro:
O filtro suporta padrões regex. Aqui estão alguns exemplos úteis:
**```` /sda # Show only sda and its partitions /sd[ab] # Show sda, sdb and their partitions /nvme # Show all NVMe devices /nvme0n1p[12] # Show only partitions 1 and 2 of nvme0n1 /usb # Show devices with "usb" in their labels
Prima **ESC** na tela principal para limpar o filtro e voltar a mostrar todos os dispositivos.
**Nota:** Padrões regex inválidos são ignorados – o filtro permanece no último padrão válido enquanto você digita.
## Considerações de Segurança
**Limitações importantes de limpezas via software:**
- `dwipe` suporta limpeza com múltiplas passagens e padrões alternados, mas não implementa sequências de padrões certificadas DoD 5220.22-M ou Gutmann
- Mais do que adequado para **dados pessoais e empresariais** que não exigem destruição certificada (obsoleta)
- **NÃO adequado para** dados classificados, ultrassecretos ou altamente sensíveis que exijam limpeza com padrões específicos certificados e certificados de conformidade
- **Considerações sobre SSDs**:
- SSDs modernos usam nivelamento de desgaste e podem reter dados em blocos não mapeados
- TRIM/DISCARD pode impedir a eliminação completa dos dados
- Para SSDs, considere as utilidades de eliminação segura do fabricante para máxima segurança
- O modo aleatório pode não fornecer segurança adicional em relação a zeros em SSDs
**Boas práticas:**
- Verifique cuidadosamente os rótulos e tamanhos dos dispositivos antes de limpar
- Utilize o recurso **Bloco** para proteger discos críticos
- Considere a criptografia para dados sensíveis como medida de segurança primária
---
---
## Resolução de Problemas
### dwipe não inicia
- **Erro: "cannot find lsblk on $PATH"** - Instale o pacote `util-linux`
- **Permissão negada** - `dwipe` solicita sudo automaticamente; certifique-se de que pode usar sudo
### Problemas de exibição no terminal
- **Exibição corrompida após falha** - Execute o comando `reset` ou `stty sane`
- **As cores não funcionam** - Certifique-se de que seu terminal suporta cores (a maioria dos terminais modernos suporta)
### Problemas de limpeza
- **Não é possível limpar um dispositivo** - Verifique a coluna STATE:
- **Mnt** - Desmonte a partição primeiro: `sudo umount /dev/sdXN`
- **Blk** - Pressione **b** para desbloquear
- **Busy** - Outra partição no disco está sendo limpa
- **A limpeza está muito lenta** - Normal para unidades grandes; verifique a taxa de gravação para acompanhar o progresso
- **A limpeza parece travada** - Provavelmente devido a discos defeituosos; I/O direto torna o progresso quase constante em discos bons.
---
### Considerações sobre Limpeza de Firmware
Limpezas de firmware (operações de eliminação segura SATA/NVMe) têm características diferentes das limpezas via software:
**Unidades Congeladas:**
- Unidades SATA são tipicamente congeladas pela BIOS/UEFI durante o POST como medida de segurança
- Isto é um recurso de segurança a nível da unidade, não uma limitação do `dwipe`
- **Solução**: Suspenda o seu sistema brevemente e retome; o `dwipe` deteta automaticamente a retoma e reanalisa (ou pressione **r** manualmente). A suspensão/retoma cicla a ligação SATA, o que descongela a unidade.
- Se a unidade permanecer congelada após suspensão/retoma, tente um desligamento completo (10+ minutos para descarregar os condensadores da unidade) seguido de inicialização e reanálise
**Peculiaridades e Compatibilidade de Dispositivos:**
- Os dispositivos de armazenamento têm várias implementações de firmware e peculiaridades de hardware que afetam as operações de eliminação segura
- Algumas unidades podem não suportar totalmente certas operações de sanitização, ter problemas de temporização ou apresentar comportamento inesperado
- O `dwipe` não pode garantir que todos os dispositivos sejam limpos com sucesso—alguns hardwares simplesmente podem não cooperar com os comandos de eliminação
- Sempre verifique uma unidade após a limpeza (use a tecla **v**) para confirmar que a eliminação realmente foi concluída
- Para destruição de dados críticos em hardwares peculiares, considere usar ferramentas de eliminação segura específicas do fabricante como alternativa
---
### Lidando com Discos Defeituosos ou com Falhas
O dwipe inclui proteções embutidas para dispositivos de armazenamento problemáticos:
**Tratamento Automático de Erros.** Ao encontrar erros de disco durante a limpeza:
* Erros consecutivos de escrita: A limpeza é interrompida após 3 falhas consecutivas de escrita
* Limiar total de erros: A limpeza é interrompida após 100 erros totais de escrita
* Repetição automática: Em caso de falha de escrita, o dispositivo é automaticamente fechado e reaberto (recuperação de erros transitórios)
* Recuperação de descritor de ficheiro: Estados de FD inválidos são detetados e os handles são atualizados
**Deteção de Paragem e Lentidão.** O dwipe monitoriza o desempenho de escrita e pode abortar operações problemáticas:
* Deteção de paragem: Aborta se não houver progresso durante 5 minutos (configurável)
* Deteção de lentidão: Mede a velocidade base durante os primeiros 5 segundos, aborta se a velocidade cair abaixo do limiar (ex.: 1/4 da base)
* Acompanhamento de progresso: Monitorização contínua garante que as escritas estão realmente a chegar ao dispositivo
**Se uma Limpeza Ficar Travada...** Se uma limpeza parecer congelada ou sem resposta:
* Primeira tentativa: Pressione s para parar graciosamente a limpeza selecionada
* Aguarde pacientemente: Algumas operações de disco podem levar minutos para atingir o timeout no nível do kernel
* Se ainda estiver travado: Pressione S (Shift+s) para parar TODAS as limpezas
* Último recurso: Se a interface estiver completamente congelada:
* Pressione Ctrl-Z para suspender o `dwipe`
* No terminal, execute: `sudo pkill -f "python.*dwipe" (atinge apenas processos dwipe)`
* Execute reset para restaurar o terminal se a exibição estiver corrompida
**Prevenindo Problemas com Mídia Problemática.** Para discos conhecidos como defeituosos ou hardware questionável:
* Comece com verificação: Pressione v primeiro para testar a legibilidade
* Use velocidades mais baixas: Ative a limitação de páginas sujas (tecla d) para reduzir a pressão de I/O
* Monitorize os logs do sistema: Verifique `dmesg -w` noutro terminal para erros de disco
* Considere problemas de hardware: Invólucros USB, cabos e controladores frequentemente causam problemas
**Padrões Comuns de Erro de Disco**
* Quedas de conexão USB: O dwipe detetará e tentará recuperar
* Setores defeituosos: Os erros serão contados; o trabalho aborta se excessivo
* Timeouts do controlador: O kernel pode travar; a deteção de paragem deve ativar
* Disco cheio: Erros de escrita além do fim do dispositivo são tratados graciosamente
**Recuperação Após Aborto.** Se uma limpeza abortar devido a erros de disco:
* O estado do dispositivo mostra s (parado/parcial)
* Pode tentar retomar (w) – pode ter sucesso se o erro foi transitório
* Ou verificar (v) para ver o que realmente foi escrito
* Considere substituir o disco se os erros persistirem
Nota: Alguns discos estão fundamentalmente danificados e não podem ser limpos de forma fiável. O dwipe protegerá a si e ao seu sistema, mas não pode corrigir falhas de hardware.
---
#### Recomendações para Limpeza SATA via USB
* Requisito 1: Suporte SAT (SCSI-ATA Translation)
* A ponte USB deve ser capaz de "passar" comandos ATA.
* O Teste: Se o aplicativo conseguir ver a secção "Segurança" nos detalhes da unidade, a ponte suporta SAT.
* Requisito 2: Alimentação Estável
* Limpezas de firmware (especialmente em HDDs de 3.5") consomem picos de energia significativos.
* O Risco: Se for usado um cabo "apenas barramento" alimentado por USB, a tensão pode cair durante a limpeza, fazendo com que a ponte reinicie e "travesse" a unidade num estado bloqueado.
* A Recomendação: Utilize sempre uma dock USB com alimentação externa para unidades de 3.5".
* Requisito 3: Integridade do Timeout de Comando
* A ponte não deve ter um "Watchdog Timer" agressivo.
* O Risco: Algumas pontes desligam se não virem "dados" durante 60 segundos. Durante uma limpeza de firmware, a unidade está ocupada internamente e não envia dados.
* A Recomendação: Utilize chipsets de alta qualidade como ASMedia (1153E) ou JMicron (JMS578).
##### Desbloquear Dispositivo Bloqueado```
sudo hdparm --user-master u --security-unlock NULL /dev/sdX
sudo hdparm --user-master u --security-disable NULL /dev/sdX
Issues e pull requests são bem-vindos em github.com/joedefen/dwipe
Licença MIT - consulte o arquivo LICENSE para detalhes.
rdwipe a bloqueou, a senha é NULL; caso contrário, use a senha que a bloqueou.DEL para desconectar, troque fisicamente as unidades, depois r para reexaminar (se necessário).| Estado | Significado |
|---|
| - | Dispositivo está pronto para limpeza |
| ^ | Dispositivo está pronto para limpeza E foi adicionado após dwipe iniciar (hot-swap) |
| Mnt | Partição está montada ou disco tem partições montadas - não pode ser limpo |
| N% | Limpeza em andamento (mostra percentual concluído, 0-100%) |
| vN% | Verificação em andamento (mostra percentual concluído, v0-v100%) |
| STOP | Limpeza ou verificação está sendo interrompida |
| s | Limpeza foi interrompida - dispositivo está parcialmente limpo (pode reiniciar ou verificar) |
| W | Limpeza foi concluída com sucesso (pode limpar novamente ou verificar) |
| Blk | Disco está manualmente bloqueado - partições estão ocultas e não podem ser limpas |
| Unbl | Disco acabou de ser desbloqueado (estado transitório) |
| Tecla | Ação | Descrição |
|---|
| w | limpar | Limpar o dispositivo selecionado (requer confirmação) |
| v | verificar | Verificar um dispositivo limpo ou detectar padrão em disco não marcado (sensível ao contexto) |
| s | parar | Parar a limpeza selecionada em andamento (sensível ao contexto) |
| S | Parar Todas | Parar todas as limpezas em andamento |
| DEL | deletar | Remover disco do sistema (apenas discos inteiros, sensível ao contexto) |
| b | bloquear/desbloquear | Bloquear ou desbloquear um disco para evitar limpeza acidental |
| / | filtrar | Filtrar dispositivos por padrão regex (mostra dispositivos correspondentes + todas as limpezas ativas) |
| r | reexaminar | Reexaminar todos os dispositivos e redefinir detecção de capacidades de hardware |
| h | histórico | Mostrar registro do histórico de limpeza |
| t | temas | Abrir tela de pré-visualização de temas para ver e alterar temas de cores |
| q ou x | sair | Sair do aplicativo (para todas as limpezas primeiro) |
| ? | ajuda | Mostrar tela de ajuda com todas as ações e teclas de navegação |
| ESC | limpar filtro | Limpar o filtro e pular para o topo da lista |
| ESC | voltar | Retornar à tela anterior se estiver em uma tela aninhada |
| a | formato de hora | Alternar formato de exibição de hora do histórico de limpeza (atrás+hora, atrás, hora) |
| Ambiente | Método | Notas |
|---|
| Sessão SSH | OSC 52 | Sequência de escape do terminal; requer suporte do terminal (iTerm2, kitty, alacritty, Windows Terminal, tmux com set-clipboard on) |
| Wayland | wl-copy | Requer pacote wl-clipboard |
| X11 | xclip/xsel | Requer pacote xclip ou xsel |
| Alternativa | Terminal | Sai para o shell, imprime entrada para cópia manual |
| Rank | Abrev | Nome Oficial | Observações |
|---|
| 1 | Crypto | Sanitize Cryptographic Erase | Mais rápido; apaga chaves de criptografia; invalidação instantânea de dados |
| 2 | Block | Sanitize Block Erase | Rápido; redefine todos os blocos para estado desalocado |
| 3 | FCrypto | Format with Crypto Erase | Rápido; reformata namespace com apagamento de chave |
| 4 | FErase | Format with User Data Erase | Rápido; reformata com apagamento simples de dados; menos completo que criptográfico |
| 5 | Ovwr | Sanitize Overwrite | Minutos; escreve padrão em todos os blocos; mais completo, mas raramente necessário |
| 6 | Rand | Software Random Write | Alternativa; escreve dados aleatórios via software; horas para discos grandes |
| 7 | Zero | Software Zero Write | Alternativa; escreve zeros via software; verificável, mas mais lento |
| Rank | Abrev | Nome Oficial | Observações |
|---|
| 1 | SCrypto | Sanitize Cryptographic Erase | Mais rápido; apaga chaves de criptografia; requer recurso SANITIZE |
| 2 | Enhanced | ATA Security Erase Enhanced | Rápido; apagamento profundo específico do fornecedor com destruição de chave criptográfica |
| 3 | SBlock | Sanitize Block Erase | Rápido; redefine blocos para estado de fábrica; requer recurso SANITIZE |
| 4 | Erase | ATA Security Erase Normal | Minutos; escreve zeros em todos os setores; amplamente suportado |
| 5 | SOverwrite | Sanitize Overwrite | Minutos; sobrescreve com padrão; requer recurso SANITIZE |
| 6 | Rand | Software Random Write | Alternativa; não alcança blocos com nivelamento de desgaste ou remapeados |
| 7 | Zero | Software Zero Write | Alternativa; não alcança blocos com nivelamento de desgaste ou remapeados |
| Rank | Abrev | Nome Oficial | Observações |
|---|
| 1 | Rand | Software Random Write | Preferido; interruptível, retomável, mostra progresso |
| 2 | Zero | Software Zero Write | Preferido; interruptível, retomável, verificação rápida |
| 3 | Enhanced | ATA Security Erase Enhanced | Lento (horas); não interruptível; sem progresso; mesmo resultado que software |
| 4 | Erase | ATA Security Erase Normal | Lento (horas); não interruptível; sem progresso; mesmo resultado que software |
| Interrompido em | Passagens Atuais | O que Acontece |
|---|
| 50% | 1 passagem | Retoma: escreve os 50% restantes |
| 150% (1.5 de 4 passagens) | 1 passagem | Já completo (150% > 100%) |
| 150% (1.5 de 4 passagens) | 4 passagens | Retoma: escreve mais 2.5 passagens (150% → 400%) |
| 100% (1 passagem completa) | 2 passagens | Retoma: escreve passagem 2 (100% → 200%) |