Comando fstrim

Comando fstrim

El comando fstrim es una utilidad de administración de sistemas en Linux diseñada para informar a un dispositivo de almacenamiento de estado sólido (SSD, NVMe o almacenamiento virtual con soporte TRIM) qué bloques de datos ya no contienen información útil y pueden ser borrados internamente por el controlador del disco. Esto optimiza el rendimiento de escritura a largo plazo y prolonga la vida útil del soporte de almacenamiento.

Categoría Almacenamiento y Optimización de Discos
Disponible en Linux (utilidades util-linux) / Unix modernos
Equivalente en Windows Desfragmentar y optimizar unidades (Optimización programada / comando Defrag /L)
Sustituye a El montaje con la opción discard en tiempo real (que puede degradar el rendimiento de I/O en algunas unidades).
¿Requiere permisos de administrador? Sí, es estrictamente obligatorio contar con privilegios de superusuario (root) o permisos equivalentes mediante sudo, ya que interactúa directamente con los sistemas de archivos y dispositivos de bloque.

¿Qué significa su nombre?

FSTRIM proviene de la combinación de fs (file system, sistema de archivos) y trim (recortar o podar). Su nombre describe con precisión su propósito: ejecutar la operación de recorte TRIM a nivel de sistema de archivos sobre una partición montada.

A diferencia de los discos mecánicos tradicionales (HDD), que pueden sobrescribir datos antiguos sin preparación previa, las memorias flash de los SSD necesitan borrar físicamente los bloques en páginas antes de volver a escribir en ellos. El comando fstrim automatiza esta limpieza preventiva para evitar el fenómeno de ralentización progresiva (write amplification).

¿Para qué sirve?

El comando fstrim sirve principalmente para:

  • Liberar bloques lógicos en un SSD que pertenecían a archivos borrados, permitiendo que el controlador del disco los limpie en segundo plano.
  • Mantener el rendimiento óptimo de lectura y escritura en discos de estado sólido y unidades NVMe.
  • Evitar el desgaste prematuro de las celdas de memoria flash reduciendo la amplificación de escrituras.
  • Ejecutarse de forma periódica mediante servicios automatizados del sistema (como fstrim.timer en distribuciones con Systemd).

Sintaxis

fstrim [opciones] [punto_de_montaje]

Las opciones más habituales son:

Opción Descripción
-v o --verbose Muestra información detallada sobre el número de bytes y el espacio liberado en el dispositivo.
-a o --all Ejecuta la operación de recorte en todos los sistemas de archivos montados que admiten la función TRIM.
-o [desplazamiento] Indica el byte inicial desde el cual se comenzará a recortar el sistema de archivos.
-l [longitud] Especifica la longitud máxima en bytes que se desea recortar a partir del desplazamiento.

Comandos más utilizados

Comando Descripción
sudo fstrim -v / Realiza un recorte detallado del sistema de archivos raíz montado en la partición principal.
sudo fstrim -av Recorta de forma masiva y detallada todas las particiones SSD montadas en el sistema.
sudo systemctl status fstrim.timer Comprueba si las tareas automatizadas periódicas de TRIM están activas en el sistema.

Equivalencia con otros sistemas

Acción Linux Windows (CMD / PowerShell)
Optimizar / Recortar SSD fstrim Defrag C: /L / Optimizar unidades

Ejemplos

Ejecutar el comando de forma detallada en la partición principal

sudo fstrim -v /

Aplicar el recorte de manera global en todas las unidades compatibles

sudo fstrim -av

Verificar el estado del temporizador automático de Systemd para fstrim

sudo systemctl status fstrim.timer

Ejemplo de salida

/: 45.2 GiB (48523919360 bytes) trimmed

¿Cómo interpretar la salida?

  • /: Indica el punto de montaje del sistema de archivos sobre el cual se ha ejecutado la operación de limpieza.
  • 45.2 GiB (48523919360 bytes) trimmed: Muestra la cantidad total de espacio recuperado y notificado al controlador del SSD para su borrado físico, expresado tanto en formato legible como en bytes exactos.

Errores habituales

  • Intentar ejecutar fstrim sobre discos duros mecánicos tradicionales (HDD) o particiones que no soportan TRIM, lo que provocará un error de operación no admitida.
  • Olvidar anteponer los permisos de superusuario (sudo), impidiendo que la herramienta se comunique con los descriptores de bloque del sistema.

Conceptos relacionados

  • Unidades de Estado Sólido (SSD y NVMe)
  • Comando TRIM y optimización de bloques
  • Sistemas de archivos (ext4, XFS, Btrfs)
  • Desgaste de memoria flash (Wear leveling)
  • Systemd timers (automatización de tareas)

Comandos relacionados

  • lsblk
  • df
  • mount
  • hdparm
  • smartctl

Curiosidades

Aunque antes los administradores configuraban manualmente el comando fstrim ejecutándolo mediante tareas cron semanales o mensuales, hoy en día casi todas las distribuciones de Linux modernas activan por defecto un temporizador de Systemd (fstrim.timer) que realiza esta optimización de forma completamente automatizada en segundo plano una vez por semana.


Prácticas propuestas

  1. Comprueba el espacio disponible en tus particiones actuales utilizando el comando df -h.
  2. Verifica si tu unidad principal de almacenamiento es un SSD compatible comprobando los dispositivos con lsblk -d -o name,rota (donde un valor de 0 en la columna rotacional indica estado sólido).
  3. Ejecuta una prueba manual del comando de optimización sobre la partición raíz utilizando sudo fstrim -v /.
  4. Comprueba el estado del servicio automatizado del sistema ejecutando sudo systemctl status fstrim.timer para ver cuándo se programará la próxima ejecución.
  5. Habilita el temporizador automático para que se ejecute periódicamente en segundo plano usando sudo systemctl enable --now fstrim.timer.

Consejo: Si utilizas discos SSD modernos en Linux, asegúrate de mantener activo el temporizador fstrim.timer en lugar de usar la opción discard en el archivo /etc/fstab; obtendrás la misma limpieza automática sin penalizar el rendimiento en tiempo real de tus operaciones de escritura.