Jak sprawdzić, do którego numeru portu SATA płyty głównej jest podłączony dysk twardy?
Chcemy zbudować oprogramowanie do kopiowania dysku twardego na podstawie fizycznej identyfikacji SATA.
źródło
Jak sprawdzić, do którego numeru portu SATA płyty głównej jest podłączony dysk twardy?
Chcemy zbudować oprogramowanie do kopiowania dysku twardego na podstawie fizycznej identyfikacji SATA.
lsscsi --verbose zapewni dane wyjściowe podobne do tego:
[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]
który zapewnia ataN
port, który może dopasować informacje znalezione w syslog. Przydatne, jeśli próbujesz ustalić, skąd pochodzi błąd.
Edycja: Jeśli which lsscsi
nie zawiera danych wyjściowych, musisz je zainstalować:
sudo apt-get install lsscsi
Dalsza edycja:
Prawdopodobnie jest to oczywiste, ale oczywiście możesz filtrować dane wyjściowe, grep
aby zlokalizować to, co Cię interesuje, na przykład, jeśli znajdziesz błąd, taki jak ata4: status: { DRDY ERR }
zwykłe wydanie polecenia
lsscsi --verbose | grep -P1 -A1 ata4 Który dałby wynik w ten sposób:
[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]
Co wskazywałoby, że urządzenie (Optiarc DVD RW AD-7280S na ata4) nie było gotowe po wywołaniu.
Powinno to być wystarczające informacje, aby umożliwić zlokalizowanie niesprawnego urządzenia.
sudo lshw -c storage -c disk
daje wiele informacji na temat dysków twardych. Na przykład:
*-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
Podejrzewam, że physical id
daje ci fizyczny port, do którego podłączony jest dysk twardy (w tym przypadku 2).
lsscsi --verbose
bus info
. Od obszerna edycja anwer jest zniechęcony , że mam podzielone off do odrębnej odpowiedzi o przykład bardziej dogłębne.sudo apt-get install lsscsi
to narzędzie da ci port ATA od 0 do 3.
źródło
sudo lshw -c storage -c disk
daje wiele informacji na temat dysków twardych.Te
bus info
pola daje fizyczny port każdy HDD / SSD jest podłączony do (porty 0 i 2 w tym przypadku).Należy pamiętać, że liczba może się różnić, jeśli system ma wiele kontrolerów SATA (wbudowanych lub za pomocą kart rozszerzeń).
Na przykład:
źródło