Identification du disque dur par le numéro de port SATA

15

Comment savoir à quel numéro de port SATA de la carte mère est connecté un disque dur?

Nous voulons construire un logiciel de copie de disque dur basé sur l'identification physique de SATA.

Daxesh
la source

Réponses:

10

lsscsi --verbose fournira une sortie similaire à ceci:

[0:0:0:0]    disk    ATA      TOSHIBA THNSNH12 HTRA  /dev/sda 
  dir: /sys/bus/scsi/devices/0:0:0:0  [/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0]
[1:0:0:0]    disk    ATA      WDC WD2003FZEX-0 01.0  /dev/sdb 
  dir: /sys/bus/scsi/devices/1:0:0:0  [/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0]
[2:0:0:0]    disk    ATA      WDC WD3001FAEX-0 01.0  /dev/sdc 
  dir: /sys/bus/scsi/devices/2:0:0:0  [/sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0]
[3:0:0:0]    cd/dvd  Optiarc  DVD RW AD-7280S  1.01  /dev/sr0 
  dir: /sys/bus/scsi/devices/3:0:0:0  [/sys/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0]

qui fournit le ataNport qui peut correspondre aux informations trouvées dans le syslog. Utile si vous essayez de déterminer d'où provient une erreur.

Edit: Si which lsscsine fournit aucune sortie, vous devez l'installer:

sudo apt-get install lsscsi

Modifier davantage:

Cela va probablement sans dire, mais bien sûr, vous pouvez filtrer la sortie avec greppour localiser ce qui vous intéresse par exemple si vous trouvez une erreur comme ata4: status: { DRDY ERR }vous pourriez simplement lancer la commande

lsscsi --verbose | grep -P1 -A1 ata4 Qui produirait une sortie comme celle-ci:

[3:0:0:0]    cd/dvd  Optiarc  DVD RW AD-7280S  1.01  /dev/sr0 
  dir: /sys/bus/scsi/devices/3:0:0:0  [/sys/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0]

Ce qui indiquerait que l'appareil (Optiarc DVD RW AD-7280S sur ata4) n'était pas prêt lors de l'appel.

Ces informations devraient être suffisantes pour vous permettre de localiser le périphérique défectueux.

Elder Geek
la source
8

sudo lshw -c storage -c diskvous donne beaucoup d'informations sur vos disques durs. Par exemple:

 *-scsi:1
      physical id: 2
      logical name: scsi2
      capabilities: emulated
    *-disk
         description: ATA Disk
         product: ST31000524AS
         vendor: Seagate
         physical id: 0.0.0
         bus info: scsi@2:0.0.0
         logical name: /dev/sdb
         version: JC4B
         serial: 5VPDESM5
         size: 931GiB (1TB)
         capabilities: gpt-1.00 partitioned partitioned:gpt
         configuration: ansiversion=5 guid=d6e747d2-3e9c-47c2-865b-44f8d7cc5808 sectorsize=512
       *-volume
            description: EXT4 volume
            vendor: Linux
            physical id: 1
            bus info: scsi@2:0.0.0,1
            logical name: /dev/sdb1
            logical name: /mnt/hdd0
            version: 1.0
            serial: 2de34713-f0ee-4a12-9214-21a5431a7b7b
            size: 931GiB
            capabilities: journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
            configuration: created=2013-07-20 14:14:09 filesystem=ext4 lastmountpoint=/mnt/hdd0 modified=2013-08-29 21:29:24 mount.fstype=ext4 mount.options=rw,relatime,errors=remount-ro,data=ordered mounted=2013-08-29 21:29:24 state=mounted

Je pense que physical idvous donne le port physique auquel le disque dur est connecté (2 dans ce cas).

Cubiq
la source
2
J'ai des ports SATA numérotés: 0,1,2,3. lshw signale les identifiants physiques: 5,6,7,8. Cette réponse ne semble pas être correcte.
user14654
1
Je pense que "* -scsi: 1" du rapport lshw fait référence au port SATA 1.
user14654
n'a pas fonctionné pour moi. Le port SATA était 7, l'ID physique lshw était 9. Utilisez avec prudence!
Preexo
2
@Preexo Trylsscsi --verbose
Elder Geek
Le domaine que vous recherchez est bus info. Étant donné que la modification approfondie des réponses est déconseillée , je l'ai divisé en une réponse distincte avec un exemple plus détaillé.
2018
5

sudo apt-get install lsscsi

tech@tech:~$ lsscsi
[2:0:0:0]    disk    ATA      SAMSUNG HD040GJ/ ZG10  /dev/sda
[3:0:1:0]    disk    ATA      WDC WD3200AAJS-0 03.0  /dev/sdb
[4:0:0:0]    disk    Generic- Compact Flash    1.00  /dev/sdc
[4:0:0:1]    disk    Generic- SM/xD-Picture    1.00  /dev/sdd
[4:0:0:2]    disk    Generic- SD/MMC           1.00  /dev/sde
[4:0:0:3]    disk    Generic- MS/MS-Pro/HG     1.00  /dev/sdf

cet utilitaire vous donnera le port ATA 0 à 3.

Rahim
la source
Puis-je savoir si j'ai une carte mère Gigabyte? Si j'utilise cette commande, cela endommagera-t-il mon matériel? Parce que la façon dont vous avez écrit votre réponse sonne comme si j'endommagerais mon matériel si j'essayais tout de suite;)
Dan
Il fonctionne parfaitement bien sur les cartes mères Intel.
Journeyman Geek
fonctionne également sur les cartes Supermicro.
Tim Kennedy
1
@Rahim où est 0-3 dans votre exemple de sortie? Je vois 2,3,4
simpleuser
0

sudo lshw -c storage -c disk vous donne beaucoup d'informations sur vos disques durs.

Les bus infochamps vous donnent le port physique auquel chaque disque dur / SSD est connecté (ports 0 et 2 dans ce cas).
Notez que le nombre peut différer si votre système dispose de plusieurs contrôleurs SATA (intégrés ou via des cartes d'extension).

Par exemple:

  *-scsi:0
       physical id: 1
       logical name: scsi0
       capabilities: emulated
     *-disk
          description: ATA Disk
          product: Samsung SSD 840
          physical id: 0.0.0
          bus info: scsi@0:0.0.0
          logical name: /dev/sda
          version: BB6Q
          serial: S1DBNSAF791657P
          size: 232GiB (250GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 sectorsize=512 signature=d6cfe005
  *-scsi:1
       physical id: 2
       logical name: scsi2
       capabilities: emulated
     *-disk
          description: ATA Disk
          product: CT500MX500SSD1
          physical id: 0.0.0
          bus info: scsi@2:0.0.0
          logical name: /dev/sdb
          version: 010
          serial: 1810E132AC1E
          size: 465GiB (500GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 sectorsize=4096 signature=0007569c
n.st
la source
(Extension de la réponse de @ Cubiq au- delà de la portée de l'édition, donc en tant que réponse distincte.)
n.st