Comment savoir si mon disque dur est PATA ou SATA?

8

J'ai un disque dur ATA dans mon ordinateur portable, exécutant Fedora 11, noyau 2.6.30.10-105.2.23.fc11.i586. Je cherche à mettre à niveau le disque ici (j'adorerais obtenir un SSD) mais j'ai oublié s'il s'agit d'un ATA série ou d'une ancienne interface ATA parallèle. La mise à niveau vers un SSD n'est pas très utile si c'est PATA ...

Comment savoir si le disque est connecté via une interface PATA ou SATA?

Josh
la source

Réponses:

7

Pour voir la description du périphérique du contrôleur (en supposant un contrôleur interne (PCI)), qui contient généralement SATA pour les contrôleurs SATA:

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

Si vous voulez taper moins, le simple fait de parcourir la sortie de lspcivous donnera probablement la réponse dans un ordinateur portable (de nombreux ordinateurs de bureau ont les deux types d'interfaces, vous devrez donc rechercher le lecteur qui vous intéresse).

Si cela ne vous donne pas la réponse, pour voir quel pilote fournit sda(vous pouvez alors vérifier si ce pilote est pour un contrôleur PATA ou SATA):

readlink -f /sys/block/sda/device/../../../driver
Gilles 'SO- arrête d'être méchant'
la source
Super merci! La première commande m'a confondu mais la seconde a bien produit /sys/bus/pci/drivers/pata_amd!
Josh
@Gilles - En cherchant ces informations en 2018, ce qui précède ne fonctionne pas (au moins sur mon système Arch Linux). Les chemins n'existent pas (pas de vendorfichier, etc.).
Starfry
@starfry Sur quel bus est-il? Je pense que ma réponse fonctionne pour tout noyau Linux non ancien, mais cela ne fonctionnerait pas pour un périphérique qui n'est pas connecté à un contrôleur ATA qui se trouve sur un bus PCI. Par exemple, je ne sais pas si cela fonctionnerait pour un SSD, selon le type de contrôleur.
Gilles 'SO- arrête d'être méchant'
noyau 4.15.3-2-ARCH, exemple d'appareil pci-0000:00:1f.2-ata-1 . Faire des ls /sys/block/sdc/device/../../../rendements ata_port firmware_node host2 link3 power uevent. Tous les disques durs à rotation normale sur les ports SATA standard sur une carte mère 2009 i7.
Starfry
1

Mise à jour : Pour mémoire, la réponse @Gilles est meilleure.

S'il s'agit d'un lecteur PATA (ide), vous le verrez sous /proc/ide. Voici mon IDE DVD-Drive, par exemple, voici ma sortie:

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

S'il s'agit d'un disque SATA, il apparaîtra sous /proc/scsi. Vous pourriez être surpris de le trouver sous «scsi». J'oublie la raison exacte (je vais poser cette question dans une autre question), mais je pense que c'est parce que SATA utilise les pilotes SCSI.

Voici une liste montrant un disque SATA sur mon système:

$ 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
la source
3
Ce n'est pas toujours fiable: selon le pilote, la version du noyau et les options de compilation du noyau, certains pilotes SATA peuvent apparaître comme ide et certains pilotes PATA peuvent apparaître comme scsi. Les noyaux modernes ont tendance à ce que chaque pilote parle scsi à la couche de disque générique, et c'est ce que vous voyez ici.
Gilles 'SO- arrête d'être méchant'
Ouais, désolé Stefan, le lecteur est répertorié sous /proc/scsi/scsi, en fait mon système n'a même pas /proc/ide... pourtant selon la réponse de Gilles, il semble que le lecteur soit en fait IDE.
Josh
0

Vous pouvez demander à udev:

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

Si cette commande sort ID_ATA_SATA=1, votre disque est un disque SATA (natif). Si ce n'est pas le cas, mais qu'il produit ID_BUS=ata, votre lecteur est un lecteur PATA. S'il ne produit ni l'un ni l'autre, votre lecteur est autre chose.

user3840170
la source
-2

lshw vous donnerait les détails.

Bijit
la source