Quero limpar um SSD de todas as suas partições e dados, para poder reparticioná-lo (isso não é para fins de segurança).
Eu olhei, sudo dd if=/dev/zero of=/dev/sdb bs=1M
mas se isso apenas preencher cada partição com zeros, não tenho certeza se é isso o que quero fazer.
Planejo executar esse comando com bastante frequência e não quero esgotar as gravações do meu SSD. Alguém poderia me dar conselhos sobre como resolver esse problema?
Respostas:
Em um SSD: É possível TRIM discos inteiros ou partições usando
blkdiscard
. Não é muito seguro, mas praticamente instantâneo (o disco apenas marca todas as células como não utilizadas).Por segurança: use criptografia de disco completo. Não se preocupe em limpar o disco inteiro se ele estiver criptografado - você só precisará limpar a área que contém suas chaves (por exemplo, o primeiro 1–2 MiB de cada partição criptografada).
Para reparticionar: novamente, não se preocupe em apagar todos os dados. Você só precisa destruir os sistemas de arquivos usando e
wipefs
, em seguida, limpe o primeiro 1 MiB do seu disco para eliminar os gerenciadores de inicialização restantes. Depois de formatar uma partição usandomkfs
, o sistema operacional simplesmente assume que ela está completamente vazia.(De fato, no Linux, o mkfs.ext4 APARECE automaticamente a partição inteira antes de formatá-la.)
fonte
mkfs
o lixo de qualquer maneira Mas várias situações estranhas. Não acontecer -wipefs
existe porque era necessário.)man wipefs
diz? (Dica: veja o primeiro exemplo na seção de exemplos da página de manual)blkdiscard
também seria bom, pois criaria um quebra-cabeça a partir do resto do disco, mesmo que o invasor soubesse a chave (assumindo que o mapeamento antigo não possa ser recuperado também). "esfregue os primeiros 1 MiB do seu disco para eliminar os gerenciadores de inicialização restantes" - a seção extra é usada apenas como excedente dos primeiros 512B. Se você limpar o primeiro 512B, não será prejudicado pelo resto do 1M.Como Kamil Maciorowski menciona , a melhor maneira, com o menor desgaste de gravação, de excluir um disco inteiro , é usar o comando ATA 'secure erase'. Isso instruirá o hardware a fazer uma única limpeza completa, em vez de substituir as células repetidamente como em ferramentas como essa
shred
. Isso só pode ser feito para todo o disco. Se você precisar limpar seletivamente partições, consulte a resposta do grawity (blkdiscard
)A implementação exata do comando depende do hardware.
A maioria dos SSDs usa um sinal elétrico em massa para limpar chips inteiros de uma maneira "tudo ou nada". Isso gera desgaste de gravação (normal), mas apenas na extensão mínima possível (~ único ciclo de gravação).
Os SSDs com criptografia automática geralmente apenas limpam a chave de criptografia dentro do chip do controlador (realmente instantâneo). As unidades com criptografia automática sempre criptografam, mesmo que estejam prontas para uso (com uma chave padrão de fábrica). Portanto, limpar a chave deixa apenas uma confusão não decriptografável nos chips flash, mesmo que nenhuma chave do usuário tenha sido definida.
dd if=/dev/zero
.O processo está bem documentado aqui: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (eu pessoalmente usei esse processo repetidamente em meus próprios SSDs ao reinstalar sistemas operacionais)
Edit: se você estiver interessado nas implicações de segurança: verifique esta questão do Security.SE
fonte
Lembre-se de que você pediu uma solução sobre como limpar rapidamente os discos. Substitua / dev / sdx pelo seu disco, provavelmente / dev / sda
Isso limpará a tabela de partição.
Isso limpará todo o disco, levará um tempo.
fonte
cat
. Usedd
para melhorar o desempenho.dd
usa buffers de 512 bytes, o que prejudicará o desempenho ... Coreutils (cp
e provavelmente tambémcat
) têm um tamanho de buffer mais sensato. Não há nada sobredd
isso de alguma forma inerentemente mais rápido.dd
. A última vez que tentei usarcat
para gravar uma imagem em um disco, foi significativamente mais lenta do que usardd
com um tamanho de buffer apropriado.