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

18

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 preenche cada partição com zeros, não tenho certeza do que quero fazer.

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

    
por IgDV 11.01.2018 / 09:49

3 respostas

39

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 a 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á toda a partição antes de formatá-la.)

    
por 11.01.2018 / 10:01
14

Como Kamil Maciorowski mencione , a melhor maneira, com o menor desgaste de gravação, de deletar um disco inteiro , é usar o comando ATA 'secure erase'. 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 as partições, consulte a resposta do grawity ( blkdiscard )

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

  • A maioria dos SSDs usará um sinal elétrico em massa para limpar chips inteiros de um modo tudo ou nada. Isso gera desgaste de gravação (normal), mas apenas o mínimo possível (~ ciclo de gravação único).

  • Os SSDs com autocriptografia geralmente apagam a chave de criptografia dentro do chip do controlador (realmente instantânea). Unidades de autocriptografia sempre criptografam, até mesmo fora da caixa (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 Spinning-Rust farão uma gravação zero baseada em hardware de todos os setores, o que equivale (e consome muito tempo) a fazer dd if=/dev/zero .

O processo está bem documentado aqui: link (Eu pessoalmente usei este processo repetidamente em meus próprios SSDs ao reinstalar os sistemas operacionais)

Editar: se você estiver interessado nas implicações de segurança: verifique esta Security.SE pergunta

    
por 11.01.2018 / 10:42
4

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

Isso limpará a tabela de partições.

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

Isso limpará todo o disco, vai demorar um pouco.

cat /dev/zero > /dev/sdx
    
por 11.01.2018 / 11:41