/ দেব / ডিস্ক / বাই আইডির লিঙ্কগুলি ইউদেব দ্বারা তৈরি করা হয়েছে। /Etc/udev/rules.d/50-udev.rules এ এ জাতীয় লাইন পাওয়া যাবে:
KERNEL=="sd*[!0-9]|sr*", SYSFS{ieee1394_id}=="*", ENV{ID_SERIAL}="$sysfs{ieee1394_id}", ENV{ID_BUS}="ieee1394"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", IMPORT{program}="/lib/udev/usb_id -x"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", IMPORT{program}="/lib/udev/scsi_id -g -x -s %p -d $tempnode"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", IMPORT{program}="/lib/udev/scsi_id -g -x -a -s %p -d $tempnode"
KERNEL=="nst[0-9]*|st*|sd*[!0-9]|sr*|dasd*[!0-9]|cciss?c", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
দুর্ভাগ্যক্রমে by-id
ডিভাইসের নাম থেকে এই সিমলিংকটি খুঁজে পাওয়া তুচ্ছ নয় । তবে কমপক্ষে একটি সরাসরি উপায় আছে:
$ udevinfo -q path -n /dev/sda
/block/sda
$ udevinfo -q symlink -p /block/sda
disk/by-id/scsi-SATA_KINGSTON_SVP100_31JY100MY5SK disk/by-path/pci-0000:00:11.0-scsi-0:0:0:0
একটি স্থান পৃথকীকরণ তালিকা ফিরে আসে। তাই by-id
পথ খুঁজে পাওয়া যাবে।
অথবা আপনি সরাসরি "সম্মিলিত" সিরিয়াল নম্বর পেতে পারেন:
$ udevinfo -q env -p /block/sda
ID_VENDOR=ATA
ID_MODEL=KINGSTON_SVP100S
ID_REVISION=CJR1
ID_SERIAL=SATA_KINGSTON_SVP100_31JY100MY5SK
ID_TYPE=disk
ID_BUS=scsi
ID_PATH=pci-0000:00:11.0-scsi-0:0:0:0
ইন ID_SERIAL
পর গত আন্ডারস্কোর আপনি সিরিয়াল নম্বর পেতে পারেন।
আমি যেমন দেখি যে একটি ক্রমিক সংখ্যায় বর্ণমালার অক্ষর এবং '-' (আমার কাছে এই জাতীয় এসসিএসআই এইচডিডি রয়েছে) থাকতে পারে। সিরিয়াল নম্বর সম্পর্কে কেউ কি কোনও সীমাবদ্ধতা জানেন? এটি যদি '_' থাকতে পারে তবে এই পদ্ধতিটি বুলেট প্রুফ নয়।
ID_MODEL
হিসাবে (এটা আমার মনে হচ্ছে) তার প্রথম 15 অক্ষর যোগ করা হয় কী, আরো স্পষ্ট করে সিরিয়াল নম্বর শুরুতে চিহ্নিত করতে ব্যবহার করা যেতে পারে ID_SERIAL
(দ্বারা _ 'প্রতিস্থাপিত স্পেস)।
udisks --show-info
.__ But__ এটা উল্লেখ করা আবশ্যক যে, যখন ব্যাচ মোডে বা সাধারণভাবে স্ক্রিপ্ট ব্যবহৃতudisks
উপায় তুলনায় ধীর হয়udevadm
।