คุณสามารถค้นหาอุปกรณ์ / dev / sdY ที่เกี่ยวข้องผ่านการสำรวจแผนผัง/sys
:
$ find /sys/devices | grep '/ata[0-9]\+/.*/block/s[^/]\+$' \
| sed 's@^.\+/\(ata[0-9]\+\)/.\+/block/\(.\+\)$@\1 => /dev/\2@'
ด้วยการแวะ/sys
ผ่านที่มีประสิทธิภาพมากขึ้น(cf. lsata.sh ):
$ echo /sys/class/ata_port/ata*/../../host*/target*/*/block/s* | tr ' ' '\n' \
| awk -F/ '{printf("%s => /dev/%s\n", $5, $NF)}'
ตัวอย่างเอาต์พุตจากระบบดิสก์ 2:
ata1 => /dev/sda
ata2 => /dev/sdb
จากนั้นสำหรับการระบุฮาร์ดแวร์จริงที่เชื่อถือได้คุณต้องแมป / dev / sdY กับหมายเลขซีเรียลเช่น:
$ ls /dev/disk/by-id -l | grep 'ata.*sd[a-zA-Z]$'
lssci
lssci
ยูทิลิตี้นอกจากนี้ยังสามารถนำมาใช้เพื่อการทำแผนที่:
$ lsscsi | sed 's@^\[\([^:]\+\).\+\(/dev/.\+\)$@\1,\2@' \
| awk -F, '{ printf("ata%d => %s\n", $1+1, $2) }'
โปรดทราบว่าการนับ lsscsi ที่เกี่ยวข้องเริ่มจาก 0 ในขณะที่การแจงนับ ata เริ่มจาก 0
syslog
หากไม่มีสิ่งใดที่ใช้งานได้เราสามารถดู syslog / journal เพื่อรับการแม็พ
/dev/sdY
อุปกรณ์ที่สร้างขึ้นในลำดับเดียวกับที่ตัวระบุ ataX ที่มีการแจกแจงในkern.log
ขณะที่ละเว้นอุปกรณ์ที่ไม่ใช่ดิสก์ (ATAPI) และการเชื่อมโยงไม่ได้เชื่อมต่อ
ดังนั้นคำสั่งต่อไปนี้แสดงการแมป:
$ 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
(โปรดทราบว่า ata4 ไม่ปรากฏขึ้นเนื่องจากข้อความบันทึกด้านบนมาจากระบบอื่น)
ฉันกำลังใช้งานอยู่/var/log/kern.log.0
และไม่ใช่/var/log/kern.log
เพราะข้อความการบู๊ตถูกหมุนไปแล้ว ฉันต้องการMay 28 2
เพราะนี่เป็นเวลาบูตครั้งสุดท้ายและฉันต้องการที่จะไม่สนใจข้อความก่อนหน้า
เพื่อตรวจสอบการทำแผนที่คุณสามารถทำการตรวจสอบบางอย่างผ่านการดูผลลัพธ์ของ:
$ 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
[..]
และคุณสามารถเปรียบเทียบผลลัพธ์นี้กับhdparm
ผลลัพธ์เช่น:
$ hdparm -i /dev/sda
/dev/sda:
Model=SAMSUNG SV0802N [..]
(ใช้เคอร์เนล 2.6.32-31)