Ao tentar limpar com segurança os SSDs, temos vários problemas:
- Os SSDs se desgastam após uma quantidade limitada de ciclos de apagamento
- Os SSDs têm um controlador que mapeia dinamicamente LBAs (endereços de blocos lógicos usados pelo sistema para acessar o disco) para células NVRAM (as células de memória flash reais) para equilibrar o desgaste, o que significa dizer ao disco para substituir os blocos que anteriormente armazenavam um disco específico. O arquivo pode resultar na substituição de outros blocos sobressalentes.
- Os SSDs possuem uma porcentagem notável de capacidade de reserva usada para compensar as células de armazenamento em extinção e reduzir o desgaste. Eles não são visíveis para o sistema e podem conter fragmentos de dados antigos.
Agora, quais opções temos dentro do Ubuntu para limpar com segurança os SSDs?
Ouvi dizer que alguns SSDs mais recentes devem poder se limpar com segurança, mas como descobrir se meu SSD é capaz disso e como eu o acionaria?
Também deve haver um comando de exclusão segura do ATA, como descobrir se isso é suportado e como desencadear isso?
Existem também maneiras de limpar com segurança apenas um determinado arquivo ou apenas espaço não utilizado?
Eu acho que fazer um backup de todas as partições, limpar com segurança todo o disco e depois restaurar o backup seria possível, mas parece muito complicado e levaria muito tempo para ser prático. Existem outras alternativas? Caso contrário, que ferramentas posso usar para fazer backup de partições sem fazer backup de arquivos já excluídos?
Obviamente, as ferramentas padrão gostam shred
ou wipe
não são utilizáveis aqui para os pontos descritos acima. Eles simplesmente sobrescrevem um arquivo (sobrescrevendo seus clusters de sistema de arquivos que estão vinculados aos LBAs que não estão constantemente apontando nas mesmas células flash devido ao controlador de nivelamento de desgaste).
fonte
Respostas:
Atualmente, não há como apagar com segurança arquivos no SSD sem apagar o conteúdo de toda a unidade ou acessar o firmware do SSD.
É impossível saber onde o SSD pode armazenar cópias anteriores de um bloco lógico.
Para piorar a situação, devido aos mecanismos de diário e cópia na gravação do sistema de arquivos, pode ser impossível saber quais blocos lógicos podem conter uma cópia anterior de um arquivo específico.
A única maneira de impedir o vazamento de arquivos excluídos para alguém com acesso direto à unidade é criptografá-los em primeiro lugar e manter a chave de criptografia protegida contra olhares indiscretos.
Termo aditivo:
Pesquisei e descobri que você pode apagar todos os arquivos excluídos anteriormente, se conseguir aprender todos os setores desocupados de um sistema de arquivos, o que geralmente é possível e oferecido por algumas ferramentas do sistema de arquivos (por exemplo, para a família ext * ) e depois as descarte (por exemplo,
blkdiscard(8)
conforme descrito nesta resposta à pergunta vinculada ), que retorna os blocos para coleta de lixo até que sejam usados novamente e sobrescritos no processo.Isso é seguro contra todos que não podem acessar diretamente as células flash, portanto, todos que
fonte
A maneira mais fácil de determinar se sua unidade suporta apagamento seguro é perguntar: usei / dev / sdX nos exemplos abaixo. Você precisará alterá-lo cuidadosamente para corresponder ao dispositivo com o qual está trabalhando:
Fontes:
https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
/superuser/1161531/how-to-un-freeze-drive-in-linux
No meu SSD, isso resulta em:
Se o apagamento seguro for suportado pelo seu dispositivo, acioná-lo é um processo de 2 ou 3 etapas.
sudo hdparm -I /dev/sdX
semelhante a esta:Descongele, suspendendo e reiniciando seu sistema. Fiz isso com o comando
sudo systemctl suspend
movendo o ponteiro até o sistema reiniciar.Você deve definir uma senha para usar o apagamento seguro. Nesse caso, estou usando foobar como senha. Você pode usar a senha que não estiver em branco que desejar, pois é temporária.
sudo hdparm --user-master u --security-set-pass foobar /dev/sdX
Com a senha definida, agora você pode usá-la para apagar com segurança a unidade:
sudo hdparm --user-master u --security-erase foobar /dev/sdX
Se a sua unidade suportar e você desejar, pode optar por usar a exclusão aprimorada de segurança com:
sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX
fonte