No Linux, este comando
fstrim -av
Removerei todos os blocos não utilizados (particularmente interessante em discos de VM e necessário em SSD para preservar/obter uma duração maior). O NetBSD tem um comando semelhante chamadoblkdiscard
Este comando limpa o disco inteiro, tornando-o inutilizável (corrija-me se eu estiver errado)
blkdiscard -v /dev/rwd...
Vejo que há um sinalizador que começa a descartar após alguns bytes (ou MB)
blkdiscard -v -f 256m -m 128m /dev/rwd0c
Suponha que minha partição use 6 GB de dados, para fazer um descarte seguro (meus dados ainda permanecem), esse é o comando correto?
blkdiscard -v -f 6000m -m 128m /dev/rwd0c
Eu não o chamaria de similar;
blkdiscard
descarta dispositivos inteiros (ou intervalos especificados manualmente) e não interage com sistemas de arquivos . (O Linux, aliás, também tem .blkdiscard
)vazio e utilizável, mas sim, os dados sumiram.
Não, de jeito nenhum. Os sistemas de arquivos não preenchem o espaço de armazenamento de uma só vez. (E quando você exclui um arquivo, não é como se o conteúdo de outro arquivo fosse movido para o armazenamento para preencher a lacuna.)
O que o descarte realmente precisa é conseguir entender o sistema de arquivos conforme armazenado no disco, identificar corretamente os blocos não utilizados e então cortá-los.
Portanto, uma
fstrim
ferramenta semelhante precisaráComo essas etapas exigem o bloqueio das estruturas internas do kernel, você pode
O Linux optou pela opção 1. Até onde eu sei, o NetBSD não tem nem a 1. nem a 2.¹, então não há como existir uma ferramenta similar à
fstrim
do NetBSD (e por "ferramenta similar" quero dizer "capaz de descartar blocos não utilizados de um sistema de arquivos em uso").Alguns sistemas de arquivos (acho que, pelo amor de Deus?) no NetBSD suportam o descarte automático sempre que você apaga um arquivo; você terá que descobrir se isso se aplica ao seu sistema de arquivos e como fazer com que ele faça isso. Geralmente, é algo que as pessoas não recomendam, pois pode prejudicar o desempenho do uso diário.
¹ Pelo que descobri no guia "NetBSD internals", em "Filesystem internals", simplesmente não há API para isso.