Identificazione dell'HDD per numero di porta SATA


15

Come faccio a sapere a quale numero di porta SATA della scheda madre è collegato un HDD?

Vogliamo creare un software di copia hdd basato sull'identificazione fisica di SATA.

Risposte:


10

lsscsi --verbose fornirà un output simile a questo:

[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]

che fornisce la ataNporta che può corrispondere con le informazioni trovate nel syslog. Utile se stai cercando di determinare da dove proviene un errore.

Modifica: se which lsscsinon viene fornito alcun output, è necessario installarlo:

sudo apt-get install lsscsi

Ulteriore modifica:

Questo probabilmente è ovvio, ma ovviamente puoi filtrare l'output con grepper individuare ciò che ti interessa, ad esempio se trovi un errore come ata4: status: { DRDY ERR }se potessi semplicemente emettere il comando

lsscsi --verbose | grep -P1 -A1 ata4 Che produrrebbe un output del genere:

[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]

Il che indicherebbe che il dispositivo (Optiarc DVD RW AD-7280S su ata4) non era pronto quando richiesto.

Dovrebbero essere sufficienti informazioni per permetterti di localizzare il dispositivo problematico.


8

sudo lshw -c storage -c diskti dà molte informazioni sui tuoi dischi rigidi. Per esempio:

 *-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

Ho il sospetto che physical idti dia la porta fisica a cui è collegato l'HDD (2 in questo caso).


2
Ho le porte SATA numerate: 0,1,2,3. lshw riporta gli ID fisici: 5,6,7,8. Questa risposta non sembra corretta.
user14654

1
Penso che "* -scsi: 1" del rapporto lshw si riferisca alla porta SATA 1.
user14654

non ha funzionato per me. La porta SATA era 7, lshw l'id fisico era 9. Usare con cautela!
Preexo,

2
@Preexo Trylsscsi --verbose
Elder Geek,

Il campo che stai cercando è bus info. Dato che la modifica approfondita della risposta è sconsigliata , l'ho divisa in una risposta separata con un esempio più approfondito.
n

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

questa utility ti darà la porta ATA da 0 a 3.


Posso sapere se ho una scheda madre Gigabyte? Se uso quel comando, danneggerà il mio hardware? Perché il modo in cui hai scritto la tua risposta sembra che danneggerei il mio hardware se lo provassi adesso;)
Dan

Funziona perfettamente su schede madri Intel.
Journeyman Geek,

funziona anche su schede Supermicro.
Tim Kennedy,

1
@Rahim dov'è 0-3 nel tuo output di esempio? Vedo 2,3,4
simpleuser il

0

sudo lshw -c storage -c disk ti dà molte informazioni sui tuoi dischi rigidi.

I bus infocampi forniscono la porta fisica a cui è collegato ogni HDD / SSD (porte 0 e 2 in questo caso).
Si noti che il numero può differire se il sistema dispone di più controller SATA (integrati o tramite schede di estensione).

Per esempio:

  *-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

(estensione la risposta di @ Cubiq oltre la portata della modifica, quindi come una risposta separata.)
n
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.