web-dev-qa-db-fra.com

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

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

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

15
Daxesh

lsscsi --verbose fournira une sortie similaire à celle-ci:

[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 port ataN 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 lsscsi ne fournit aucun résultat, vous devez l'installer:

Sudo apt-get install lsscsi

Nouvelle édition:

Cela va probablement de soi, mais vous pouvez bien sûr filtrer la sortie avec grep pour localiser ce qui vous intéresse, par exemple si vous trouvez une erreur comme ata4: status: { DRDY ERR } vous pouvez simplement émettre 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 le périphérique (Optiarc DVD RW AD-7280S sur ata4) n'était pas prêt lorsqu'il a été appelé.

Cela devrait être suffisant pour vous permettre de localiser le périphérique en difficulté.

9
Elder Geek

Sudo lshw -c storage -c disk vous donne beaucoup d'informations concernant 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 soupçonne que physical id vous indique le port physique auquel le disque dur est connecté (2 dans ce cas).

8
Cubiq

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 les ports ATA 0 à 3.

4
Rahim

Sudo lshw -c storage -c disk vous donne beaucoup d'informations concernant vos disques durs.

Les champs bus info vous donnent le port physique auquel chaque disque dur/SSD est connecté (ports 0 et 2 dans ce cas).
Notez que le numéro 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
0
n.st