Aunque siempre ha corrido el rumor de que los sistemas de ficheros de Linux, basados principalmente en las versiones de extend u otros sistemas con journal como JFS, ZFS, XFS o ReiserFS, no requieren desfragmentación, sí es cierto que con el tiempo su operatividad se va volviendo más lenta por la dispersión de los datos. Aunque su impacto nunca llega a ser tan dramático como en los sistemas basados en FAT y NTFS, es algo que podemos solventar fácilmente dentro del sistema si empleamos una herramienta como e4defrag.
E4defrag es una utilidad que se encuentra disponible en la mayoría de distribuciones Linux, incluida Ubuntu, dentro del paquete e2fsprogs. Existen muchas otras que operan de forma similar, pero hemos elegido esta por su sencillez de uso. Para poder instalarla dentro de nuestro sistema sólo es necesario invocar el siguiente comando:
sudo apt-get install e2fsprogs
Una vez se halla instalado el paquete, podremos invocar la utilidad desde línea de comandos si ejecutamos la siguiente sentencia:
sudo e4defrag -c
Como resultado obtendremos una imagen similar a la siguiente que indica un valor de fragmentación de nuestra unidad. Si dicha cifra alcanza una puntuación superior a 30 sería recomendable tratar de reducirla mediante la utilidad que os hemos indicado, y si supera el valor de 56 será necesario actuar lo antes posible.
Para desfragmentar una unidad deberemos invocar la aplicación con la siguiente secuencia:
sudo e4defrag /ruta
O bien esta otra si queremos actuar sobre todo un dispositivo:
sudo e4defrag /dev/device
Como siempre, os recordamos que es recomendable desmontar los dispositivos o unidades de vuestro sistema sobre los que vayáis a actuar con esta utilidad o alguna similar para evitar la corrupción de datos.
Por último, os animamos a que dejéis vuestros comentarios y nos digáis qué tal os ha funcionado esta aplicación y si habéis notado alguna mejoría en vuestros equipos después de ejecutarla.
19 comentarios, deja el tuyo
que se gana asiendo eso!!! velocidad o algo ?
Hola Alicia, efectivamente, la localización de los datos hace que en la misma pasada la cabeza del disco coja la información que posteriormente se va a utilizar y por tanto se acierte en las páginas de memoria que se van a emplear. Esto se traduce en mayor velocidad.
como hago para desfragmentar mi ubuntu si esta en uso esta herramienta. dice que tiene que estar desmontada no entiendo
Hola Alicia, revisa el comando umount y aplicalo sobre la unidad o dispositivo que vayas a desfragmentar. Un ejemplo típico del umount es con el CDROM: umount /dev/cdrom.
Un saludo.
En Windows el desfragmentar ayuda a la búsqueda más rápida de archivos. Imagina un estante lleno de libros, todos juntos. Al quitar uno, queda un vacío. Eso pasa en el disco duro cuando borramos un archivo. Esto tiene como efecto que el sistema sea un poco más lento por el hecho que pierde tiempo buscando, incluso en esos vacíos. El desfragmentar sirve para juntar la información y no queden vacíos. En Linux no ocasiona un gran impact como en Windows. Pero puede ser bueno si llevamos mucho tiempo usándolo.
oh… entiendo gracias. si tenia algo de conosimiento pero en windows. pero en linux se me ase demasiado rapido mas que linux.. a uun que si con el tiempo se ase un poco lento no como windos ahora lo tengo muy lento creo que eso le are a eindoes 🙂 tengo prticionado el disco instalado win y linux. gracias por la info
tengo una memoria kingston usb 3.0 La que utilizaba para instalar ubuntu, pero un día no se que pasó, si fue que saqué la memoria sin desmontarla o no se pero desde ese día quedó se «solo lectura» y desde entonces he vagado por las páginas para ver si puedo recuperar dicha memora (por que es de alta velocidad usb 3) pero nada, como dicen en españa «na de na», ¿alguien sabe como arreglarla, o por lo menos explicar como evitar que esto vuelva a suceder?
¿Has intentado borrar sus datos con Gparted?
hay varias maneras puedes usar una aplicacion instalada llamada Discos abres y te ubicas en el usb que esta puesto y le das fomat, otra opcion seria por la terminal
Hola Luis,
siento decirte que el artículo te ha quedado un poco impreciso.
Por una parte, no es el tiempo lo que hace que aparezca fragmentación en los sistemas de ficheros, sino los patrones de uso: crear miles de ficheros pequeños y después eliminar algunos de forma aleatoria, escribir archivos muy grandes muy lentamente, etc.; y el grado de ocupación del sistema de ficheros, se menciona un uso por encima del 90% como punto en el que un sistema de ficheros no es capaz de mitigar la fragmentación (aunque no he visto nunca una explicación formal de ese 90%).
Por otra parte, los comandos que has puesto están cambiados: «e4defrag -c /ruta» muestra la información (count) sobre la fragmentación y «e4defrag /ruta» hace el desfragmentado.
Para finalizar, dejo por aquí[1] un artículo que explica de forma bastante sencilla un tema tan complejo como el de la fragmentación en sistemas de ficheros; es del 2006 y no menciona estructuras ni métodos como los «extents» o la desfragmentación online pero es fácil de entender.
Saludos.
PD: Solo por curiosidad, indicar que tras año y medio de uso y sin realizar desfragmentado de ningún tipo mi sistema tiene un flamante 0% de fragmentación al 79% de uso (Ubuntu 14.04).
[1]: http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_defragmenting
Hola Miguel Ángel, lo primero agradecerte el apunte. Modifico ahora mismo la sentencia. Como bien indicas, los patrones de uso e incluso antes, la elección del tamaño de cluster o bloque, condicionarán posteriormente este comportamiento en las unidades. Como no es previsible si tendremos en nuestra unidad muchos ficheros pequeños o pocos y grandes se suele tomar el valor por defecto que maneja el sistema.
Por otra parte indicar que la ganancia de la desfragmentación no está tanto en la compactación de la información como en la buena ordenación seguida de la información. Cuanto menos tenga que saltar las cabezas del disco más velocidad ganaremos (y en general suele ocurrir con ficheros grandes y con bloques seguidos que con muchos pequeños y ubicados al azar por el disco).
Gracias por leernos.
Total/best extents 276635/270531
Average size per extent 252 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This directory (/) does not need defragmentation.
Done.
—————————————-
El ordenador tiene unos 3 años, no está nada mal, ¿no?
LinuxMint 17.2
Hola zytumj,
que la fragmentación sea prácticamente inexistente es lo normal en los sistemas de ficheros usados en Linux, «están pensados» para evitarla.
Realmente no merece la pena realizar un desfragmentado en Linux, estas herramientas son principalmente por si acaso necesitas realizar algún tipo de redimensionado de las particiones, para que no tengas archivos al final de la partición que no te permitan cambiar el tamaño.
Saludos.
PD: No lo comenté antes y tampoco lo comenta el artículo, pero si tenéis un disco SSD, desfragmentarlo es una perdida de tiempo indistintamente del sistema de ficheros que uséis.
Gracias Miguel Ángel.
No, uso un disco tradicional. Igualmente cuando empecé con GNU/Linux allá por el 2008 ya busqué como desfragmentar y leí que no hacía falta.
Ya que tocan el tema de los archivos repartidos por toda la partición y se piense hacer una reducción de la partición. He denotado que usando aplicaciones gráficas como Defraggler u otro desde windows para particiones NTFS en un HDD, muchas veces mo pueden desfragmentar lo suficiente, y cuando lo hacen, es posible que queden archivos hacia el final de la partición.
Me pregunto si en Linux pueda haber una fragmentación del 0% en una partición Ext4, pero asímismo haya archivos hacia el final de la partición, es decir, que hacia el centro haya espacio vacío.
Pienso yo, lo ideal de un salvado de datos en una partición, es que se salvasen los datos hacia el centro de la partición hacia afuera. ¿Qué opinan?
Hola. ¿Y cómo puedo desfragmentar particiones NTFS o FAT32? Gracias
Hola a todos! Llevo años usando Ubuntu y nunca se ha demorado en nada, lo adoro. 10 segundos en arrancar y 3 en apagarse. Saludos!
trabajo con tres impresoras y ninguna de las tres las puedo instalar en ubuntu 20.04 , ya bajè los drivers de cada una de ellas. la pc es nueva y està recien instalado el ubuntu. con la pc anterior la cual tuve que desechar por que no iniciaba (initramsf)y nadie era capaz de repararla, funcionaban bien las tres impresoras. las impresoras son dos epson y una hp.
lsb no existe en ubuntu 20.04
Buenas tardes.
Para usar e4defrag es necesario que el dispositivo esté montado:
root@Asgar:/media# umount disco1
root@Asgar:/media# e4defrag /dev/sda1
e4defrag 1.46.6-rc1 (12-Sep-2022)
Filesystem is not mounted
root@Asgar:/media#
Saludos.