Ідентифікація жорсткого диска за номером порту SATA


15

Як дізнатись, до якого номера порту SATA материнської плати підключений жорсткий диск?

Ми хочемо створити програмне забезпечення для копіювання hdd на основі фізичної ідентифікації SATA.

Відповіді:


10

lsscsi --verbose забезпечить вихід подібний до цього:

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

який забезпечує ataNпорт, який може збігатися з інформацією, знайденою в syslog. Корисно, якщо ви намагаєтеся визначити, звідки походить помилка.

Редагувати: Якщо which lsscsiвиводу немає, вам потрібно встановити його:

sudo apt-get install lsscsi

Далі редагувати:

Це, мабуть, само собою зрозуміло, але, звичайно, ви можете відфільтрувати вихід, grepщоб знайти те, що вас цікавить, наприклад, якщо ви виявите помилку, як ata4: status: { DRDY ERR }ви могли б просто задати команду

lsscsi --вербоза | grep -P1 -A1 ata4 Що дасть такий вихід:

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

Що вказувало б на те, що пристрій (Optiarc DVD RW AD-7280S на ata4) не був готовий, коли його викликали.

Це має бути достатньо інформації, щоб ви могли знайти проблемний пристрій.


8

sudo lshw -c storage -c diskдає багато інформації про ваші жорсткі диски. Наприклад:

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

Я підозрюю physical id вам надається фізичний порт, до якого підключений жорсткий диск (2 у цьому випадку).


2
У мене порти SATA пронумеровані: 0,1,2,3. lshw повідомляє про фізичні ідентифікатори: 5,6,7,8. Ця відповідь не здається правильною.
користувач14654

1
Я думаю, що "* -scsi: 1" звіту lshw посилається на порт SATA 1.
user14654

не працювало для мене. Порт SATA був 7, фізичний ідентифікатор lshw - 9. Використовуйте з обережністю!
Preexo

2
@Preexo Trylsscsi --verbose
Elder Geek

Поле, яке ви шукаєте, є bus info. Оскільки обширне редагування анверу не перешкоджає , я розділив це на окрему відповідь з більш детальним прикладом.
n.st

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

ця утиліта надасть вам порт ATA від 0 до 3.


Чи можу я знати, чи є у мене материнська плата гігабайт? Якщо я використовую цю команду, це пошкодить моє обладнання? Тому що те, як ви написали свою відповідь, звучить так, ніби я пошкоджую обладнання, якщо спробую його зараз;)
Dan

Це добре працює на материнських платах Intel.
Подорож Гек

працює і на платах Supermicro.
Тім Кеннеді

1
@Rahim, де 0-3 у вашій вибірці? Я бачу 2,3,4
простий користувач

0

sudo lshw -c storage -c disk дає багато інформації про ваші жорсткі диски.

У bus infoполях дають вам фізичний порт , кожен HDD / SSD підключений до (портам 0 і 2 в даному випадку).
Зауважте, що кількість може відрізнятися, якщо у вашій системі є кілька контролерів SATA (на борту або через розширення).

Наприклад:

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

(Поширення відповіді @ Cubiq виходить за рамки редагування, тому як окрема відповідь.)
n.st
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.