Cómo usar hdparm en Linux para optimizar y borrar discos de forma segura

Última actualización: marzo 2, 2026
Autor: Isaac
  • hdparm permite consultar información detallada del disco y medir su rendimiento de lectura, complementándose con dd para evaluar la escritura.
  • Las opciones de gestión de energía (-B, -S, -C) y acústica (-M) ayudan a equilibrar consumo, ruido y desgaste de HDD y SSD.
  • Funciones avanzadas como DMA, multicount, read-ahead y caché de escritura pueden mejorar el rendimiento pero deben usarse con precaución.
  • El borrado seguro mediante comandos de seguridad ATA en hdparm es muy potente pero conlleva riesgo de pérdida total de datos si se usa sin cuidado.

Uso del comando hdparm en Linux

Si usas Linux y quieres exprimir al máximo tus discos duros o SSD, tarde o temprano te encontrarás con hdparm. Es una herramienta potente, veterana y muy flexible que permite desde medir el rendimiento del disco hasta ajustar energía, ruido, caché o incluso realizar borrados seguros en ciertas unidades.

Precisamente por esa potencia, hdparm también tiene mala fama porque, usado sin cuidado, puede provocar pérdidas de datos o dejar el sistema colgado. La clave está en conocer bien para qué sirve cada opción, qué riesgos tiene y cómo usarlo de forma responsable. En este artículo lo vemos paso a paso, con ejemplos prácticos y avisos donde realmente hay peligro.

Qué es hdparm y para qué sirve

hdparm es una utilidad de línea de comandos para ajustar parámetros de discos IDE/SATA (y, en menor medida, SSD modernos) en sistemas GNU/Linux y algunos Unix. Aunque existen herramientas específicas para SCSI/SAS como sdparm, hdparm sigue siendo la referencia para muchas tareas de diagnóstico y ajuste fino.

Con esta herramienta puedes consultar información técnica del disco, medir velocidades de lectura, habilitar o deshabilitar cachés, modificar el nivel de gestión de energía, controlar el modo acústico de los HDD, y en unidades que lo soportan, utilizar funciones de seguridad como bloqueo por contraseña o borrado seguro (Secure Erase).

Es importante tener claro que la mayoría de opciones de hdparm requieren privilegios de superusuario. En la práctica, casi todos los ejemplos se ejecutan con sudo, así que conviene extremar las precauciones antes de dar a Enter.

Por defecto, en muchas distribuciones hdparm viene instalado o está en los repositorios oficiales, de forma que no tendrás que compilar nada extraño ni tirar de fuentes poco fiables.

Instalación y localización del disco

Antes de tocar nada, lo primero es asegurarse de que hdparm está instalado y saber qué dispositivo de bloque corresponde a tu disco (por ejemplo, /dev/sda, /dev/sdb, etc.).

En distribuciones basadas en Debian (Debian, Ubuntu, Linux Mint y derivadas) puedes instalarlo con:

sudo apt-get install hdparm

En distribuciones de la familia Red Hat (RHEL, CentOS, Fedora):

sudo yum install hdparm

Y en Arch Linux y derivadas (Manjaro, EndeavourOS, etc.):

sudo pacman -S hdparm

Una vez instalado, necesitas identificar el dispositivo de almacenamiento sobre el que vas a trabajar. Lo más sencillo es usar:

sudo fdisk -l

El comando listará todos los discos y particiones. Fíjate en las líneas que empiezan por “Disk /dev/sdX”, por ejemplo Disk /dev/sda o Disk /dev/sdb. Ese “sdX” será el objetivo de los comandos de hdparm (siempre sobre el disco, no sobre la partición como /dev/sda1 en la mayoría de casos).

Comandos básicos de ayuda y sintaxis general

Antes de ponerte a lanzar opciones a lo loco, es buena idea consultar la ayuda integrada y el manual de la herramienta:

hdparm --help
hdparm -h
man hdparm

La sintaxis genérica es muy simple: hdparm . Por ejemplo:

sudo hdparm -I /dev/sda

Ten muy presente que no todas las opciones son igual de inocuas. En muchas implementaciones de ayuda, las peligrosas aparecen marcadas con alguna nota de aviso. Si en tu sistema no se señalan expresamente, conviene buscar en la documentación oficial o en recursos fiables antes de usarlas.

Ver información detallada del disco con hdparm

Una de las funciones más usadas y seguras de hdparm es obtener información técnica detallada de la unidad, útil para diagnóstico o simplemente para saber qué capacidades soporta el disco.

Para ver la configuración actual de un disco SATA típico:

sudo hdparm /dev/sda

Si quieres la identificación básica del disco (modelo, número de serie, etc.) tal y como se vio al arrancar el sistema, puedes usar:

sudo hdparm -i /dev/sda

La opción más completa es -I, que extrae directamente del dispositivo un informe detallado con información de características avanzadas como soporte de DMA, APM, modos de transferencia, seguridad ATA, etc.:

sudo hdparm -I /dev/sda

En este informe también puedes ver el estado de seguridad de un SSD cuando quieras hacer un borrado seguro, comprobando si aparece como “frozen” o “not frozen”, así como si están activadas funcionalidades como security_enabled o security_locked.

Medir la velocidad de lectura con hdparm

Otra función estrella es medir la velocidad de lectura del disco de forma sencilla desde la terminal. Esto viene genial para comprobar si un HDD o SSD rinde como debería o si algo raro está pasando.

El comando típico para medir el rendimiento de lectura es:

sudo hdparm -tT /dev/sda

En la salida verás dos valores importantes, normalmente etiquetados como “Timing cached reads” y “Timing buffered disk reads”:

  • Timing cached reads (T): mide la velocidad de lectura desde la caché de sistema (page cache) sin acceder realmente al disco físico.
  • Timing buffered disk reads (t): mide la velocidad de lectura real desde el disco hacia la caché, dando una idea aproximada del rendimiento bruto del dispositivo.

Para tener resultados más fiables, conviene repetir la prueba varias veces y sacar una media. Puedes automatizarlo con:

  ¿Qué es Segurazo en mi PC?

for i in 1 2 3; do sudo hdparm -tT /dev/sda; done

Si quieres eliminar el efecto de la caché del sistema y ver una medición más “pura” del disco, puedes usar la opción --direct:

sudo hdparm -t --direct /dev/sda

Además, se puede probar el rendimiento en distintas zonas del disco con --offset, por ejemplo:

sudo hdparm -t --direct --offset 500 /dev/sda

Esto te ayuda a ver si partes finales del disco son más lentas, algo típico en HDD mecánicos, o a detectar irregularidades en ciertos rangos de sectores.

Medir velocidad de escritura con dd (complemento a hdparm)

Aunque hdparm se centra en lectura, para la velocidad de escritura se suele recurrir al comando dd, que permite escribir datos de prueba en un archivo y medir el rendimiento.

Un ejemplo clásico para evaluar la escritura sobre un disco o sistema de archivos es:

dd if=/dev/zero of=/tmp/test.dat bs=512 count=2000000 conv=fdatasync

En este comando se están escribiendo 2.000.000 de bloques de 512 bytes llenos de ceros en el archivo /tmp/test.dat, lo que equivale a aproximadamente 1 GiB de datos. La opción conv=fdatasync obliga a que se espere a que los datos se vacíen desde la caché al disco físico antes de terminar la prueba.

Al finalizar, dd mostrará el tiempo empleado y la velocidad media de escritura, por ejemplo algo como 65 MB/s en un HDD antiguo, o valores superiores en SSD modernos. Después de la prueba, no olvides borrar el archivo temporal:

sudo rm -f /tmp/test.dat

Ten en cuenta que este método no es un borrado seguro, es simplemente un test de rendimiento, y durante la prueba es mejor que el sistema esté lo más ocioso posible para no distorsionar los resultados.

Configuración de Advanced Power Management (APM) con -B

Una de las opciones más delicadas pero útiles de hdparm es -B, que controla el APM (Advanced Power Management) si el disco la soporta. Este ajuste influye en cómo el disco gestiona el ahorro de energía y los ciclos de parada/arranque del motor.

La sintaxis general es:

sudo hdparm -B valor /dev/sda

Los rangos de valores son algo peculiares:

  • 1-127: gestión de energía agresiva, se permite el spin-down (parada del motor).
  • 128-254: gestión menos agresiva, en principio sin parada de motor automática.
  • 255: hdparm intenta desactivar APM por completo (no todos los discos lo aceptan).

Valores muy bajos (cercanos a 1) implican más ahorro de energía pero muchos más ciclos de parada/arranque, lo que puede acortar la vida útil del disco, sobre todo en portátiles. Valores altos (por ejemplo 200 o 254) reducen esos ciclos, a costa de algo más de calor y menor autonomía de batería, y de que el disco es más vulnerable a golpes mientras gira.

Se han documentado casos de exceso de ciclos de carga/descarga del cabezal con valores mal configurados, por eso muchas guías recomiendan:

  • Entre 128 y 180 al usar batería, para un compromiso entre ahorro y desgaste.
  • Cercano a 254 cuando el equipo está enchufado si se prioriza rendimiento y menor número de ciclos.

Para ver un ejemplo práctico de ajuste:

sudo hdparm -B 200 /dev/sda

Si quieres vigilar el número de ciclos que lleva tu disco, puedes usar smartctl (del paquete smartmontools) y filtrar las líneas relevantes:

sudo apt-get install smartmontools
sudo smartctl -a /dev/sda | egrep -i "id|load"

Ahí podrás ver valores como Load_Cycle_Count, junto al campo RAW_VALUE, que cuenta los ciclos acumulados. La mayoría de discos modernos están diseñados para aguantar entre 300.000 y 600.000 ciclos antes de empezar a dar problemas.

Ajuste del tiempo de espera y modo de espera con -S

Otra opción ligada a la gestión de energía es -S, que define el tiempo de inactividad antes de que el disco entre en modo standby (spindown). Ese tiempo se codifica de forma algo enrevesada.

La sintaxis básica es:

sudo hdparm -S valor /dev/sda

El significado de los valores es este:

  • 0: desactiva completamente el spin-down automático (nunca entra en standby por inactividad).
  • 1-240: cada unidad equivale a 5 segundos; por tanto, de 5 s a 20 minutos.
  • 241-251: unidades de 30 minutos; de 30 minutos a 5,5 horas.
  • 252: 21 minutos.
  • 253: tiempo definido por el fabricante (normalmente entre 8 y 12 horas).
  • 254: reservado.
  • 255: interpretado como 21 minutos y 15 segundos.

Por ejemplo, para configurar el disco de forma que entre en modo de espera tras unos 16 minutos y 40 segundos de inactividad, se podría usar:

sudo hdparm -S 200 /dev/sda

Y para valores muy orientados a ahorro de batería, se suele sugerir 241 o 242 si no te importa que el disco tarde algo más en responder después de un periodo largo de inactividad.

Hay que tener en cuenta que un spin-down muy frecuente también añade ciclos mecánicos, así que al igual que con -B, conviene encontrar un término medio que se ajuste a tus necesidades reales.

Control del estado de energía con -C

Si quieres saber en qué estado se encuentra el disco en un momento dado, la opción -C muestra el estado actual de energía de la unidad:

sudo hdparm -C /dev/sda

El resultado suele indicar si está en active/idle, standby o sleeping. Es útil cuando estás afinando tiempos con -S o intentando entender por qué un disco tarda en reaccionar tras cierto periodo de inactividad.

Reducción de ruido y modo acústico en discos HDD

En equipos antiguos o con discos mecánicos ruidosos, puedes querer reducir el ruido de giro y acceso a costa de algo de rendimiento. Para eso existe la función de Gestión Acústica (APM acústico), controlada mediante la opción -M de hdparm.

  ¿Qué comando se utiliza para crear un directorio en linux?

Primero puedes comprobar si tu disco soporta este ajuste y ver la configuración actual con:

sudo hdparm -I /dev/sda | grep acoustic

Si hay soporte, verás un rango de valores recomendados. En general, se puede ajustar con:

sudo hdparm -M 128 /dev/sda

Un valor bajo (por ejemplo 128) suele priorizar la reducción de ruido sacrificando algo de velocidad de acceso, mientras que un valor más alto, cercano al máximo (por ejemplo 254), prioriza el rendimiento y aumenta el ruido:

sudo hdparm -M 254 /dev/sda

Si ves que el cambio se pierde al reiniciar, una solución típica es añadir el comando correspondiente a los scripts de arranque (por ejemplo en /etc/rc.local en sistemas que aún lo usan) o configurar el archivo /etc/hdparm.conf en distribuciones basadas en Debian.

Optimización de lectura: multicount y read-ahead

Además de la energía, hdparm te permite tocar ajustes de rendimiento relacionados con cómo lee el disco los sectores, lo que en ciertos casos puede dar mejoras medibles.

Con la opción -m (multicount) se define el número de sectores leídos en cada operación de E/S:

sudo hdparm -m16 /dev/sda

En este ejemplo se leen 16 sectores de golpe. Debes comprobar en la información de la unidad (mediante hdparm -I) el valor máximo que soporta tu disco, normalmente indicado como MaxMultSect, y no sobrepasarlo.

Otro ajuste interesante es el read-ahead, que hace que el disco lea por adelantado bloques secuenciales anticipando futuras lecturas. Se controla con la opción -a:

sudo hdparm -a256 /dev/sda

Activar estas opciones, junto con otros parámetros como el modo DMA o el ancho de palabra de E/S, puede dar mejoras apreciables, sobre todo en discos mecánicos o sistemas antiguos. Siempre después de cualquier cambio es recomendable volver a medir con sudo hdparm -tT /dev/sda para ver si el rendimiento mejora o empeora.

Modos DMA/PIO y acceso a 32 bits (especialmente en IDE antiguos)

En discos IDE antiguos o controladores que no se configuran de forma óptima, hdparm permite activar o desactivar DMA, ajustar el modo PIO y definir el acceso a 16 o 32 bits. En hardware moderno SATA el kernel suele gestionar esto bien, pero sigue siendo útil en ciertos casos.

Para ver y activar el modo DMA:

sudo hdparm -d1 /dev/hda

Si encuentras problemas (errores de E/S, cuelgues), puedes desactivarlo con:

sudo hdparm -d0 /dev/hda

Para fijar un modo PIO concreto, se usa -p:

sudo hdparm -p4 /dev/sda

El acceso de 32 bits se ajusta con la opción -c, y puede darte un pequeño extra de rendimiento en algunos sistemas:

sudo hdparm -c1 /dev/sda # habilita acceso de 32 bits
sudo hdparm -c3 /dev/sda # fuerza 32 bits con un modo concreto

Para el modo de acceso UDMA, puedes usar:

sudo hdparm -Xudma6 /dev/sda

Estos ajustes, aunque hoy suenen a arqueología, siguen siendo relevantes en servidores viejos o equipos reciclados donde aún hay controladoras IDE o SATA con configuración subóptima de fábrica.

Gestión de la caché de lectura y escritura

Los discos modernos disponen de caché interna de lectura y escritura que ayuda a suavizar las operaciones y mejorar el rendimiento. hdparm permite consultar y modificar el comportamiento de estas cachés.

La caché de lectura anticipada suele activarse con -A1:

sudo hdparm -A1 /dev/sda

Respecto a la caché de escritura, puedes ver y cambiar su estado con la opción -W:

sudo hdparm -W /dev/sda # muestra el estado
sudo hdparm -W1 /dev/sda # habilita la caché de escritura
sudo hdparm -W0 /dev/sda # deshabilita la caché de escritura

Activar la caché de escritura suele aumentar bastante la velocidad de escritura aparente, pero implica que si se va la luz en el momento equivocado se podrían perder datos que aún no se han vaciado al disco. Por eso, en entornos críticos se combina con SAI y mecanismos de journaling robustos, o incluso se desactiva en sistemas muy sensibles a corrupción.

Modo de solo lectura y protección contra escritura

En ciertas situaciones (por ejemplo, tareas de análisis forense o recuperación de datos) interesa proteger un disco frente a escrituras accidentales. hdparm permite cambiar el modo de acceso del dispositivo con la opción -r.

Para activar el modo de solo lectura (bloqueando escrituras):

sudo hdparm -r1 /dev/sda

Y para volver a permitir operaciones de escritura:

sudo hdparm -r0 /dev/sda

Ojo: esto no cifra ni protege los datos de forma fuerte, simplemente evita que el sistema operativo realice escrituras normales. Con privilegios suficientes y las herramientas adecuadas se podría revertir o saltar la protección, así que no lo consideres un mecanismo de seguridad definitivo.

Uso avanzado de HDParm para borrado seguro (Secure Erase en SSD y HDD)

Una de las funciones que más respeto impone es el borrado seguro ATA (SECURITY ERASE), que algunas unidades (sobre todo SSD) implementan en firmware. Con hdparm se puede invocar esa función, pero hay que hacerlo sabiendo exactamente lo que se está tocando.

El escenario típico es un usuario que quiere borrar de forma segura un SSD (por ejemplo, un Samsung 860 EVO) desde Linux, sin depender de herramientas propietarias como Samsung Magician para Windows, y se encuentra con que el disco aparece como “frozen” cuando intenta usar Secure Erase.

En un flujo generalizado, los pasos serían, grandes rasgos, estos (adaptarlos siempre a tu modelo de unidad y documentación del fabricante):

  1. Comprobar capacidades y estado de seguridad con sudo hdparm -I /dev/sdX y revisar el apartado Security (si aparece “frozen”, “enabled”, “locked”, etc.).
  2. Descongelar la unidad si está en estado “frozen”. En portátiles, a veces basta con suspender el sistema y reanudarlo; algunas BIOS permiten hacer un breve “hotplug” (desconectar y reconectar SATA) pero en un MacBook u otros equipos no es práctico ni recomendable andar toqueteando cables con el equipo encendido.
  3. Establecer una contraseña de seguridad temporal con hdparm.
  4. Lanzar el borrado seguro y esperar el tiempo especificado por el firmware.
  ¿Qué pasa si deshabilito el Administrador de tareas?

Por ejemplo, una combinación típica de comandos para un SSD no bloqueado podría ser:

sudo hdparm --user-master u --security-set-pass 123456 /dev/sdb
sudo hdparm --user-master u --security-erase 123456 /dev/sdb

Esto establece primero una contraseña (en este caso poco segura a propósito, porque solo se usará en el proceso de borrado) y luego ordena al disco que ejecute su procedimiento interno de Secure Erase, que se supone sobrescribe completamente todos los bloques gestionados por el firmware.

En algunas unidades existe también un modo “enhanced”, invocado con --security-erase-enhanced, que puede usar patrones distintos (por ejemplo, datos aleatorios) pero no todas las controladoras lo soportan.

Los riesgos son claros: si algo va mal, puedes dejar el SSD en un estado inutilizable o en el mejor de los casos perder todos los datos para siempre, que es justamente lo que se busca en un borrado seguro. Antes de dar este paso, conviene:

  • Asegurarse de tener copias de seguridad actualizadas de todo lo importante.
  • Comprobar en la documentación oficial del fabricante si soporta Secure Erase ATA y cómo recomiendan ejecutarlo.
  • Realizar los comandos desde un entorno lo más simple posible (por ejemplo, un live USB) donde el disco no esté montado ni usado por el sistema.

Una vez finalizado el proceso, puedes revisar de nuevo con sudo hdparm -I /dev/sdb el apartado de seguridad; con suerte, verás que las opciones “enabled” desaparecen o vuelven a su estado por defecto. Para una verificación rápida adicional, muchas guías recomiendan leer los primeros sectores con hexdump o similar y comprobar que no hay datos legibles.

Descongelar SSD en portátiles y escenarios complicados

En equipos como ciertos MacBook Pro, el firmware del portátil puede marcar el SSD como “frozen” nada más arrancar, precisamente para impedir que herramientas maliciosas ejecuten un Secure Erase sin tu consentimiento. Esto complica el uso de hdparm para borrar el disco sin métodos poco recomendables.

Una técnica relativamente común es poner el sistema en suspensión y reanudarlo. Algunas BIOS, al despertar, dejan el disco en estado no congelado (“not frozen”), lo que permite aplicar los comandos de seguridad ATA. Esto es lo que han comprobado muchos usuarios en Arch Linux y otras distros al inspeccionar el resultado de sudo hdparm -I /dev/sda antes y después de suspender.

Lo que no es buena idea es desconectar físicamente cables SATA con el equipo encendido si no sabes muy bien lo que haces, y desde luego en portátiles no es una opción práctica. Por eso, si tu entorno no permite descongelar el disco de forma segura, quizá sea más sensato recurrir a herramientas del fabricante o a otros métodos de sanitización de datos.

Uso de hdparm en la gestión de energía de discos de backup

Más allá del rendimiento y los borrados, hdparm es muy útil para ajustar el comportamiento de discos que solo se usan de vez en cuando, por ejemplo discos de backup internos que no necesitas tener girando todo el día.

Combinando las opciones -B y -S puedes hacer que esos discos pasen a standby cuando llevan un rato sin actividad, reduciendo ruido, consumo y desgaste mecánico. Por ejemplo, un valor de -S 200 podría hacer que el disco entre en standby tras algo más de 16 minutos de inactividad, mientras que un -B 180 podría limitar la agresividad de la gestión de energía.

Es importante que el disco no esté montado cuando apliques ciertos cambios de energía o hagas pruebas más agresivas, y en todo caso conviene vigilar los ciclos con smartctl si te preocupa el desgaste a largo plazo.

Persistencia de la configuración tras reinicio

La mayoría de ajustes hechos con hdparm no sobreviven a un reinicio, por diseño. Para mantener la configuración es necesario integrarlos en la secuencia de arranque de tu distribución.

En distros basadas en Debian/Ubuntu suele existir el archivo /etc/hdparm.conf, donde puedes definir reglas por dispositivo. También se puede recurrir a añadir comandos en /etc/rc.local (si el sistema aún lo usa) o crear unidades de systemd específicos.

Por ejemplo, una línea en un script de arranque podría ser algo como:

hdparm -A1 -d1 -p4 -c1 -m16 -Xudma6 /dev/sda

Lo sensato es no volcar en el arranque opciones que no hayas probado en frío. Ajusta, mide con hdparm -tT, comprueba estabilidad, y solo cuando estés seguro de que el sistema se comporta correctamente, tras varios reinicios, consolida la configuración.

En conjunto, hdparm es una herramienta muy completa que, usada con cabeza, te permite diagnosticar, optimizar y gestionar la energía de tus discos, además de ofrecer características avanzadas como el borrado seguro en determinadas unidades. La clave es entender qué hace cada opción y aplicar solo las que realmente necesitas, evitando convertir una utilidad potentísima en una fuente de sustos innecesarios.

uso de fstrim en linux
Artículo relacionado:
Uso de fstrim en Linux para optimizar SSD