Como posso apagar completamente todos os dados em um cartão (micro) SD?

16

Acabei de receber um cartão micro SD que pretendo usar com o Raspberry Pi.

Usei o gerenciador de partições do KDE para excluir a partição original do cartão e escrever uma nova partição 12GiB ext4. Depois de fazer isso, o cartão ainda diz que 6% dele, 30,02 MiB, está sendo usado.

Basicamente, eu quero limpar completamente o cartão de todo o conteúdo para prepará-lo para um novo sistema operacional. Um comando gostaria shredou ddfaria o truque ou isso também destruiria a partição?

user3211355
fonte
Sou tendencioso, mas se você deseja controle total de partições, não use particionamento gráfico, use o bom e velho fdisk. (A menos que você não pode por causa da GPT ou outras restrições técnicas.)
CijcoSistems
A propósito ... o RaspberryPi suporta o carregamento do kernel do ext4 diretamente? Lembro-me de usar FAT para o processo de inicialização precoce (kernel, cmdline, configuração SoC e divisão de memória), e depois ter o sistema de arquivos raiz em outra partição (ou NFS, se quiser)
CijcoSistems
[Limpe com segurança o disco - archlinux.org] "A limpeza de um disco é feita escrevendo novos dados em cada bit." wiki.archlinux.org/index.php/Securely_wipe_disk

Respostas:

24

Sua adivinhação ddestá certa. Você pode limpar o cartão SD com o seguinte comando (vamos supor que o seu cartão SD seja /dev/sdd):

Não interrompa este comando ou ele pode bloquear o cartão SD.

$ sudo dd if=/dev/zero of=/dev/sdd bs=8192

Nota: Se este comando não for concluído com êxito e você precisar interrompê-lo, provavelmente será recuperável com os programas de recuperação de partição de disco cobertos por outras postagens.

Pode levar algum tempo, dependendo do tamanho e velocidade do cartão SD. Se você está convencido de que a CIA gostaria de recuperar seus arquivos, substitua o cartão SD em urandomvez de zero:

$ sudo dd if=/dev/urandom of=/dev/sdd bs=8192

ddO comando dos exemplos acima apaga o cartão SD inteiro, deixando-o sem partições, mesmo sem a tabela de partições. Então você precisará recriar a partição no cartão SD. Você pode fazer isso por qualquer ferramenta de particionamento como cfdisk, parted(a minha recomendação) ou gparted.

E mais uma coisa: tenha muito cuidado ao chamar o ddcomando . Um erro de digitação no of=valor do argumento pode causar desastre.

david6
fonte
2
Se você está preocupado com a CIA, deve usá /dev/random-lo de 5 a 10 vezes ... para não mencionar que você também deve queimá-lo no forno, pegar fogo e enterrá-lo no fundo do oceano: P
CijcoSistems
3
@CijcoSistems: A sugestão de queimar, inflamar ou enterrar pode funcionar. No entanto, o método de gravação de dados aleatórios (5 a 10 vezes) NÃO.
David6
11
@ david6 Você poderia explicar por que a gravação de dados várias vezes através da substituição pode não funcionar?
Denis
7
A memória de estado sólido não volátil moderna usa o nivelamento de desgaste para interromper as leituras / gravações repetidas usando demais qualquer seção específica da memória. (Consulte: searchsolidstatestorage.techtarget.com/definition/wear-leveling ) Isso significa que as gravações de dados que pretendem 'substituir' podem realmente ser salvas em outro lugar. Isso também significa que a verdadeira capacidade de memória é várias vezes 100 vezes maior do que a declarada, para permitir realocação contínua. Conforme observado na minha resposta, você deve invocar a função de apagamento seguro do fabricante para ignorar quaisquer efeitos de 'nivelamento de desgaste'.
David6 26/12/15
11
Não acho que o nivelamento de desgaste seja um problema quando você estiver preenchendo a unidade com zeros completamente. A verdadeira questão seria setores defeituosos caindo e não sendo substituídos.
HilarieAK,
4

Se você acabou de criar uma nova partição, não deve haver nenhum arquivo real nela. Esses 30 MB provavelmente são apenas o próprio sistema de arquivos. A partição precisa de algumas tabelas diferentes e outros enfeites para realmente acompanhar os arquivos.

Você pode checar se realmente não há nada procurando arquivos ocultos ls -alphna linha de comando ou habilitando arquivos ocultos no menu "Exibir" do Nautilus.

Dependendo exatamente de como você chama os comandos, é provável que o uso shredou ddsobrescreva a tabela de partição e / ou o sistema de arquivos.

TheSchwa
fonte
4

O que você está tentando alcançar?


(A.) Remova todas as partições atuais, para reutilizar o cartão:

Para apagar partições e / ou reformatar um cartão (micro) SD, use o gnome-disk-utility (também conhecido como 'Discos').

OU

(B.) Apague qualquer conteúdo atual (ou anterior) do cartão, para que NÃO possa ser recuperado:

Para apagar com segurança o cartão, você precisa SEJA destruir fisicamente o cartão (render em partículas sub-2mm²) OU usar um utilitário (do fornecedor) para acionar o seguro-apagar função.

Gravações múltiplas (de dados aleatórios) ou reformatação NÃO necessariamente removerão os dados.

david6
fonte
A sfillferramenta pode ser usada para esse fim. Veja superuser.com/questions/319262/…
Jim Garrison
11
@ Jim Garrison : Isso não trata do nivelamento de desgaste (veja meu comentário anterior) e do novo mapeamento de blocos de dados, feitos pelo controlador de memória flash embutido. Esses dados ainda são potencialmente recuperáveis.
David6
11
Leia
david6
2

Você pode destruir os arquivos antes de removê-los:

find /media/user/SD32/ -type f -exec shred -v -f -n0 -z -u   {} \;

shred params significa: Detalhado, force a exclusão de arquivos não graváveis, não escreva bytes aleatórios (acelera), escreva zeros (muito mais rápido), trunque e exclua o arquivo após escrever zeros.

Isso eliminará os dados de uma maneira que eles não seriam recuperados por aplicativos como o photorec.

Consulte /unix/27027/how-do-i-rrecursively-shred-an-entire-directory-tree

Ondra Žižka
fonte
11
Infelizmente, isso não funcionará em cartões SD. Se você substituir o arquivo neles, estará gravando em outros setores do SD. Portanto, para ser eficaz, você deve escrever no cartão SD inteiro, como na resposta.
luca76