आप /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
फिर, वास्तविक हार्डवेयर की पहचान करने के लिए आपको सीरियल नंबर के लिए मैप / देव / एसडीवाई करना होगा, जैसे:
$ 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 / पत्रिका देख सकता है।
/dev/sdYउपकरणों उसी क्रम में बनाए जाते हैं के रूप में ataX पहचानकर्ता में enumerated हैं 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)