¿Cómo hacer escaso el sistema de archivos ext4?

10

Estoy usando Linux como SO huésped en VirtualBox. Eliminé una gran cantidad de archivos de su sistema de archivos. Ahora quiero reducir el archivo de imagen del sistema de archivos (vdi). La reducción funciona al comprimir la imagen del sistema de archivos siempre que tenga un valor "nulo" en el disco.

Parece que una aplicación llamada zerofree puede escribir "nulo" en el espacio libre del sistema de archivos de tal manera que se vuelva escaso. Pero las instrucciones dicen que solo funciona en ext2 / ext3. Tengo ext4 en mi sistema operativo invitado.

  1. ¿Por qué no funcionará en la extensión 4 (la razón citada es "extensión", pero alguien puede arrojar más luz sobre esto)?

  2. ¿Funcionará si monte el ext 4 como ext 3 y luego vuelva a montar como ext 4 ?

  3. ¿Alguna otra herramienta que pueda hacer algo similar a zerofree en ext?

rajaganesh87
fuente
2
Según el enlace allí, zerofree funciona en ext4.
psusi
No estoy seguro de si funciona en su momento o no, pero la página de manual dice que admite ext4
phuclv

Respuestas:

23

La página a la que hace referencia ( http://intgat.tigress.co.uk/rmy/uml/index.html ) dice:

The utility also works on ext3 or ext4 filesystems.

Entonces, no estoy seguro de dónde lo está obteniendo, ya que no funciona en los sistemas de archivos ext4.

Tenga en cuenta que la utilidad zerofree es diferente del parche del kernel zerofree que se menciona en la misma página (que de hecho no parece tener una versión para ext4).

Actualización: al menos en el caso de VirtualBox, no creo que necesite esta utilidad en absoluto. En mis pruebas, en una instalación de Ubuntu 10.04 en ext4, puede poner a cero el sistema de archivos de esta manera:

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

... espere a que se llene el disco virtual, luego

$ rm test.file

y apaga la VM. Luego, en su host VirtualBox, haga lo siguiente:

$ VBoxManage modifyhd --compact yourImage.vdi

y recuperarás todo el espacio no utilizado.

pdo
fuente
Gracias por su respuesta. La página de manual de zerofree no especificaba ext4, por eso necesitaba una alternativa.
rajaganesh87
1
¡La alternativa propuesta (dd if = / dev / zero of = test.file) funcionó para mí! Mucho más simple que otras soluciones.
Pisu
3
Esta debería ser la respuesta aceptada. Funciona maravillosamente
Chris Pratt
Haz un syncdespués del dd.
ignis
ddLa idea funcionó para mí también. ¡Bien hecho!
Stefan
1

Podrías usar e2fsprogs, hay una versión que se puede usar con ext4.

Hazte superusuario:

# su

Desmonta tu disco:

# umount /dev/sda1

Elimina el diario de tu disco:

# tune2fs -O ^has_journal /dev/sda1

Y luego cambie el tamaño de su sistema de archivos:

# resize2fs /dev/sda1 30G


fuente
Gracias por su respuesta, pero no quiero reducir la partición sino la imagen del sistema de archivos (vdi) del invitado.
rajaganesh87