web-dev-qa-db-pt.com

Maneira mais rápida de limpar um SSD de todas as suas partições para reparticionar no Linux?

Eu quero limpar um SSD de todas as suas partições e dados, para que eu possa reparticioná-lo (isso não é para fins de segurança).

Eu olhei para Sudo dd if=/dev/zero of=/dev/sdb bs=1M mas se isso apenas preenche cada partição com zeros, não tenho certeza do que quero fazer.

Eu pretendo executar este comando com bastante freqüência, e eu não quero esgotar minhas gravações do SSD. Alguém poderia me dar conselhos sobre como lidar com esse problema?

20
IgDV

Em um SSD: Você pode TRIM discos inteiros ou partições usando blkdiscard. Não é muito seguro, mas praticamente instantâneo (o disco simplesmente 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ó precisa limpar a área que contém as chaves (por exemplo, os primeiros 1 a 2 MiB de cada partição criptografada).

Para reparticionamento: Novamente, não se preocupe em apagar todos os dados. Você só precisa destruir os sistemas de arquivos usando wipefs e, em seguida, remover os primeiros 1 MiB do seu disco para limpar os carregadores de boot restantes. Depois de formatar uma partição usando mkfs, o SO simplesmente assumirá que está completamente vazio.

(Na verdade, no Linux, o mkfs.ext4 automaticamente TRIMará a partição inteira antes de formatá-la.)

41
grawity

Como Kamil Maciorowski menciona , a melhor maneira, com o menor desgaste de gravação, de deletar um disco inteiro, é usar o 'apagar seguro' do ATA. comando. Isso instruirá o hardware a fazer uma única limpeza completa, em vez de sobrescrever as células repetidamente, como acontece com ferramentas como shred. Isso só pode ser feito para o disco inteiro, se você precisar seletivamente limpar partições, veja resposta de Grawity (blkdiscard)

A implementação exata do comando depende do hardware.

  • A maioria dos SSDs usará um sinal elétrico para limpar fichas inteiras de um modo tudo ou nada. Isso incorre em desgaste normal (normal), mas apenas na extensão mínima possível (~ ciclo de gravação único).

  • SSDs com criptografia automática geralmente apagam a chave de criptografia dentro do chip do controlador (realmente instantânea). Unidades de autocriptografia sempre criptografadas, até mesmo prontas para uso (com uma chave padrão de fábrica). Então, limpar a chave deixa apenas desordem não decifrável nos chips flash, mesmo que nenhuma tecla do usuário tenha sido definida.

  • Discos rígidos do Spinning-Rust farão um zero-write baseado em hardware de todos os setores, o que é equivalente (e tão demorado) quanto fazer dd if=/dev/zero .

O processo está documentado muito bem aqui: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (Eu pessoalmente usei este processo repetidamente em meus próprios SSDs ao reinstalar o OS ' es)

Edit: se você estiver interessado nas implicações de segurança: marque esta questão de Security.SE question

14
Jules Kerssemakers

Tendo em mente que você pediu uma solução sobre como limpar rapidamente os discos, substitua/dev/sdx pelo seu disco, mais provavelmente/dev/sda

Isto irá limpar a tabela de partições

dd if=/dev/zero of=/dev/sdx bs=1024 count=50

Isto irá limpar todo o disco, vai demorar um pouco.

cat /dev/zero > /dev/sdx
4
Jarrod Chesney