===== Relación entre ATA ID y SATA ID y cómo comprobar la velocidad de las conexiones SATA ===== Mapear un identificador ATA (ATA ID) con el dispositivo SATA en cuestión (SATA ID) (Muy útil a la hora de saber qué disco está fallando al recibir un error especificando un ID ATA, por ejemplo con dmesg). #!/bin/bash # save original IFS OLDIFS="$IFS" for i in /sys/block/sd*; do readlink $i | sed 's^\.\./devices^/sys/devices^ ; s^/host[0-9]\{1,2\}/target^ ^ ; s^/[0-9]\{1,2\}\(:[0-9]\)\{3\}/block/^ ^' \ \ | while IFS=' ' read Path HostFull ID do # OLD line: left in for reasons of readability # IFS=: read HostMain HostMid HostSub <<< "$HostFull" # NEW lines: will now also work without a hitch on r/o environments IFS=: h=($HostFull) HostMain=${h[0]}; HostMid=${h[1]}; HostSub=${h[2]} if echo $Path | grep -q '/usb[0-9]*/'; then echo "(Device $ID is not an ATA device, but a USB device [e. g. a pen drive])" else echo $ID: ata$(< "$Path/host$HostMain/scsi_host/host$HostMain/unique_id").$HostMid$HostSub fi done done # restore original IFS IFS="$OLDIFS" sda: ata2.00 sdb: ata3.00 sdc: ata5.00 Otra forma sería listando los dispositivos scsi del sistema. cat /proc/scsi/scsi **Velocidad de la conexión SATA**. Lista de velocidades SATA REVISION => Velocidad ({Gbit|MB}/s). * SATA revision 1.0 => 1.5 Gbit/s, 150 MB/s * SATA revision 2.0 => 3 Gbit/s, 300 MB/s * SATA revision 3.0 => 6 Gbit/s, 600 MB/s * SATA revision 3.2 => 16 Gbit/s, 1969 MB/s Listar la velocidad de cada conexión SATA. dmesg | grep -i sata | grep 'link up' ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300) # Con el script anterior se obtuvieron los siguientes valores. # sda: ata2.00 (6.0 Gbps) # sdb: ata3.00 (3.0 Gbps) # sdc: ata5.00 (3.0 Gbps) # Otra manera de obtener la misma información. for i in `grep -l Gbps /sys/class/ata_link/*/sata_spd`; do echo Link "${i%/*}" Speed `cat $i`; cat "${i%/*}"/device/dev*/ata_device/dev*/id | perl -nE 's/([0-9a-f]{2})/print chr hex $1/gie' | echo " " Device `strings` | cut -f 1-3; done Link /sys/class/ata_link/link1 Speed 1.5 Gbps Device MIQC118289WL 1.00 PIONEER DVD-RW DVR-221L Link /sys/class/ata_link/link2 Speed 6.0 Gbps Device WD-WMC3F0685256 01.01A01WDC WD10EZEX-00BN5A0 tk}aA#ti AA#@ Link /sys/class/ata_link/link3 Speed 3.0 Gbps Device S0URJ9CPB07644 FH100-05SAMSUNG HD250HJ A#ti A#@ w 88 Link /sys/class/ata_link/link5 Speed 3.0 Gbps Device 9VP5ENVM CC38 ST31000528AS Ac4i tp Comprobar el tipo de dispositivo SATA y su revisión (acorde a la velocidad). hdparm -I /dev/sdb | egrep "Model|speed" Model Number: SAMSUNG HD250HJ * Gen1 signaling speed (1.5Gb/s) * Gen2 signaling speed (3.0Gb/s) hdparm -I /dev/sda | egrep "Model|speed" Model Number: WDC WD10EZEX-00BN5A0 * Gen1 signaling speed (1.5Gb/s) * Gen2 signaling speed (3.0Gb/s) * Gen3 signaling speed (6.0Gb/s) hdparm -I /dev/sdc | egrep "Model|speed" Model Number: ST31000528AS * Gen1 signaling speed (1.5Gb/s) * Gen2 signaling speed (3.0Gb/s) También puede ser de utilidad el comando smartctl, aunque a veces no muestra la información relativa a la velocidad y es necesario usar hdparm. smartctl -a /dev/sda | grep "^SATA" SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s) **Enlaces de Interés**. * [[http://serverfault.com/questions/244944/linux-ata-errors-translating-to-a-device-name]] * [[http://www.cyberciti.biz/faq/linux-command-to-find-sata-harddisk-link-speed/]]