যদিও ইউআইডিগুলি সরাসরি উদেব দ্বারা অ্যাক্সেসযোগ্য না হয়, কমপক্ষে ফেডোরা এবং উবুন্টুতে সেগুলি পরিবেশের ভেরিয়েবল ( ENV) হিসাবে সেট করা থাকে । আপনি কল করে কোনও ডিভাইসের সমস্ত পরিবেশের ভেরিয়েবলগুলি পড়তে পারেন udevadm info /dev/sdc। যেমন একটি বহিরাগত ড্রাইভে এনটিএফএসের জন্য আমি পাই:
$ udevadm info /dev/sdc2
P: /devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host7/target7:0:0/7:0:0:0/block/sdc/sdc2
N: sdc2
[…]
E: ID_FS_TYPE=ntfs
E: ID_FS_USAGE=filesystem
E: ID_FS_UUID=4A6F2ABC1232FA37
[…]
একটি সঙ্গে সবকিছু E:সামনে একটি এনভায়রনমেন্ট ভেরিয়েবল হিসাবে সেট করা হয়।
ইউআইডি-র বিরুদ্ধে মিলছে
আপনি এর সাথে ম্যাচ করতে পারেন ENV{ID_FS_UUID}=="4A6F2ABC1232FA37"। প্রথম ফিল্টার হিসাবে আমি মেলেছি KERNEL=="sd?2"তা নিশ্চিত করার জন্য যে আমি কেবলমাত্র সঠিক পার্টিশন নম্বর দিয়ে ব্লক ডিভাইসগুলি পরিচালনা করছি। সম্পূর্ণ নিয়মটি এর মতো দেখায়:
KERNEL=="sd?2", ENV{ID_FS_UUID}=="4A6F2ABC1232FA37", RUN+="/usr/bin/logger --tag my-manual-usb-mount Mounting the device with UUID 4A6F2ABC1232FA37", RUN+="/usr/bin/mount [Your mount options here]"
লগার কমান্ডটি নিয়মটি আসলে চালিত হয়েছে তা দৃ to়তার জন্য কার্যকর। পরবর্তী আপনার পরীক্ষা করা উচিত যে নিয়মে কোনও সিনট্যাক্স ত্রুটি নেই udevadm test /dev/sdc2। আপনার নিয়ম ফাইল আউটপুট তালিকাভুক্ত করা উচিত এবং এর পরে কোনও ত্রুটি বার্তা প্রদর্শিত হবে না। এখন আপনি আপনার ডিভাইস কিনা আপনার নিয়ম কাজ করে পরিকল্পনা চেক করতে জন্য সব নিয়ম করা যাবে: sudo udevadm trigger /dev/sdc2। যদি আপনার বিধিটি মিলে যায় তবে আপনি সিস্টেম লগ ( /var/log/syslogবা মাধ্যমে journalctl -b) কাস্টম লগ বার্তাটি খুঁজে পাবেন ।
সম্পাদনা: ali_m নির্দেশ করেছে যে পরিবেশের ভেরিয়েবলগুলি পূর্ববর্তী বিধি দ্বারা সেট করা থাকে এবং কেবলমাত্র যদি আপনার .rulesফাইলে পর্যাপ্ত উচ্চতর ডিক্সিকোগ্রাফিক ক্রম থাকে তবে অ্যাক্সেসযোগ্য । "60" দিয়ে শুরু করা যথেষ্ট হবে। এক নজরে পূর্বনির্ধারিত নিয়মগুলি থেকে আলাদা করতে ব্যক্তিগতভাবে আমি আমার নিয়মগুলি "জেডজেড" দিয়ে শুরু করি (যদি সম্ভব হয়)।
RUNকমান্ড এবং অন্য কোথাও ইউআইডি ব্যবহার করে
উদেবের বেশ শক্তিশালী ভেরিয়েবল এবং অ্যাট্রিবিউট সাবস্টিটিউশন সিনট্যাক্স রয়েছে । বিশেষত প্রতিটি $env{ID_FS_UUID}ঘটনাকেই ড্রাইভের ইউআইডি দিয়ে প্রতিস্থাপন করা হবে। সুতরাং আপনার অধীনে কোনও ডিভাইস মাউন্ট /media/UUIDকরতে এই বিধিটি ব্যবহার করতে পারেন:
KERNEL=="sd??", RUN+="/usr/bin/mkdir /media/$env{ID_FS_UUID}", RUN+="/usr/bin/mount $devpath /media/$env{ID_FS_UUID}"
পরিবর্তে আপনি সম্ভবত ইউডিস্কগুলি কনফিগার করতে চান, তবে এটি যে সমস্যার জায়গাটি আপনি সমাধান করতে চান তার জন্য এটি বিশেষায়িত। একটি সূচনা পয়েন্ট হিসাবে https://wiki.archlinux.org/index.php/udisks#udisks2:_mount_to_.2Fmedia দেখুন ।
/etc/fstabUdev বা udisks এর পরিবর্তে ডিভাইসগুলি মাউন্ট করার ক্ষেত্রে আমার আসল ব্যবহারের ক্ষেত্রটি হল zfs ফাইল সিস্টেমগুলি মাউন্ট করা যা কিছু আইডিয়োসিগ্র্যাসিগুলিকে স্বাভাবিক সরঞ্জামগুলিতে পুরোপুরি ফিট করে না।