Lo malo de tener tus discos externos repletos de películas y series como si no hubiera un mañana, es que tarde o temprano llega un momento en que todos esos terabytes que pensaban que no se iban a llenar nunca, alcanzan su límite de capacidad.
Así que ahí me andaba yo esta mañana reciclando un disco duro externo con formato de archivos FAT32 y pasándolo a ext4 cuando me acordé de un post del maestro Gespadas, en el que nos explica como es posible hacer dicho formateo sin malgastar el 5% que el sistema de archivos ext3/ext4 reserva a la partición raíz, algo que en un disco de 1TB/2TB puede llegar a suponer de 50 a 100GB de espacio sin utilizar.
Obviamente cuando ext4 reserva ese espacio en el disco no lo hace por hinchar las bolas, el motivo principal es asegurarse de que en el caso de que el disco se llene, se pueda acceder a el y determinados procesos puedan seguir funcionando como root. Además también tiene la función de ayudar a reducir la fragmentación.
Esto puede ser muy importante cuando hablamos del disco duro que soporta nuestro sistema operativo, pero no tiene tanto sentido cuando utilizamos discos duros externos de gran capacidad como unidades de almacenamiento de películas, música, imágenes, etc…que no utilizamos muy a menudo.
Por suerte para solucionar eso Tux creó tune2fs, una herramienta en linea de comandos que nos permite modificar parámetros de los sistemas de archivos ext2/ext3/ext4
Lo primero que vamos a hacer es comprobar la ruta de nuestra unidad de disco duro externo utilizando el comando:
df
Algo que podemos ver también con cualquier herramienta de gestion de discos (Disk de GNOME, GParted, etc..) u otros comandos como fdisk -l
Generalmente el punto de montaje suele ser /dev/sdb1, /dev/sdc1 etc…
Una vez que ya hemos determinado cual es el disco duro con el que vamos a trabajar, ejecutamos como root tune2fs, añadiendo el parámetro -m e indicando el % de espacio o porcentaje de bloques que vamos a dejar reservado para la raíz del sistema, seguido del punto de montaje del dispositivo.
su tune2fs -m 0.1 /dev/sdb1
En este ejemplo que podéis ver también en la imagen inicial del post, ese porcentaje lo he establecido en un 0.1% lo que me ha permitido recuperar casi 72 GB de un disco duro externo de 1.5 TB en el que ya no cabía un alfiler en un par de segundos (al final me envicié y le acabé pasando la herramienta a todos los discos, nuevos y viejos xD ).
Ese valor puede ser algo extremo (sobre todo por el tema de la fragmentación) así que si lo preferís y dependiendo del tamaño de vuestro disco podéis sustituirlo por otros porcentajes (%) más conservadores como 0.5, 1, 2, etc….
Vía | Gespadas
¿Por que en la respuesta el comando añade la fecha 4.2.2014?
tune2fs -m 0.5 /dev/sda9
tune2fs 1.42.9 (4-Feb-2014)
Setting reserved blocks percentage to 0.5% (31248 blocks).
Una cosa que despierta mi curiosidad es por que a la hora de formatear un volumen que se hace en bloques de 512, algunas distribuciones lo hacen en MB y otras en GB. Me gustaría conocer alguna lectura que trate este tema concienzudamente.
Supongo que eso se refiera al lanzamiento de la versión, 1.4.12 en mi caso y 1.42.9 en el tuyo y por eso da diferentes fechas (por cierto se me olvidó mencionar en el post pero tune2fs viene integrado en el programa e2fsprogs).
Ese que comentas de los MB y los GB a la hora de formatear nunca me había fijado. Es bastante curioso y tampoco se que a se debe (diferentes escritorios con diferentes herramientas quizás?)
D’Artagnan si lo que quieres es una lectura a conciencia sobre el tema de sistemas de ficheros: como funciona, los bloques, i-nodos y demás; te recomiendo el libro de «Sistemas Operativos Modernos», de Andrew Tanenbaum (gran autor por cierto, cabe recalcar que Linus Torvalds creo Linux en base a uno de los libros escritos por Tanenbaum), y en el apartado 4.- «Sistemas de Ficheros» se trata este tema a conciencia.
Gracias, se agradece la información. Lo intentaré por ahí.
Me ha venido de perlas! Aplicado a todos los discos de datos.
tune2fs con el parámetro -l permite ver la cantidad de bloques reservados (y así, comparar el antes y el después de ponerlo a dieta):
tune2fs -l /dev/dm-3 | grep -i «block count»
Excelente!
Apuntado para probarlo, aun que veo que a mi el prOn me ocupa menos que a ustedes, yo no acabo de llenar los disco nunca XD
Un saludo
Una duda con este comando ¿se formatea el disco?¿se pierden los datos? Gracias
@J. Carlos No no se formatea ni pierdes información, ya que estás trabajando sobre el espacio libre reservado a la raiz no sobre tus datos. Eso si ten cuidado al seleccionar la partición no te vayas a equivocar 🙂
Gracias.
Otra duda, al analizar un disco externo me sale este aviso: Bad magic number in super-block mientras se intentaba abrir /dev/sdb1
No se pudo encontrar un superbloque válido para el sistema de ficheros.
¿A que se debe?
o si usa LVM asegúrate que es el disco correcto (en lugar de /dev/sdb1 puede ser algo parecido a /dev/dm-X )
Solucionado. Ahi estaba el problema: No me di cuenta que este disco no era ext4.
Gracias
El disco tiene formato ext2/ext3/ext4? Ejecuta el comando con el disco montado.
Un saludo.
buena info, gracias, me pregunto esta tarea no puedo realizarla directamente con g-parted ?
En principio no veo opción de manipular ese espacio reservado a root en Gparted.
Saludos!
ok, intentaremos, gracais !
Hola, sabrías reducir el espacio usado por el sistema de archivos? Con el GParted formateo un disco de 4TB en EXT4 60 gigas ya salen ocupados, un 1,6% del total del disco. Mirando un poco por la web veo que es algo relacionado con la tabla de inodos.. etc, el caso es que 60 gigas para guardar pocos archivos de gran tamaño me parece excesivo.
Saludos y muchas gracias.
Lee el libro que le recomendé a D’Artagnan, ahí viene perfectamente explicado porque se necesita ese espacio y cuales son las ventajas.
Gracias, pero ventajas no veo ninguna de tener reservados tantos inodos, tengo el disco duro lleno completamente y mas del 99% de inodos sin usar, ocupandome 60Gigas =(
# df -i
S.ficheros Nodos-i NUsados NLibres NUso%
/dev/sdc1 244195328 395 244194933 1%
y cual es el problema? no te funciona el comando tune2fs para reducir ese espacio?
Son cosas diferentes, con el tune2fs cambias el espacio reservado para root, yo hablo de lo que ocupan los inodos del sistema de archivos
@DavidXL ya veo…Ext4 es bastante puñetero para el tema de los inodos ya que no crean de forma dinámica al contrario que otros sistemas como XFS o btfrs, en algún lado he leído que se puede modificar con el comando mkfs.ext4 utilizando el parámetro -i para determinar ese ratio entre inodos/bytes pero yo nunca lo he hecho, así que no te puedo decir que efectos tendrá de cara al rendimiento y en todo caso implica formatear el disco.
Muchas gracias, después de llenar los 4TB aprendo todo esto de los inodos y que el sistema EXT4 usa un tamaño fijo, y lo peor, que no se puede cambiar sin formatear… bueno, soy nuevo en este sistema operativo. Se aprenden muchas cosas.
Saludos
Muchisimas gracias, me sirvieron muchisimo los comandos. Logré liberar 43GB en un disco aun cuando el sistema Linux Mint me indicaba que tenia 0 bytes disponibles en el disco.
Genial!