Como limpar o espaço não utilizado com zeros? (Estou pedindo uma ferramenta para o sistema de arquivos btrfs )
Estou procurando por algo mais inteligente do que
cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero
O FSArchiver está procurando por "espaço usado" e ignora o site não utilizado, mas oposto.
Objetivo: eu gostaria de compactar imagens de partição, portanto, é altamente recomendável preencher o espaço não utilizado com zeros.
Btw. Para ext3, ext4: limpe o espaço não utilizado com zeros (ext3, ext4) . Aqui eu peço btrfs
Esclarecimento do "algoritmo mais inteligente": Como vejo que o "algoritmo mais inteligente" leva à confusão, aqui finalmente decidi adicionar uma linha sobre ele. Caro leitor, pense no sistema de arquivos como estrutura de dados. Para fins de simplificação, vamos imaginar um mapa de retenção de árvore vermelho-preto com balanceamento automático, usado como chave de associação-> matriz de valores, em que os valores são inteiros. O objetivo é limpar todos os valores negativos com zeros. O algoritmo "não inteligente" irá iterar sobre ele e adicionar pares chave: valor ao novo mapa (com eventual alteração negativa em zero). O algoritmo inteligente apenas detecta locais onde os valores negativos estão armazenados e os limpa no local .
fonte
sfill
sugestão ? Parece que não requer extX.truncate
e / oufallocate
Respostas:
Aqui está um repost modificado e muito expandido da minha resposta à sua pergunta anterior:
sfill
dosecure-delete
pacote pode fazer o que você quiser.Diferente do zerofree (que funciona apenas com os sistemas de arquivos ext2, ext3 e ext4), o sfill funcionará com qualquer sistema de arquivos.
por exemplo
A página inicial sfill / secure-delete agora parece ter desaparecido, mas está empacotada para o debian e o ubuntu. provavelmente outras distros também. se você precisar de código fonte, isso pode ser encontrado nos arquivos debian, se você não puder encontrá-lo em nenhum outro lugar.
NOTA: sfill funciona apenas em um sistema de arquivos montado. Se você estiver preenchendo com zero os arquivos de imagem do sistema host em vez de dentro de uma VM, precisará montar a imagem fs no host. O método exato varia dependendo do tipo de arquivo de imagem (por exemplo, qcow2 ou bruto).
A montagem de imagens "brutas" é fácil e direta. Basta usar
kpartx
no arquivo de imagem para criar um dispositivo de loopback e / dev / mapper / entradas para cada partição, em seguida, podem ser montados individualmente.aqui está um script parcial modificado a partir de um fragmento do script que eu uso para montar imagens de disco rígido de freedos inicializáveis em rede (usadas para atualizações da bios em máquinas nas quais o flashrom não funciona):
NOTA: assume que todas as partições da imagem podem ser montadas. verdadeiro no meu caso de uso (uma imagem hd freedos com uma partição). não é verdade se uma das partições for, digamos, trocar espaço. Detectando essas partições e usando dd para zero, a partição swap é deixada como um exercício para o leitor :)
Esse método, ou uma variante dele, também deve funcionar para volumes LVM.
Se suas imagens são qcow, você pode usar a
qemu-nbd
ferramenta doqemu-utils
pacote, que apresentará o arquivo de imagem e suas partições como dispositivos de bloco de rede - por exemplo, / dev / nbd0 / dev / ndb0p1 - que pode ser usado de maneira semelhante à / dispositivos dev / mapper acima.É possivelmente mais fácil e menos complicado (mas demorado) para
qemu-img
converter de qcow em raw, use o método para raw acima e, em seguida, converta a imagem bruta modificada novamente em qcow2 compactado2. Provavelmente, isso resultará em imagens um pouco menores do que no uso do qemu-nbd, pois você comprimirá a nova imagem qcow2 enquanto ela está sendo criada.fonte
A maneira correta e "inteligente" de limpar o espaço livre está usando:
Use isso em um sistema de arquivos montado.
É importante observar que não há vantagem de segurança nisso. Se você deseja limpar seu disco por segurança, faça backup de seus arquivos, zere o disco inteiro com um comando como "shred" e depois restaure seus arquivos.
No entanto, a solução funciona bem se o seu disco é uma provisão fina em um sistema de arquivos esparso e você deseja recuperar o espaço não utilizado.
fonte