Bạn có thể tìm thấy thiết bị / dev / sdY tương ứng thông qua di chuyển qua /sys
cây:
$ find /sys/devices | grep '/ata[0-9]\+/.*/block/s[^/]\+$' \
| sed 's@^.\+/\(ata[0-9]\+\)/.\+/block/\(.\+\)$@\1 => /dev/\2@'
Với một giao dịch hiệu quả hơn /sys
(xem lsata.sh ):
$ echo /sys/class/ata_port/ata*/../../host*/target*/*/block/s* | tr ' ' '\n' \
| awk -F/ '{printf("%s => /dev/%s\n", $5, $NF)}'
Ví dụ đầu ra từ hệ thống 2 đĩa:
ata1 => /dev/sda
ata2 => /dev/sdb
Sau đó, để xác định đáng tin cậy phần cứng thực tế, bạn cần ánh xạ / dev / sdY đến số sê-ri, ví dụ:
$ ls /dev/disk/by-id -l | grep 'ata.*sd[a-zA-Z]$'
lssci
Các lssci
tiện ích cũng có thể được sử dụng để lấy các bản đồ:
$ lsscsi | sed 's@^\[\([^:]\+\).\+\(/dev/.\+\)$@\1,\2@' \
| awk -F, '{ printf("ata%d => %s\n", $1+1, $2) }'
Lưu ý rằng phép liệt kê lsscsi có liên quan bắt đầu từ 0 trong khi phép liệt kê ata bắt đầu từ 0.
Nhật ký hệ thống
Nếu không có gì khác hoạt động, người ta có thể nhìn vào nhật ký / nhật ký để lấy bản đồ.
Các /dev/sdY
thiết bị được tạo theo cùng thứ tự với số nhận dạng ataX được liệt kê trong kern.log
khi bỏ qua các thiết bị không phải đĩa (ATAPI) và các liên kết không được kết nối.
Do đó, lệnh sau sẽ hiển thị ánh xạ:
$ grep '^May 28 2' /var/log/kern.log.0 | \
grep 'ata[0-9]\+.[0-9][0-9]: ATA-' | \
sed 's/^.*\] ata//' | \
sort -n | sed 's/:.*//' | \
awk ' { a="ata" $1; printf("%10s is /dev/sd%c\n", a, 96+NR); }'
ata1.00 is /dev/sda
ata3.00 is /dev/sdb
ata5.00 is /dev/sdc
ata7.00 is /dev/sdd
ata8.00 is /dev/sde
ata10.00 is /dev/sdf
(Lưu ý rằng ata4 không được hiển thị vì các thông báo nhật ký ở trên là từ một hệ thống khác.)
Tôi đang sử dụng /var/log/kern.log.0
và không phải /var/log/kern.log
vì các thông điệp khởi động đã được xoay. Tôi grep May 28 2
vì đây là lần khởi động cuối cùng và tôi muốn bỏ qua các tin nhắn trước đó.
Để xác minh ánh xạ, bạn có thể thực hiện một số kiểm tra thông qua việc nhìn vào đầu ra của:
$ grep '^May 28 2' /var/log/kern.log.0 | \
grep 'ata[0-9]\+.[0-9][0-9]: ATA-'
May 28 20:43:26 hn kernel: [ 1.260488] ata1.00: ATA-7: SAMSUNG SV0802N, max UDMA/100
May 28 20:43:26 hn kernel: [ 1.676400] ata5.00: ATA-5: ST380021A, 3.19, max UDMA/10
[..]
Và bạn có thể so sánh đầu ra này với hdparm
đầu ra, ví dụ:
$ hdparm -i /dev/sda
/dev/sda:
Model=SAMSUNG SV0802N [..]
(sử dụng hạt nhân 2.6.32-31)