Como tornar o sistema de arquivos ext4 esparso?

10

Estou usando o Linux como sistema operacional convidado no VirtualBox. Eu apaguei um grande número de arquivos do seu sistema de arquivos. Agora eu quero reduzir o arquivo de imagem do sistema de arquivos (vdi). O encolhimento funciona comprimindo a imagem do sistema de arquivos onde houver valor "nulo" no disco.

Parece que um aplicativo chamado zerofree pode gravar "null" no espaço livre do sistema de arquivos em de tal forma que se torne esparsa. Mas as instruções dizem que funciona apenas em ext2 / ext3. Eu tenho ext4 no meu sistema operacional convidado.

  1. Por que não funciona no ext 4 (a razão citada é "extents", mas alguém pode esclarecer isso)?

  2. Funcionará se eu montar o ext 4 como ext 3 e depois remontar como ext 4 ?

  3. Quaisquer outras ferramentas que possam fazer algo similar como zerofree no ext?

por rajaganesh87 11.04.2011 / 19:35

2 respostas

23

A página que você menciona ( link ) declara:

The utility also works on ext3 or ext4 filesystems.

Portanto, não tenho certeza de onde você está conseguindo que não funcione em sistemas de arquivos ext4.

Note que o utilitário zerofree é diferente do kernel patch que é mencionado na mesma página (que de fato não parece ter uma versão para ext4).

Atualização: Pelo menos no caso do VirtualBox, não acho que você precise desse utilitário. Nos meus testes, em um Ubuntu 10.04, instale no ext4, você pode simplesmente zerar o sistema de arquivos da seguinte forma:

$ dd if=/dev/zero of=test.file

... espere que o disco virtual seja preenchido e, em seguida,

$ rm test.file

e desligue a VM. Então, no seu host VirtualBox, faça:

$ VBoxManage modifyhd --compact yourImage.vdi

e você recuperará todo o espaço não utilizado.

    
por 13.04.2011 / 14:22
1

Você pode usar e2fsprogs , há uma versão que pode ser usada com o ext4.

Torne-se superusuário:

# su

Desmonte sua unidade:

# umount /dev/sda1

Remova o diário do seu disco:

# tune2fs -O ^has_journal /dev/sda1

E redimensione seu sistema de arquivos:

# resize2fs /dev/sda1 30G

    
por 12.04.2011 / 04:58