আমি কীভাবে সম্প্রতি এটি করেছি তা এখানেই এবং এখন এই পদ্ধতির সাথে আমি বেশ খুশি। এটি উবুন্টু 12.04 + জেনেটোর জন্য, তবে আমার মনে হয় যে কোনও ডিস্ট্রো, যা ইউদেব ইনস্টল করতে দেয় এবং অটোফগুলি কাজ করা উচিত।
পূর্বশর্ত: আপনার কাছে udev + অটোফ ইনস্টল করতে হবে।
ধাপ 1)
নিম্নলিখিত "/etc/udev/rules.d/90-usbsd-auto.rules" ফাইলটি তৈরি করুন (অবশ্যই ".rules" দিয়ে শেষ হওয়ার পরে আপনি কোনও নাম ব্যবহার করতে পারেন)। :
# Add symlink /dev/usbdisks/<label> to /dev/sd[a-z][1-9]
# if partition has a label
# Add symlink /media/usb/<label> to /media/autousb/<label>
# for automounter support
ACTION=="add", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}=="?*", \
SYMLINK+="usbdisks/$env{ID_FS_LABEL_ENC}", MODE:="0660", \
RUN+="/bin/rm /media/usb/$env{ID_FS_LABEL_ENC}", \
RUN+="/bin/ln -sf /media/autousb/$env{ID_FS_LABEL_ENC} /media/usb/$env{ID_FS_LABEL_ENC}"
# Fallback: If partition has a NO label, use kernel name (sd[a-z][1-9])
ACTION=="add", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}!="?*", \
SYMLINK+="usbdisks/%k", MODE:="0660", \
RUN+="/bin/rm /media/usb/%k", \
RUN+="/bin/ln -sf /media/autousb/%k /media/usb/%k"
# Some FileSystems emit a "change" event when they are unmounted.
# UDEV seems to delete the device symlink in this case :-(
# So we need to re-create it here
ACTION=="change", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}=="?*", \
SYMLINK+="usbdisks/$env{ID_FS_LABEL_ENC}", MODE:="0660"
# Fallback: If partition has NO label, use kernel name
ACTION=="change", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}!="?*", \
SYMLINK+="usbdisks/%k", MODE:="0660"
# When device is removed, also remove /media/usb/<label>
ACTION=="remove", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}=="?*", \
RUN+="/bin/rm /media/usb/$env{ID_FS_LABEL_ENC}"
# Fallback: If partition has no label, remove /media/usb/%k
ACTION=="remove", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}!="?*", \
RUN+="/bin/rm /media/usb/%k"
এটি কী করে: এটি দুটি সিমলিংক তৈরি করে, একটি "/ dev / usbdisks / <...>" এর অধীনে ইউএসবি স্টোরেজ ডিভাইস বিভাজনের জন্য। এটি কোনও লেবেল না থাকলে USB স্টোরেজ পার্টিশনের লেবেল বা কার্নেলের নাম ব্যবহার করবে। দ্বিতীয় সিমলিংকটি "/ মিডিয়া / ইউএসবি / <...>" থেকে "/ মিডিয়া / অটোসব / <...>" এ লিঙ্ক করবে এটি স্বতঃআপনার সমর্থনের জন্য করা হয়েছে (দ্বিতীয় পদক্ষেপ দেখুন)।
দ্রষ্টব্য: আমি মূলত আইডি_এফএস_এলএবেল_ইএনসি ভেরিয়েবলগুলির সাথে বিধিগুলি ব্যবহার করি নি, যেহেতু এটি আমার মতে বিপজ্জনক। আপনি যদি একই লেবেল ব্যবহার করেন এমন দুটি ইউএসবি স্টিক প্লাগ করেন তবে কী হবে?
তবে পোস্টারটি বিশেষত ইউএসবি ডিস্কের লেবেলটি ব্যবহার করতে চেয়েছিল, তাই আমি সেই অনুযায়ী নিয়মগুলি সংশোধন করেছি।
নিশ্চিত হয়ে নিন যে উদেব এই নিয়মগুলি ব্যবহার করেছেন
sudo udevadm control --reload-rules
এই udev নিয়মের সাথে ফাইলটি ইউএসবি স্টোরেজ ডিভাইস বিভাজনটিকে স্বতঃআপনার জন্য সেটআপ করা হয়। যদিও এখনই তা লক্ষ করুন, ডিভাইসটি স্বয়ংক্রিয়ভাবে (ইচ্ছাকৃতভাবে) চালিত হবে না। এটি একবার ব্যবহার করার পরে এটি স্বয়ংক্রিয়ভাবে চলে যাবে
ধাপ ২)
স্বতঃআমাউন্ট / মিডিয়া / অটোসব / <...> এ অটোফ সেটআপ করুন: আমি আমার "/etc/auto.master" ফাইলটিতে (উবুন্টু 12.04 এর জন্য) নিম্নলিখিত লাইনটি যুক্ত করেছি:
/media/autousb /etc/auto.usb --timeout=60
এর অর্থ অটোএফএস 60 সেকেন্ডের নিষ্ক্রিয়তার পরে ডিভাইসটিকে আনমাউন্ট করবে। আপনি আপনার স্বাদের উপর নির্ভর করে কম বা বেশি ব্যবহার করতে চাইতে পারেন।
জেন্টুর জন্য আপনাকে "/etc/autofs/auto.master" পরিবর্তন করতে হবে যাতে এটি ব্যবহারে বোধ হয়
/media/autousb /etc/autofs/auto.usb --timeout=60
এখন আমি নিম্নলিখিত বিষয়বস্তু দিয়ে "Auto.usb" তৈরি করেছি:
#!/bin/bash
key=${1}
fstype=$(/sbin/blkid -o value -s TYPE /dev/usbdisks/${key})
if [ "${fstype}" = "vfat" ] ; then
echo "-fstype=vfat,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}"
exit 0
fi
if [ "${fstype}" = "ntfs" ] ; then
echo "-fstype=fuse.ntfs-3g,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}"
exit 0
fi
if [ "${fstype}" = "ext4" ] ; then
echo "-fstype=ext4,sync,nocheck :/dev/usbdisks/${key}"
exit 0
fi
exit 1
এই Auto.usb এক্সিকিউটেবল হওয়া দরকার, যাতে অটোফগুলি এটি (ব্যাশ) স্ক্রিপ্ট হিসাবে ব্যবহার করে। উদাহরণস্বরূপ
sudo chmod 0755 /etc/auto.usb
এটি কী করে: এই স্ক্রিপ্টটি অটোএফএসকে (/ usr / sbin / automount) কীভাবে USB স্টোরেজ ডিভাইস পার্টিশনটি মাউন্ট করবেন তা জানায় will
স্ক্রিপ্টটি প্রথমে "/ sbin / blkid" ব্যবহার করবে পার্টিশনে কোন ধরণের ফাইল সিস্টেম রয়েছে তা সন্ধান করার জন্য।
স্ক্রিপ্টটি ডিভাইস বিভাজনের উপর নির্ভর করে সঠিক মাউন্ট বিকল্পগুলি সরবরাহ করবে।
দ্রষ্টব্য: আমি "ভিফ্যাট" (সম্ভবত ইউএসবি কাঠির জন্য খুব সাধারণ), "এনটিএফএস" এবং "এক্সএফএস" ফাইল সিস্টেমের জন্য নমুনা কোডটি অন্তর্ভুক্ত করেছি। অবশ্যই আরও ফাইল সিস্টেমগুলিকে সমর্থন করার জন্য এটি প্রসারিত করা বেশ সহজ।
পদক্ষেপ 3) ...চ্ছিক ... আপনার "স্টিক (গুলি) (বা আপনার ইউএসবি স্টিকের পার্টিশন) আনমাউন্ট করতে" বের করতে "= / sbin / usbeject এর অধীনে একটি স্ক্রিপ্ট তৈরি করুন:
#!/bin/bash
killall -s SIGUSR1 /usr/sbin/automount
এই স্ক্রিপ্টের সাহায্যে আপনি সমস্ত মাউন্ট করা ইউএসবি ডিভাইস পার্টিশন আনমাউন্ট করতে "sudo usbeject" ব্যবহার করতে পারেন (সেগুলি আনমাউন্ট করার জন্য অটোমাউন্টকে বলে)।
অবশ্যই আপনি নিশ্চিত করতে পারেন যে পার্টিশনটি কোথাও ব্যবহার করা হয়নি; অটোমোন্টারটি the০ সেকেন্ড সময় শেষ হওয়ার পরে পার্টিশনটিকে আনমাউন্ট করবে ...
এখানে আসল কৌশলটি হ'ল "/ মিডিয়া / ইউএসবি" থেকে "/ মিডিয়া / অটোসব" থেকে সিমলিংক ব্যবহার করা:
- "মিডিয়া / ইউএসবি" সিমলিংকগুলি ইউদেব দ্বারা তৈরি করা হবে, কোনও ব্যবহারকারীকে একটি সাধারণ ওভারভিউ দেবে যা ইউএসবি স্টোরেজ ডিভাইস পার্টিশনগুলি রয়েছে
- আপনি যদি মিডিয়া / ইউএসবি এর মাধ্যমে এটি ব্যবহার করেন তবে অটোএফস দাবি অনুযায়ী পার্টিশনটি স্বয়ংক্রিয়ভাবে গণনা করবে
- স্ক্রিপ্টযুক্ত "অটো.এসবি" ফাইলের সাহায্যে আপনি যে কোনও ধরনের ফাইল সিস্টেমকে সমর্থন করতে পারেন এবং অতিরিক্তভাবে আপনি যে কোনও নামকরণ প্রকল্পকে সমর্থন করতে সক্ষম হন।
- এই পার্টিশনগুলি বিভিন্ন ফাইল সিস্টেমের ধরণের ব্যবহার করে এমনকি একাধিক পার্টিশন সহ ইউএসবি স্টিককে সমর্থন করে।