En mi último post hablé de cómo usar una Raspberry Pi Zero para monitorizar un SAI Salicru con NUT y Telegram, evitando esos molestos unsafe shutdowns que tanto dañan los SSD o las SD cards.
Todo empezó curioseando en webs de segunda mano. Ya sabéis cómo va: vendedores que aseguran que el disco está en perfectas condiciones e incluso adjuntan capturas de pantalla de tests de salud. Pero, ¿os fiáis? Yo prefiero hacer las pruebas por mi cuenta y salir de dudas. En Wallapop, por ejemplo, tienes 48 horas para revisar el producto, así que hay tiempo de sobra para comprobar la verdad.
En esta ocasión, voy a testear un SSD Kingston A400 de 240GB conectado por USB 3.0 a mi Raspberry Pi 5. Mi objetivo: saber si está sano, si es rápido y si está bien configurado.
Hoy os cuento el proceso paso a paso: desde identificar el adaptador USB-SATA hasta medir la velocidad real y consultar la salud interna con SMART. Estos comandos son oro puro si usas el SSD para boot, un NAS casero o backups, y quieres exprimir tu Pi sin sorpresas.
¿Por qué molestarse en hacer esto?
- Saber si tu SSD (o HDD) está sano: Evitas perder datos por fallos silenciosos (bad blocks, sectores reasignados, desgaste excesivo).
- Medir rendimiento real: Muchos enclosures USB baratos limitan a 30-50 MB/s o caen a USB 2.0. Con UASP bien configurado, un SSD SATA puede volar a 300-400 MB/s en Pi 5.
- Detectar problemas de hardware: Chipset malo (Realtek vs ASMedia), alimentación inestable, cables defectuosos o quirks del kernel.
- Beneficios prácticos: Boot mucho más rápido que microSD, menos corrupción de filesystem, alertas tempranas si la vida del SSD baja, y tranquilidad total (sobre todo si usas el Pi 24/7).
1. Lista todos los dispositivos USB conectados.
En mi caso:
vigilante@raspberrypi:~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 04d9:0006 Holtek Semiconductor, Inc. Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 002: ID 14b0:0206 StarTech.com Ltd. SA400S37240G
→ Identifica el VID:PID del adaptador (14b0:0206 es StarTech con chipset ASMedia ASM105x, de los mejores). Si ves Realtek (0bda:xxxx), ojo, pueden ser más problemáticos.
2. Muestra el árbol USB con drivers y velocidades.
vigilante@raspberrypi:~ $ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/2p, 480M
|__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 001: Dev 003, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 002: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/2p, 480M
/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 001: Dev 002, If 0, Class=Mass Storage, Driver=uas, 5000M
Velocidades de transferencia: Al final de cada línea verás algo como 5000M (5 Gbps/USB 3.0), 480M (480 Mbps/USB 2.0) o incluso 10G (USB 3.1 Gen 2).
Drivers (Controladores): Te indica qué driver está gestionando el dispositivo (por ejemplo, usb-storage o el deseado uas para mayor velocidad en SSDs).
¡UASP activo! Esto es lo que queremos: bajo uso CPU, mejor rendimiento secuencial. Si ves «usb-storage» en vez de «uas», es más lento y usa más CPU.
3. Identifica el disco.
«Antes de tocar nada, necesitamos saber quién es quién. Usamos lsblk para ver de forma clara el modelo y tamaño de nuestros discos, y fdisk para confirmar los detalles técnicos y sectores del sistema. Es el primer paso para no equivocarnos de unidad al formatear o testear.»
lsblk -o NAME,SIZE,TYPE,MODEL (El DNI del disco)
lsblk significa List Block Devices. Es la forma más limpia y moderna de ver qué tienes conectado.
- ¿Para qué sirve? Para identificar rápidamente qué letra tiene tu disco (
sda,sdb, etc.) y qué particiones hay dentro. - ¿Qué significan las opciones? Con
-ole pedimos que solo nos muestre lo que nos interesa:- NAME: El nombre técnico (ej.
sda). - SIZE: Cuánto espacio tiene.
- TYPE: Si es un disco entero (
disk) o una partición (part). - MODEL: La marca y modelo real (aquí es donde verás si tu SSD es un Kingston, un Samsung, etc.).
- NAME: El nombre técnico (ej.
- Ventaja: No necesita permisos de superusuario (
sudo) y la salida es muy fácil de leer.
vigilante@raspberrypi:~ $ lsblk -o NAME,SIZE,TYPE,MODEL
NAME SIZE TYPE MODEL
loop0 2G loop
sda 223,6G disk KINGSTON SA400S37240G
├─sda1 512M part
└─sda2 223,1G part
zram0 2G disk
sudo fdisk -l | grep -i disk (La Radiografía técnica)
fdisk es una herramienta clásica y potente para manejar tablas de particiones.
- ¿Para qué sirve? Muestra detalles mucho más técnicos que
lsblk, como el número exacto de sectores, el identificador del disco y el tamaño en bytes exactos. - ¿Por qué usamos el
grep -i disk? Si lanzassudo fdisk -la secas, te saldrá una lista larguísima de todas las particiones, sectores de inicio, fin, etc. Al filtrar congrep, le decimos: «Solo enséñame las líneas que resuman la información de los discos físicos». - Ventaja: Te da el tamaño exacto en bytes (útil para clonar discos) y te confirma si el disco tiene un esquema de particiones válido (GPT o DOS).
vigilante@raspberrypi:~ $ sudo fdisk -l | grep -i disk
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram4: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram5: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram6: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram7: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram8: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram9: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram10: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram11: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram12: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram13: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram14: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/loop0: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk /dev/sda: 223,57 GiB, 240057409536 bytes, 468862128 sectors
Disk model: SA400S37240G
Disklabel type: dos
Disk identifier: 0xc7a2c28e
Disk /dev/zram0: 2 GiB, 2147483648 bytes, 524288 sectors
Esto confirma que /dev/sda es mi SSD (no la SD de boot ni zram).
4. Instalar herramientas.
sudo apt update
sudo apt install hdparm smartmontools
Las herramientas necesarias para la monitorio son:- hdparm para tests de velocidad- smartmontools para SMART (salud del disco).
5. El Autodiagnóstico: Obligando al SSD a decir la verdad
A veces, un vendedor de segunda mano puede haber «reseteado» los contadores SMART o simplemente el disco aún no ha registrado un fallo que acaba de ocurrir. Para eso usamos el Short Self-Test.
Ejecuta este comando para iniciar un chequeo instantáneo:
sudo smartctl -t short -d sat /dev/sda
Nota: Este comando no te dará el resultado al instante. Solo le da la orden al disco y te devuelve el control de la terminal. Es como pedir cita en el médico: la orden está dada, pero el examen lleva su tiempo (normalmente 1 o 2 minutos).
Este comando es una buena opción para mirar los atributos, porque obliga al disco a trabajar en ese momento. Si hay un fallo físico inminente, el test se detendrá y te avisará. Es la forma más rápida de saber si el SSD que tienes en las manos es fiable.
¿Cómo sé si ha terminado? Tienes que consultar el log después de que pase ese tiempo usando el comando:
sudo smartctl -l selftest -d sat /dev/sda
Este comando arroja sobre mi disco la siguiente información:
vigilante@raspberrypi:~ $ sudo smartctl -l selftest -d sat /dev/sda
smartctl 7.4 2023-08-01 r5530 [aarch64-linux-6.12.62+rpt-rpi-2712] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 9098 -
¿Cómo leer el log de autodiagnóstico? (Self-test)
Esto es lo que debes mirar:
- Status: «Completed without error». Esta es la clave. Significa que el disco ha analizado sus componentes internos, la electrónica y la superficie de las celdas de memoria y no ha encontrado fallos físicos.
- Remaining: «00%». Indica que el test ha terminado por completo, si hay otro valor, espera y lanza el comando otra vez para ver si terminó.
- LifeTime(hours): «9098». Es el momento exacto en la vida del disco en el que se hizo el test.
- LBA_of_first_error: «-«. Si aquí aparece un número, es la dirección del sector donde el disco ha fallado. Al aparecer un guion, confirmamos que el disco está limpio.
Ese comando tiene dos variantes de test:
- short: Tarda 1-2 minutos y revisa lo más crítico.- long: Puede tardar 1 hora o más porque lee cada una de las celdas del disco. Para una compra de Wallapop, con elshortsuele ser suficiente, pero si el disco es muy grande y tienes tiempo, ellonges la seguridad total.
5.1 Test de velocidad de escritura. (Test de Estrés)
hdparm mide lectura, pero los SSD fallan al escribir. Crea un archivo de prueba de 1GB para ver si la velocidad se mantiene estable:
dd if=/dev/zero of=./testfile bs=1G count=1 oflag=dsync
- Resultado OK: Velocidad constante (ej. 200-350 MB/s para SATA).
- Resultado sospechoso: Si empieza rápido y cae de golpe a 15-20 MB/s, las celdas están muy castigadas.
Para mi caso:
vigilante@raspberrypi:~ $ dd if=/dev/zero of=./testfile bs=1G count=1 oflag=dsync
1+0 records in
1+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 4,03518 s, 266 MB/s
Resultado es excelente! , esos 266 MB/s de escritura real (y con el flag dsync, que fuerza a que el dato se escriba físicamente antes de terminar) confirman que tu SSD y tu adaptador USB están trabajando a un nivel de rendimiento altísimo para una Raspberry Pi.
Para un SSD SATA conectado por USB en una Raspberry Pi, es prácticamente el límite de lo que el hardware puede dar. Tienes un conjunto de disco y controladora muy sólido.
5.2 Test de velocidad de lectura real (sin caché)
Mi resultado:
vigilante@raspberrypi:~ $ sudo hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 1026 MB in 3.02 seconds = 339.63 MB/sec
¡Brutal! para un SSD SATA en USB 3.0 en Pi 5. El Kingston A400 nativo hace ~500 MB/s, pero con overhead USB + enclosure, 340 MB/s es top. Si sale <100 MB/s → problema (cable, chipset, alimentación, o sin UASP).
6. ¿Soporta TRIM?
Si compras un pack de SSD + Carcasa USB, necesitas saber si el conjunto permite el comando TRIM.
El soporte de TRIM depende tanto del disco como del adaptador usb-to-sata. Si uno de ellos no es compatible, el otro tampoco lo será.
Compruébalo así:
vigilante@raspberrypi:~ $ lsblk --discard
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
loop0 0 4K 4G 0
sda 0 0B 0B 0
├─sda1 0 0B 0B 0
└─sda2 0 0B 0B 0
zram0 0 16K 2T 0
Fíjate en las columnas DISC-ALN y DISC-MAX. Si aparecen ceros, el adaptador USB no es compatible con TRIM o el SSD es muy antiguo. En una Pi, esto es clave para que el sistema no se degrade.
Sin TRIM, la Raspberry Pi no podrá decirle al SSD qué bloques están libres, y con el tiempo el disco se volverá lento como una tortuga.
7. Muestra TODA la info SMART.
A veces compras un disco en Aliexpress o en tiendas de segunda mano, te venden un «Samsung 870» metido en una carcasa genérica, pero dentro hay un disco chino de marca blanca.
Existe un comando con dos variantes que nos dará una rápida o extensa información del disco
sudo smartctl -i -d sat /dev/sda (Información de identidad)
La -i viene de Info.
- Qué hace: Solo te dice qué es el disco.
- Qué verás: Marca, modelo, número de serie, versión del firmware y si el SMART está activado o no.
- Cuándo usarlo: Cuando solo quieres confirmar que el disco que te han vendido es el modelo real y no un «cambiazo» (lo que hablábamos de Wallapop).
sudo smartctl -a -d sat /dev/sda (Análisis total)
La -a viene de All (Todo).
- Qué hace: Muestra todo lo que el disco sabe de sí mismo. Incluye la información de la
-i, pero añade lo más importante:- Atributos SMART: Los contadores de vida, horas de encendido, errores de lectura y los famosos sectores reasignados (ID 05/196).
- Resumen de Salud: El veredicto «PASSED» o «FAILED».
- Estadísticas de temperatura: Mínimas y máximas históricas.
- Cuándo usarlo: Siempre que quieras diagnosticar o saber si el disco está sano.
Este comando nos dará un rápido resumen de la identidad real del disco:
vigilante@raspberrypi:~ $ sudo smartctl -i -d sat /dev/sda
smartctl 7.4 2023-08-01 r5530 [aarch64-linux-6.12.62+rpt-rpi-2712] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Phison Driven SSDs
Device Model: KINGSTON SA400S37240G
Serial Number: 60026B7785211E3B
LU WWN Device Id: 5 0026b7 785211e3b
Firmware Version: SBFKB1H5
User Capacity: 240.057.409.536 bytes [240 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
TRIM Command: Available
Device is: In smartctl database 7.3/5528
ATA Version is: ACS-3 T13/2161-D revision 4
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Fri Mar 13 18:05:54 2026 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Mira donde pone Device Model. Si el vendedor dice que es un Kingston y el comando dice «Netac» o «KingSpec», te están intentando engañar.
Si vas a quedar con alguien de Wallapop, llévate tu Raspberry Pi, un PowerBank y estos comandos anotados. En 5 minutos sabrás si el SSD es una ganga o una estafa.
Veamos la información completa del disco (salud interna):
vigilante@raspberrypi:~ $ sudo smartctl -a -d sat /dev/sda
smartctl 7.4 2023-08-01 r5530 [aarch64-linux-6.12.62+rpt-rpi-2712] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Phison Driven SSDs
Device Model: KINGSTON SA400S37240G
Serial Number: 60026B7785211E3B
LU WWN Device Id: 5 0026b7 785211e3b
Firmware Version: SBFKB1H5
User Capacity: 240.057.409.536 bytes [240 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
TRIM Command: Available
Device is: In smartctl database 7.3/5528
ATA Version is: ACS-3 T13/2161-D revision 4
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Mon Mar 9 19:15:15 2026 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (65535) seconds.
Offline data collection
capabilities: (0x11) SMART execute Offline immediate.
No Auto Offline data collection support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
No Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 2) minutes.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x0032 100 100 000 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 9090
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 154
148 Unknown_Attribute 0x0000 100 100 000 Old_age Offline - 0
149 Unknown_Attribute 0x0000 100 100 000 Old_age Offline - 0
167 Write_Protect_Mode 0x0000 100 100 000 Old_age Offline - 0
168 SATA_Phy_Error_Count 0x0012 100 100 000 Old_age Always - 0
169 Bad_Block_Rate 0x0000 100 100 000 Old_age Offline - 17
170 Bad_Blk_Ct_Lat/Erl 0x0000 100 100 010 Old_age Offline - 0/12
172 Erase_Fail_Count 0x0032 100 100 000 Old_age Always - 0
173 MaxAvgErase_Ct 0x0000 100 100 000 Old_age Offline - 67 (Average 51)
181 Program_Fail_Count 0x0032 100 100 000 Old_age Always - 0
182 Erase_Fail_Count 0x0000 100 100 000 Old_age Offline - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
192 Unsafe_Shutdown_Count 0x0012 100 100 000 Old_age Always - 149
194 Temperature_Celsius 0x0022 024 048 000 Old_age Always - 24 (Min/Max 17/48)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
199 SATA_CRC_Error_Count 0x0032 100 100 000 Old_age Always - 0
218 CRC_Error_Count 0x0032 100 100 000 Old_age Always - 0
231 SSD_Life_Left 0x0000 094 094 000 Old_age Offline - 94
233 Flash_Writes_GiB 0x0032 100 100 000 Old_age Always - 7476
241 Lifetime_Writes_GiB 0x0032 100 100 000 Old_age Always - 4094
242 Lifetime_Reads_GiB 0x0032 100 100 000 Old_age Always - 11006
244 Average_Erase_Count 0x0000 100 100 000 Old_age Offline - 51
245 Max_Erase_Count 0x0000 100 100 000 Old_age Offline - 67
246 Total_Erase_Count 0x0000 100 100 000 Old_age Offline - 392144
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
Selective Self-tests/Logging not supported
The above only provides legacy SMART information - try 'smartctl -x' for more
Lo más interesante de mi disco
- Overall-health self-assessment test result: PASSED → Perfecto.
- 9 – Power_On_Hours: 9090 (~1 año encendido).
- 192 – Unsafe_Shutdown_Count: 149 → Apagados bruscos (lo solucioné con el SAI + NUT del post anterior).
- 196 – Reallocated_Event_Count: 0 → Ningún sector malo reasignado.
- 231 – SSD_Life_Left: 94% → Aún le queda 94% de vida (TBW ~80 TB, yo ~4 TB escritos).
- 194 – Temperature_Celsius: 24 (Max 48) → Fresco.
- 169 – Bad_Block_Rate : 17 → indica el porcentaje de bloques que salieron defectuosos de fábrica o se han marcado como malos.
- 241 – Lifetime_Writes_GiB: 4094 (~4.1 TB escritos). El bridge USB (StarTech) pasa SMART completo → gran ventaja vs enclosures baratos que lo truncan.
¿Qué aprendí y recomendaciones?
- Mi combo Kingston A400 240GB + enclosure StarTech (ASMedia UAS) es ganador: rápido, estable, SMART full y salud excelente.
- Si usas SSD USB en Pi → prioriza chipsets ASMedia (ASM1153/1053), evita Realtek baratos si puedes.
- Alimentación: Usa powered hub o fuente externa para HDD/SSD grandes.
- Monitorea periódicamente: Pon un cron mensual con
smartctl -ay alerta por Telegram si vida <80% o temp >55°C. - Beneficio final: Boot Pi en 10-15s vs 30-60s en microSD, apps más fluidas, menos corrupción, y sabes exactamente cómo está tu hardware.
- ⚠️ El aviso de «Sectores Reasignados»
Dependiendo de la marca de tu SSD, este valor puede llamarse de varias formas. Es el contador de sectores que han muerto y que el disco ha tenido que sustituir por otros de «reserva»:
En la mayoría (Samsung, Crucial, etc): Busca el ID 05 (Reallocated Sector Count).
En discos como el mío (Kingston/Phison): Busca el ID 196 (Reallocated Event Count).
Lo importante: En la columnaRAW_VALUE, el número debe ser 0. Si ves un 10, un 50 o un 100, ese disco está empezando a morir físicamente. ¡No lo compres! - El ID 169 (Bad_Block_Rate). Este es otro chivato muy bueno, Mi valor es
17. En muchos SSD de gama media/baja, esto indica el porcentaje de bloques que salieron defectuosos de fábrica o se han marcado como malos. Mientras el ID 196 esté en 0, el disco ha gestionado bien esos fallos, pero si ese número sube de repente, mala señal.
Si estás montando un NAS, media center o server casero con Raspberry Pi, haz estos tests YA. Te ahorras disgustos y descubres si tu setup vuela o cojea.
¿Has probado boot desde SSD USB? ¿Qué velocidades te salen? ¡Cuéntame en comentarios!
Próximo post: script para alertas automáticas de SMART por Telegram.
¡Un saludo, linuxetes! 🚀🔧