Cómo reparar y desfragmentar particiones y directorios del sistema Linux


Las personas que usan Linux a menudo piensan que no requiere desfragmentación. Este es un malentendido común entre los usuarios de Linux. En realidad, el sistema operativo Linux admite la desfragmentación. El objetivo de la desfragmentación es mejorar las operaciones de E/S, como permitir que los videos locales se carguen más rápido o extraer archivos significativamente más rápido.

Los sistemas de archivos Linux ext2, ext3 y ext4 no necesitan tanta atención, pero con el tiempo, después de ejecutar muchas, muchas lecturas/escrituras, el sistema de archivos puede requerir optimización. De lo contrario, el disco duro podría ralentizarse y afectar a todo el sistema.

En este tutorial, le mostraré algunas técnicas diferentes para realizar la desfragmentación en archivos. Antes de comenzar, debemos mencionar lo que hacen los sistemas de archivos comunes como ext2,3,4 para evitar la fragmentación. Estos sistemas de archivos incluyen una técnica para evitar el efecto. Por ejemplo, los sistemas de archivos reservan grupos de bloques libres en el disco duro para almacenar archivos crecientes por completo.

Desafortunadamente, el problema no siempre se resuelve con este mecanismo. Si bien otros sistemas operativos pueden requerir un software adicional costoso para resolver estos problemas, Linux tiene algunas herramientas fáciles de instalar que pueden ayudarlo a resolver dichos problemas.

¿Cómo comprobar un sistema de archivos que requiere desfragmentación?

Antes de comenzar, me gustaría señalar que las operaciones a continuación solo deben ejecutarse en HDD y no en SSD. Desfragmentar su unidad SSD solo aumentará su recuento de lectura/escritura y, por lo tanto, acortará su vida útil. En cambio, si está usando SSD, debe usar la función TRIM, que no se trata en este tutorial.

probemos si el sistema realmente requiere desfragmentación. Podemos comprobar esto fácilmente con una herramienta como e2fsck. Antes de utilizar esta herramienta en una partición de su sistema, se recomienda desmontar esa partición con. Esto no es completamente necesario, pero es el camino más seguro a seguir:

$ sudo umount <device file>

En mi caso, tengo/dev/sda1 montado en/tmp:

Tenga en cuenta que, en su caso, la tabla de particiones puede ser diferente, así que asegúrese de desmontar la partición correcta. Para desmontar esa partición puede usar:

$ sudo umount /dev/sda1

Ahora, verifiquemos si esta partición requiere desfragmentación, con e2fsck. Deberá ejecutar el siguiente comando:

$ sudo e2fsck -fn /dev/sda1

El comando anterior realizará una verificación del sistema de archivos. La opción -f fuerza la comprobación, incluso si el sistema parece limpio. La opción -n se usa para abrir el sistema de archivos en solo lectura y asumir la respuesta de "no" a todas las preguntas que puedan aparecer.

Básicamente, esta opción permite utilizar e2fsck de forma no interactiva. Si todo está bien, debería ver un resultado similar al que se muestra en la captura de pantalla a continuación:

Aquí hay otro ejemplo que muestra errores en un sistema:

Cómo reparar el sistema de archivos de Linux usando e2fsck

Si aparecen errores, puede intentar reparar el sistema de archivos con e2fsck con la opción "-p". Tenga en cuenta que para ejecutar el siguiente comando, la partición deberá desmontarse:

$ sudo e2fsck -p <device file>

Las opciones "-p" intentan la reparación automática en el sistema de archivos de problemas que pueden solucionarse de forma segura sin intervención humana. Si se descubre un problema que puede requerir que el administrador del sistema tome una acción correctiva adicional, e2fsck imprimirá una descripción del problema y se cerrará con el código 4, que significa " Errores del sistema de archivos que no se han corregido". Según el problema que se haya encontrado, es posible que se requieran diferentes acciones.

Si el problema aparece en una partición que no se puede desmontar, puede usar otra herramienta llamada e4defrag. Viene preinstalado en muchas distribuciones de Linux, pero si no lo tiene en la suya, puede instalarlo con:

$ sudo apt-get install e2fsprogs         [On Debian and Derivatives]
# yum install e2fsprogs                  [On CentOS based systems]
# dnf install e2fsprogs                  [On Fedora 22+ versions] 

Cómo desfragmentar particiones de Linux

Ahora es el momento de desfragmentar las particiones de Linux con el siguiente comando.

$ sudo e4defrag <location>
or
$ sudo e4defrag <device>

Cómo desfragmentar el directorio de Linux

Por ejemplo, si desea desfragmentar un solo directorio o dispositivo, puede usar:

$ sudo e4defrag /home/user/directory/
# sudo e4defrag /dev/sda5

Cómo desfragmentar todas las particiones de Linux

Si prefiere desfragmentar todo su sistema, la forma segura de hacerlo es:

$ sudo e4defrag /

Tenga en cuenta que este proceso puede tardar algún tiempo en completarse.

Conclusión

La desfragmentación es una operación que rara vez necesitará ejecutar en Linux. Está destinado a usuarios avanzados que saben exactamente lo que están haciendo y no se recomienda para principiantes de Linux. El objetivo de toda la acción es tener su sistema de archivos optimizado para que las nuevas operaciones de lectura/escritura se realicen de manera más eficiente.