miércoles, 4 de octubre de 2017

Desfragmentar, en Linux

Siempre he leido, y siempre he comentado, que en Linux no es necesario desfragmentar el disco duro. Incluso en una de mis primeras entradas a este Blog me refería, en plan jocoso, a la vieja historia (¡todo un clásico...!) del ejemplo del huerto, para definir la fragmentación, y a los diferentes hábitos de la secretaria Guillermina Windows y de la secretaria Gunilla Linux a la hora de manejar los expedientes que les llegan (los archivos, vamos).

Pero el caso es que nunca había comprobado esa teoría de la eficacia de Linux… hasta que hace unos días descubrí una herramienta, o utilidad, por consola, que se llama ‘e4defrag’.
Vamos a verlo...
En realidad, e4defrag es una de las utilidades del paquete ‘e2fsprogs’, que suele estar instalado por defecto pero que, si no, como está en los repositorios, basta hacer un ‘sudo aptitude install e2fsprogs’ para disponer de él.
Y el paquete e2fsprogs, al igual que decía cuando hablaba de otro conocido paquete llamado ‘testdisk’ (con su photorec, etc) o del 'imagemagick’ (con convert, mogrify, etc) no
es más que otra ‘navaja suiza’ de Linux (o, al menos, de Debian) que tiene utilidades interesantes. No voy a entrar en ellas, el que quiera profundizar que se informe vía Google, o la Wikipedia, por cierto que descubro que una de ellas (‘sudo blkid’) la he usado más de una vez para conocer la UUID y la etiqueta de las particiones).

El caso es que, aceptando como premisa que no hay sistema de archivos absolutamente libre de fragmentaciones, con esta utilidad descubriremos que, en Linux, la fragmentación, si la hubiese, es mínima, y no tiene nada que ver con la que se tenía usando Windows, y sus particiones NTFS, etc, que los discos tendían a fragmentarse y, normalmente, había que pasar un optimizador al cabo de unos pocos meses de uso.

Y es que lo que hace esta utilidad e4defrag es permitirnos conocer si nuestro disco (o alguna de sus particiones) está fragmentado y, si lo estuviese, desfragmentarlo (esto, en primera instancia, y solo voy a llegar hasta aquí, como siempre digo, el que quiera profundizar, que busque y se estudie su manual) .
Vamos a verlo, y voy a enseñar lo que me sale a mi.

A.- Conocer el nivel de fragmentación, en Linux
Pues para eso basta escribir en consola…
sudo e4defrag -c [objetivo]
NOTA: donde pongo [objetivo] hay que poner lo que quieras que revise:
- una ruta (si quieres saber la fragmentación de una carpeta). Por ejemplo, /home/doc
- o una partición, por ejemplo, /dev/sda1
- o todo el disco, y entonces pondríamos /dev/sda*

El resultado del primer caso (para ver cómo está, en estos momentos, mi /HOME), es este:
  
y aquí se explica claramente (en las últimas líneas) que si el resultado de la fragmentación (‘fragmentation score’) es bajo (de 0 a 30), ‘NO PROBLEM’ y que... ‘NOT NEED DEFRAGMENTATION’

B.- Desfragmentar
Pero supongamos que el análisis anterior (que es bastante rápido) nos dice que es recomendable desfragmentar. Bueno pues es tan sencillo como lanzar, de nuevo por consola, esta orden:
sudo e4defrag [objetivo]
(fíjate, es como la anterior, pero sin la opción ‘-c’) y ahora  te desfragmentará lo que le hayas indicado.
Por ejemplo, con la orden
sudo e4defrag /dev/sda*
te desfragmentará todo el disco. Por supuesto, tarda bastante.


Así que esta es la herramienta para analizar (y, en su caso, corregir) la fragmentación en Linux. Interesante ¿no?

Por cierto, esta herramienta es útil para los discos duros clásicos, los sólidos (SSD) no lo necesitan. Y no es compatible con el formato SWAP, solo lo es, al parecer, para el formato EXT4 (¿y quizás, también para EXT3 y EXT2...?).

(En todo caso, como siempre, se puede consultar, por consola, su ‘man e4defrag’)

No hay comentarios:

Publicar un comentario