¿Cómo puedo saber si mi disco duro es PATA o SATA?

8

Tengo un disco duro ATA en mi computadora portátil, ejecutando Fedora 11, kernel 2.6.30.10-105.2.23.fc11.i586. Estoy buscando actualizar el disco aquí (me encantaría obtener un SSD) pero olvidé si es una interfaz ATA en serie o una interfaz ATA paralela antigua. No sirve de mucho actualizar a un SSD si es PATA ...

¿Cómo puedo saber si el disco está conectado a través de una interfaz PATA o SATA?

Josh
fuente

Respuestas:

7

Para ver la descripción del dispositivo para el controlador (suponiendo un controlador interno (PCI)), que generalmente contiene SATA para controladores SATA:

lspci -d $(cat /sys/block/sda/device/../../../vendor):$(cat /sys/block/sda/device/../../../device)

Si desea escribir menos, lspcies probable que solo navegar por la salida le dé la respuesta en una computadora portátil (muchas computadoras de escritorio tienen ambos tipos de interfaces, por lo que debería buscar la unidad que le interesa).

Si eso no le da la respuesta, para ver qué controlador está proporcionando sda(puede buscar si ese controlador es para un controlador PATA o SATA):

readlink -f /sys/block/sda/device/../../../driver
Gilles 'SO- deja de ser malvado'
fuente
¡Genial gracias! ¡El primer comando me confundió pero el segundo fue muy bien producido /sys/bus/pci/drivers/pata_amd!
Josh
@Gilles: buscando esta información en 2018, lo anterior no funciona (al menos en mi sistema Arch Linux). Las rutas no existen (sin vendorarchivo, etc.).
starfry
@starfry ¿En qué autobús está? Creo que mi respuesta funciona para cualquier núcleo Linux no antiguo, pero no funcionaría para un dispositivo que no está conectado a un controlador ATA que está en un bus PCI. Por ejemplo, no estoy seguro de si funcionaría para un SSD, dependiendo del tipo de controlador.
Gilles 'SO- deja de ser malvado'
kernel 4.15.3-2-ARCH, ejemplo de dispositivo pci-0000:00:1f.2-ata-1 . Haciendo ls /sys/block/sdc/device/../../../rendimientos ata_port firmware_node host2 link3 power uevent. Todos los discos duros giratorios normales en puertos SATA estándar en una placa base i7 2009.
Starfry
1

Actualización : Para el registro, la respuesta de @Gilles es mejor.

Si se trata de una unidad PATA (ide), la verá debajo /proc/ide. Aquí está mi unidad de DVD IDE, por ejemplo, aquí está mi salida:

$ cat /proc/ide/hdb/model 
Optiarc CDRWDVD CRX890A

Si es una unidad SATA, aparecerá debajo /proc/scsi. Puede que se sorprenda al encontrarlo en 'scsi'. Olvidé la razón exacta (voy a preguntar eso en otra pregunta), pero creo que es porque SATA usa los controladores SCSI.

Aquí hay una lista que muestra una unidad SATA en mi sistema:

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD2500AAJS-6 Rev: 01.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Stefan Lasiewski
fuente
3
Esto no siempre es confiable: dependiendo del controlador, la versión del kernel y las opciones de compilación del kernel, algunos controladores SATA pueden aparecer como ide y algunos controladores PATA pueden aparecer como scsi. Los núcleos modernos tienden a hacer que todos los controladores hablen scsi a la capa de disco genérica, y eso es lo que ves aquí.
Gilles 'SO- deja de ser malvado'
Sí, lo siento Stefan, la unidad está en la lista /proc/scsi/scsi, de hecho, mi sistema ni siquiera tiene /proc/ide... sin embargo, según la respuesta de Gilles, parece que la unidad es realmente IDE.
Josh
0

Puedes preguntarle a udev:

$ udevadm info -q property /dev/sda | grep -Ee '^ID_(BUS|ATA_SATA)='

Si sale este comando ID_ATA_SATA=1, su unidad es una unidad SATA (nativa). Si no lo hace, pero ID_BUS=atagenera salida , su unidad es una unidad PATA. Si no genera ninguno, su unidad es otra cosa.

usuario3840170
fuente
-2

lshw Te daría los detalles.

Bijit
fuente