কোনও ডেস্কটপ পরিবেশ ছাড়াই কীভাবে অপসারণযোগ্য মিডিয়াটিকে / মিডিয়া / <LABEL> স্বয়ংক্রিয়ভাবে সন্নিবেশ করা যায়?


17

আমার একটি ডেবিয়ান সিড সিস্টেম রয়েছে (হুইজি) (এবং খিলানের জন্য একই), কোনও ডেস্কটপ পরিবেশ ছাড়াই (এবং কোনও Xorg নেই)।

আমি আমার এসডি-কার্ডস, ইউএসবি স্টিকস, বাহ্যিক এইচডিডি লেবেল দ্বারা একটি নির্দিষ্ট ডিরেক্টরিতে /media/ম্যানুয়ালি mount/ umountএবং উপযুক্ত এন্ট্রিগুলিতে ম্যানুয়ালি /etc/fstabবা বুট সময় স্বয়ংক্রিয়ভাবে মাউন্ট করতে পারি , তবে এটি আমার জন্য বাধ্যতামূলক, প্রতিরোধমূলক এবং পর্যাপ্ত গতিশীল নয়: যদি আমি সেগুলিতে মাউন্ট করা চাই /media/<LABEL>, তবে প্রতিটি ডিভাইসের আলাদা আলাদা ডিভাইসের <LABEL>নিজস্ব প্রবেশের <LABEL>প্রয়োজন এবং প্রতিটি উপ-ডিরেক্টরিটি নিজে নিজে তৈরি করতে / অপসারণ করতে হবে /media/)।

সুতরাং, যা তাদের মাউন্ট করার সবচেয়ে ভাল উপায় স্বয়ংক্রিয়ভাবে মধ্যে /media/<LABEL> সন্নিবেশ এ (এবং যত তাড়াতাড়ি ফাইলসিস্টেম থেকে তাদের আন-মাউন্ট করা হিসাবে তারা সংযুক্ত হয় কোন ব্যাপার কিভাবে ঝুঁকিপূর্ণ এটা ডেটার জন্য হয় )?

আদর্শ সমাধানটি হ'ল:

  1. সনাক্ত একটি অপসারণযোগ্য মিডিয়া প্লাগ ইন করা থাকে যখন (অর্থাত যখন যোগ /dev/যেমন sdax, sdbx... দ্বারা udev)
  2. /media/এর লেবেল অনুসারে একটি ডিরেক্টরি তৈরি করুন (অপসারণযোগ্য মিডিয়া লেবেল)
  3. ডিরেক্টরির মধ্যে এটি মাউন্ট /media/<LABEL>মধ্যে RWমোড (যদি এটা ফাইলসিস্টেম সমর্থন করে) সঙ্গে flushবিকল্প (ক জন্য vfat)
  4. মিডিয়াটি প্লাগযুক্ত করা হয়েছে কিনা তা সনাক্ত করুন
  5. যদি তা হয় তবে ফাইল সিস্টেম থেকে এটি আনমাউন্ট করুন
  6. সম্পর্কিত ডিরেক্টরি মুছে ফেলুন /media/

(ডিভাইস oviously সমলয় মোডে মাউন্ট করা উচিত, কোনো ডেটার ক্ষতি এড়াতে যখন গরম ক্যাশে কারণ সংযুক্ত করতে : সম্পাদনা sync হয় উপায় জন্য খুব বেশী vfatঅপসারণযোগ্য মিডিয়া তাই flush সমঝোতার যেমন তৈরি করা হয়েছে , কম নিরাপদ syncজীবন অনুযায়ী, কিন্তু কম ঝুঁকিপূর্ণ ফ্ল্যাশ স্মৃতিচক্র)

আমি সম্পর্কে কিছু তথ্য পাওয়া autofs, HAL, udisks, udisks2, usbmountইত্যাদি, কিন্তু এটা স্পষ্ট নয় যা এক অবচিত বা পছন্দ করা হয়, এবং যাহাই হউক না কেন, আমি মূর্ত আউট নি এখন যে কাজ করতে আমার সিস্টেম তাদের সহজে কনফিগার করার পদ্ধতির, আপ ...


প্রথমত, আপনি কি অনুরূপ প্রশ্নের সন্ধান করেছেন? আমার মনে আছে এটি ইতিমধ্যে জিজ্ঞাসা করা হয়েছে। দ্বিতীয়ত, আনপল্ট করার আগে আনমাউন্টটি হওয়া উচিত।
enzotib

1
অবশ্যই আমি করেছি: ও] এখানে এবং সুপারভাইজারে। সমস্যাটি হ'ল সরঞ্জামগুলি (udisks / udev) বিবর্তিত হয়, বা অবহিত হয় (HAL?), অন্যান্য "পছন্দসই নয়" (udisks2?) ইত্যাদি, যাইহোক, আমি কোনও কার্যকরী বা পরিষ্কার সমাধান খুঁজে পাচ্ছি না। ডেস্কটপ এনভায়রনমেন্ট সিস্টেমের (জিনোম, কেডিএ বা এক্সএফসিই) উপর নির্ভর করতে আমি যা জানতে পেরেছি তার বেশিরভাগ অংশ; আমি কোনও ইনস্টল করা চাই না। আনমাউটিং সম্পর্কে, অগত্যা নয়। যদি ডিভাইসটি সেট করা থাকে sync, কোনও ডিমন এফএস থেকে ডিভাইসটিকে আনমাউন্ট করতে পারে যদি এটি সনাক্ত করে যে এটি কোনও ডেটা ক্ষতি ছাড়াই আনপ্লাগড হয়েছে। সমস্ত ডেস্কটপ distros যে না। আমি এটি টার্মিনালে চাই
cedbeu

এর জন্যhalevt এই প্রতিস্থাপনটি দেখুন । আনমাউন্ট সম্পর্কে, সাধারণত ডিই শারীরিকভাবে আনপ্লাগ করার আগে ফাইল ম্যানেজার থেকে ডিভাইসটি বের করে আনার প্রত্যাশা করে।
এনজোটিব

হ্যা, সত্য. তবে আমি দেখেছি যে কিছু (পূর্বে ব্যবহৃত) ডিমনগুলি fs থেকে ডিভাইসগুলি আনমাউন্ট করতে পারে যা আনপ্লাগিংয়ের আগে আনমাউন্ট করা হয়নি, এবং এমনকি স্বয়ংক্রিয়ভাবে তাদের সংশ্লিষ্ট ডিরেক্টরিটি / মিডিয়া / থেকে মুছে ফেলতে পারে এবং যা কিছু করার স্বাভাবিক পদ্ধতিতে থাকে (যদি ডিভাইসগুলি অবশ্যই সিঙ্ক্রোনাস হতে কনফিগার করা আছে)। আপনার লিঙ্কের জন্য আপনাকে ধন্যবাদ। আমি উডিস্কেভেটে ফিরে ঘরে ফিরামাত্রই একবার দেখতে পাব। আমি ইতিমধ্যে ডেভন এবং উডস্কির উপর নজর রেখেছি কিন্তু তারা দেবিয়ান প্যাকেজগুলিতে নেই। আমি যদি অন্য কিছু খুঁজে পাই তবে আমি এটি চেষ্টা করব তবে আমি বিশ্বাস করতে পারি না যে এটি করার কোনও দেবী সমাধান নেই।
cedbeu

1
আমি ডেবিয়ান খুব আছি এবং আমি ব্যবহার fdisk -lএবং তারপর mount- যে দুই কমান্ড, কিন্তু ঠিক আছে, আপনি চাইলে এটা automatized, আপনি বিশ্লেষণ করতে হবে fdisk -lআউটপুট, এবং তারপর এটা করা mount- আমি এই ধরনের কাপড় না head, tail, tr, cut, ইত্যাদি। তবে পেশাদাররা সাধারণত এটি awkসঠিকভাবে ডেটা সন্ধান করে বা এমনকি আরও ভাল করে। মুছে ফেলার বিষয়ে, আমি যখন মাউন্ট করি তখন আমার জন্য কমপক্ষে /mntএটি স্বয়ংক্রিয়ভাবে হয়ে যায়। ট্রিগার সম্পর্কে (যখন আপনি প্লাগ ইন করেন) আমার কোনও ক্লু নেই, তবে দয়া করে আপনি কখন এটি সমাধান করবেন তা আমাদের জানান।
ইমানুয়েল বার্গ

উত্তর:


10

আমি আপনি যা খুঁজছেন মনে pmount

আপনি যদি সন্নিবেশকরণের পরে স্বয়ংক্রিয়ভাবে মাউন্টিং চান, তবে ডিবিয়ানে অটোমোটিং ইউএসবি স্টিকগুলি দেখুন ।

যদি আপনার সিস্টেমটি udisks2 ব্যবহার করে তবে এটি অপসারণযোগ্য স্টোরেজ ডিভাইসের সন্নিবেশকে প্রতিক্রিয়া জানানো পছন্দসই উপায়। উদিস্কগুলির কনফিগারেশন টিপসের জন্য আর্ক উইকি দেখুন ।

অন্যথায়, প্রোগ্রামটি যখন কোনও নতুন ডিভাইস উপস্থিত হয় তখন প্রতিক্রিয়া জানায় তা হ'ল উদেব , সুতরাং স্বয়ংক্রিয়ভাবে মাউন্টিং একটি উদেব বিধি দ্বারা ট্রিগার করা হয়Usbmount প্যাকেজ udev 'র প্রদান করে স্বয়ংক্রিয়ভাবে USB সংগ্রহস্থল ডিভাইস এবং অন্য কয়েকজন মাউন্ট করতে। mountUdev নিয়ম থেকে কল করা FUSE ফাইল সিস্টেমের জন্য কাজ করে না (যেমন এনটিএফএস -3 জি), সুতরাং আপনার যদি প্রয়োজন হয় তবে ইউডিস্কগুলি ব্যবহার করুন।

মিডিয়াগুলি সরানো হলে আপনি স্বয়ংক্রিয়ভাবে আনমাউন্ট করতে পারবেন না কারণ কার্যকারিতা সেইভাবে কাজ করে না। মিডিয়াটি সরানোর আগে অবশ্যই আনমাউন্ট করা উচিত । কেবলমাত্র পঠনযোগ্য মিডিয়াগুলির জন্য, আপনি অপসারণের পরে আনমাউন্টিংয়ের সাথে দূরে সরে যেতে পারেন, যদিও হঠাৎ-অদৃশ্য হয়ে যাওয়া ফাইল সিস্টেমে ফাইলগুলি খোলা থাকলে এটি কিছু অ্যাপ্লিকেশনকে বিভ্রান্ত করতে পারে। লিখনযোগ্য মিডিয়াগুলির জন্য, আপনি যদি একটি মাউন্ট করা ফাইল সিস্টেমটি প্লাগ প্লাগ করেন তবে ডেটা দুর্নীতি হওয়ার সম্ভাবনা রয়েছে।


উত্তরের জন্য এক মিলিয়ন ধন্যবাদ। আমি যত তাড়াতাড়ি সম্ভব চেষ্টা করব এবং এখানকার লোকদের জানিয়ে দেব। আনমাউটিং সম্পর্কে বন্ধুরা, দয়া করে, এটি যে কারণেই নয় তা আমাকে বলা বন্ধ করুন: ও] ডিভাইসটি আনপ্লাগ করার পরে আনমাউন্টিং সঠিকভাবে ডিভাইসটি সিঙ্ক্রোনাস হওয়ার জন্য কনফিগার হওয়ার সাথে সাথে (এবং সম্ভব) তা উপলব্ধি করুন। তারপরে, এটি কেবল ফাইল সিস্টেমের বিষয়। যদি ডেটা ক্যাশে না করে স্থানান্তরিত করা হয় (সিঙ্ক্রোনাসলি), তবে আনমাউন্টিং ছাড়াই আনপ্লাগ করার কোনও সমস্যা নেই। তারপরে, আনমাউন্টিং সঞ্চালন করা যায় এবং কেবলমাত্র সেই ডিভাইসটি আর নেই তা সিস্টেমকে অবহিত করতে দরকারী।
সিডবেউ

1
@ কেব্ল্যাব আপনি ওভারস্প্লিপ্লাই করছেন। যদি কোনও ফাইল লেখার জন্য উন্মুক্ত থাকে এবং আপনি ডিভাইসটি বাইরে টানেন তবে ফাইলটি ক্ষতিগ্রস্থ হওয়ার সম্ভাবনা রয়েছে; আনমাউন্টিং নিশ্চিত করে যে কোনও ফাইল খোলা নেই। অনেক ফাইল সিস্টেমে (যদিও FAT নয়) আনমাউন্টিং নোংরা বিটটি 0 এ সেট করার চেয়ে বেশি, তাদের প্রয়োজন যেমন একটি লগ ফ্লাশ করা। ফ্ল্যাশ ডিভাইসগুলির জন্য, সিঙ্ক মাউন্টগুলির সাথে একটি বড় উদ্বেগ হ'ল এটি ডিভাইসটি খুব দ্রুত নিচে ফেলে, কারণ এটি লেখার গ্রুপিংকে বাধা দেয়। দেখুন superuser.com/questions/180722/... এবং readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html
গিলেজ 'SO- স্টপ হচ্ছে মন্দ'

হাই @ গিলস আপনার জবাবের জন্য ধন্যবাদ। যদিও আমি মনে করি না আমি ওভারসিম্প্লিফাই করছি। আপনার ঠিক কিছু বিষয় ঠিক আছে। তবে, ব্যবহারকারী সিদ্ধান্ত নেন যে তিনি ঝুঁকিপূর্ণভাবে বাঁচতে চান কিনা। আপনি সম্মত হবেন, আপনার পোস্টটি 7 বছরের পুরানো; এখন, flushবিশেষত vfatএই সমস্যাগুলি এড়ানোর জন্য ডিজাইন করা একটি মাউন্ট বিকল্প : প্রতিটি ব্লকের পরে লেখার সম্পাদনা হয় না, তবে যত তাড়াতাড়ি ডিভাইসটি নিষ্ক্রিয় বলে মনে হয়। এবং ফ্ল্যাশ স্মৃতিগুলি তাদের মৃত-জীবনের জীবনচক্রকেও ব্যাপকভাবে বৃদ্ধি করেছে। এখন, স্পষ্টতই ব্যবহারকারীকে ফাইলগুলি খোলার সময় বা অনুলিপি করার সময় (বা খুব শীঘ্রই) ডিভাইসগুলি আনপ্লাগ না করার বিষয়ে সচেতন হতে হবে। তবে এটি ভাল আপস।
সিডবেউ

যাইহোক, ইউএসবিমাউন্টটি আমার পক্ষে ভাল বিকল্প হতে পারে, তবে দুর্ভাগ্যক্রমে, এটি লেবেলের নামের উপর নির্ভর করে কোনও ফোল্ডারে ডিভাইসগুলি মাউন্ট করে না, তবে এতে /media/usb-*আমার প্রয়োজনীয়তা মেলে না। আমি ডিভাইসগুলি প্যারামিটারের /media/<DEV_LABEL>সাথে flushসনাক্ত করার পরে স্বয়ংক্রিয়ভাবে মাউন্ট করতে সক্ষম হতে চাই (ডিরেক্টরিটির গতিশীল নির্মাণের সাথে সম্ভব হলে), এবং আনমাউন্ট করতে এবং ডিরেক্টরিগুলি /media/আর সনাক্ত না করা থাকলে স্বয়ংক্রিয়ভাবে ডিরেক্টরিগুলি সরিয়ে ফেলতে সক্ষম হতে চাই । আমি যে ঝুঁকি নিই তা আমার উপর নির্ভর করে।
সিডবেউ

1
মনোযোগ দিন যা এখন usbmountথেকে এনটিএফএসকে সমর্থন করে jessieনা: বাগস.ডেবিয়ান.আর
ম্যালাত

2

আমি কীভাবে সম্প্রতি এটি করেছি তা এখানেই এবং এখন এই পদ্ধতির সাথে আমি বেশ খুশি। এটি উবুন্টু 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০ সেকেন্ড সময় শেষ হওয়ার পরে পার্টিশনটিকে আনমাউন্ট করবে ...

এখানে আসল কৌশলটি হ'ল "/ মিডিয়া / ইউএসবি" থেকে "/ মিডিয়া / অটোসব" থেকে সিমলিংক ব্যবহার করা:

  • "মিডিয়া / ইউএসবি" সিমলিংকগুলি ইউদেব দ্বারা তৈরি করা হবে, কোনও ব্যবহারকারীকে একটি সাধারণ ওভারভিউ দেবে যা ইউএসবি স্টোরেজ ডিভাইস পার্টিশনগুলি রয়েছে
  • আপনি যদি মিডিয়া / ইউএসবি এর মাধ্যমে এটি ব্যবহার করেন তবে অটোএফস দাবি অনুযায়ী পার্টিশনটি স্বয়ংক্রিয়ভাবে গণনা করবে
  • স্ক্রিপ্টযুক্ত "অটো.এসবি" ফাইলের সাহায্যে আপনি যে কোনও ধরনের ফাইল সিস্টেমকে সমর্থন করতে পারেন এবং অতিরিক্তভাবে আপনি যে কোনও নামকরণ প্রকল্পকে সমর্থন করতে সক্ষম হন।
  • এই পার্টিশনগুলি বিভিন্ন ফাইল সিস্টেমের ধরণের ব্যবহার করে এমনকি একাধিক পার্টিশন সহ ইউএসবি স্টিককে সমর্থন করে।

2

ঠিক আছে, অনেক দিন হয়ে গেছে, তবে আমি এখনও আমার সেরা প্রশ্নের সাথে আমার প্রশ্নের উত্তর দেব। করতে সংক্ষেপ: একটি তৈরি udevনিয়ম, কিছু স্ক্রিপ্ট সঙ্গে যুক্ত (যে / তৈরি করবে / Remove ডিরেক্টরি এবং জাতিসংঘের অপসারণযোগ্য ডিভাইস মাউন্ট), এবং সংযুক্ত udevডিভাইসের ইভেন্ট টাইপ = partition

1 - স্ক্রিপ্টগুলি অ্যাড / অপসারণ তৈরি করা হচ্ছে

স্ক্রিপ্ট নিম্নলিখিত সংরক্ষণ storage-automount.shকরার /lib/udev/এবং এটি এক্সিকিউটেবল করতে ( sudo chmod a+x /lib/udev/storage-automount.sh):

#!/bin/sh

# set the mountpoint name according to partition or device name
mount_point=$ID_FS_LABEL
if [ -z $mount_point ]; then
    mount_point=${DEVNAME##*/}
fi

# if a plugdev group exist, retrieve it's gid set & it as owner of mountpoint
plugdev_gid="$(grep plugdev /etc/group|cut -f3 -d:)"
if [ -z $plugdev_gid ]; then
    gid=''
else
    chown root:plugdev $mount_point
    gid=",gid=$plugdev_gid"
fi

# create the mountpoint directory in /media/ (if not empty)
if [ -n $mount_point ]; then
    mkdir -p /media/$mount_point
    # other options (breaks POSIX): noatime,nodiratime,nosuid,nodev
    mount -t $ID_FS_TYPE \
      -o rw,flush,user,uid=0$gid,umask=002,dmask=002,fmask=002 \
      $DEVNAME /media/$mount_point
fi

স্ক্রিপ্ট নিম্নলিখিত সংরক্ষণ storage-autounmount.shকরার /lib/udev/এবং এটি এক্সিকিউটেবল করতে ( sudo chmod a+x /lib/udev/storage-autounmount.sh):

#!/bin/sh

# set the mountpoint name according to partition or device name
mount_point=$ID_FS_LABEL
if [ -z $mount_point ]; then
    mount_point=${DEVNAME##*/}
fi

# remove the mountpoint directory from /media/ (if not empty)
if [ -n $mount_point ]; then
    umount -l /media/$mount_point
    rm -R /media/$mount_point
fi

2 - udevইভেন্টগুলির সাথে এই স্ক্রিপ্টগুলি সংযুক্ত করার জন্য বিধি তৈরি করা

এবং অবশেষে, একটি udevবিধি যুক্ত করুন /etc/udev/rules.d/, উদাহরণস্বরূপ 85-storage-automount.rules:

ENV{DEVTYPE}=="partition", RUN+="/lib/udev/storage-automount.sh", ENV{REMOVE_CMD}="/lib/udev/storage-autounmount.sh"

এবং এটির সেই ডিয়ার / ফোল্ডারের অন্যান্য নিয়মের মতোই অনুমতি রয়েছে make

এখন আপনি যখন স্টোরেজ ডিভাইসটি প্লাগ ইন /media/করেন তখন পার্টিশন নাম অনুসারে একটি ডিরেক্টরি তৈরি করা হবে (আমি মনে করি না তবে আমি মনে করি এটি এনটিএফএস বিভাজনের সাথেও কাজ করছে) এবং আপনার পার্টিশনটি এতে মাউন্ট হবে। plugdevআপনার সিস্টেমে কোনও গ্রুপ থাকলে এটি ব্যবহারকারীদের জন্য আর / ডাব্লু । এছাড়াও, হট আনপ্লাগিংয়ের ক্ষেত্রে ডেটা হ্রাসের ঝুঁকি সীমাবদ্ধ করার জন্য ডিভাইসগুলিকে সিঙ্ক্রোনাস মোডে মাউন্ট করা হয়।

ডিভাইসটি সরানো হলে, এটি আনমাউন্ট করা হয় এবং ডিরেক্টরিটি সরানো হয় /media

এছাড়াও, নিরীক্ষণের জন্য সরঞ্জাম udev ঘটনা udevadm monitorমত বিকল্প সহ --envবা --property:

$ udevadm monitor --env

এটি ডেবিয়ান এবং খিলান উভয় ক্ষেত্রেই পরীক্ষিত এবং সূক্ষ্মভাবে কাজ করা হয় তবে সম্ভবত নির্ভর করে এমন সমস্ত বিতরণে কাজ করে udev


আমি মনে করি যে + আর + এক্স এর পরিবর্তে এটি "এক্সিকিউটেবল সেট করে (sudo chmod + r /lib/udev/stores-autounmount.sh)"
জেরেমি

আমার একটি নতুন জেসি ইনস্টল রয়েছে যার ভিত্তিতে আমি আপনার নির্দেশগুলি খুব কাছ থেকে অনুসরণ করেছি, তবে পুনরায় চালু হওয়ার পরেও টিটি 1 থেকে স্বয়ংক্রিয় সংস্থান ঘটতে পারে না (যা আপনার নির্দেশাবলীতে নয়, তবে আমার কোনও প্রাক-পুনঃসূচনাও নেই)। ইউএসবি ড্রাইভ সন্নিবেশ করানো সনাক্ত হয়েছে (আমি কনসোল বার্তাগুলি পেয়েছি) তবে / মিডিয়াতে / (সিড্রোম ব্যতীত) কিছুই দৃশ্যমান নয়। আমি ম্যানুয়ালি ইউএসবি ড্রাইভটি মাউন্ট করতে পারি, তাই আমি জানি যে এটিও কার্যকর হয়। [নিম্নলিখিত মন্তব্যে অবিরত]
টমরোচে

[পূর্ববর্তী মন্তব্য থেকে অব্যাহত] আমি প্যাকেজ = ইউদেব ইনস্টল করেছি, ডায়ারস = {/ ইত্যাদি / ইউদেব / বিধি.ডি /, / লিবিব / উদেব /} প্রাক-জনবহুল, এবং $ PATH তে এক্সিকিউটেবল = udevadm আছে। আমি জানতে চাই (1) আপনি কি এই কাজটি করেছেন দেবিয়ান রিলিজের মধ্যে? (আমি হুইজি ধরে নিচ্ছি) (২) আপনি কি ডেবিয়ান প্যাকেজগুলি ইনস্টল করেছেন udev?
টমরোচে

@ টমরোচে ওয়া হুইজি ছিলেন, আসলে, এবং আমার কোনও বিশেষ প্যাকেজ ইনস্টল ছিল না, আমি একটি নূন্যতম সেটআপ করার চেষ্টা করছিলাম এবং সর্বনিম্ন ইনস্টল দ্বারা সরবরাহ করা হয়নি এমন প্যাকেজগুলি ব্যবহার করার চেষ্টা করা সম্ভব ছিল। আমাকে পুনঃসূচনা করার দরকার পড়েনি, কেন এটি আমার নির্দেশিকায় নেই। এটিতে অনেক দিন কেটে গেছে আমি এতে ডুবাইনি ... আমি খুব শীঘ্রই আবার চেষ্টা করতে পারি।
cedbeu

1

আমি মনে করি এটি বেশ দেরিতে তবে কারও যদি এটির প্রয়োজন হয় তবে আমি এটি পোস্ট করব: (আমার প্রথম স্ট্যাক এক্সচেঞ্জের উত্তরও)

অনেক জায়গায় সমাধানের জন্য পরীক্ষা করার পরে, আমি আর্ক উইকিতে একটি সহজ সমাধান পেয়েছি:

আর্ক উইকির লিঙ্ক ।

আমরা একটি udisks2 নিয়ম ডিফল্ট পরিবর্তন থেকে ডিরেক্টরির মাউন্ট যোগ করতে পারেন /run/media/$USER/থেকে /media/<Label>

/etc/udev/rules.d/নামের সাথে নিম্নলিখিত নিয়মটি যুক্ত করুন 99-udisks2.rules:

ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"

তারপরে আমরা স্বয়ংসম্পূর্ণতার জন্য উদিস্কির মতো একটি সাধারণ সরঞ্জাম ইনস্টল করতে পারি ।


হাই এবং এখানে স্বাগত জানাই. আপনার বিকল্পের জন্য ধন্যবাদ। উদিস্কির জন্য, আমি আসলে একটি পূর্ণ কমান্ড লাইন বিকল্প চেয়েছিলাম (কোনও জর্গ বা সিস্টেমে কোনও গ্রাফিকাল ইন্টারফেস উপলব্ধ নেই)। এবং ... প্রশ্নটি 6.5 বছর পুরানো (ow, gosh!), আমার ধারণা এখন জিনিসগুলি পরিবর্তিত হয়েছে :) তবে যাইহোক, আপনার প্রথম উত্তরের জন্য +1, আপনাকে ধন্যবাদ।
সিডবেউ

1

দয়া করে আর্কউইকি উদেব পৃষ্ঠাটি দেখুন । আপনার মৃত্যুদণ্ড কার্যকর করার কথা নয়mount উদেব বিধি থেকে বা উদেব বিধি দ্বারা কার্যকর করা স্ক্রিপ্টগুলি থেকে ।

তবে, যেমন উদেব -মিডিয়া- অটোমउंट প্রকল্পে দেখানো হয়েছে , উদেব বিধি থেকে সিস্টেমড ইউনিট আহ্বান করে এটি করা বেশ সহজ, যা পরে স্ক্রিপ্টকে মাউন্ট করে calls Udisks2 এবং অন্যান্য সমাধানগুলির বিপরীতে, ইউদেব-মিডিয়া-অটোমাউন্টটি সাধারণ ক্ষেত্রে তৈরি করা হয় যেখানে আপনি rootকোনও ডেস্কটপ পরিবেশ বা "ব্যবহারকারী সেশন" উপস্থিত হওয়ার অপেক্ষায় না রেখেই কোনও ব্যবহারকারী হিসাবে কিছু মাউন্ট করতে চান । এটি ওপি যা চাইছে ঠিক তা বলে মনে হচ্ছে এবং আমি এটি কার্যকরী এবং বুঝতে সহজ বলে মনে করেছি।


সুন্দর ধন্যবাদ আপনাকে. এটি আমি জিজ্ঞাসা করা একটি বেশ পুরানো প্রশ্ন (প্রায় 7 বছর আগে ... আমাকে আরও ছোট বোধ করে না ^^)। তবে তবুও, আমি আপনার প্রস্তাবটি একবার দেখব। আমার ধারণা, এর পরে সিস্টেম সিস্টেমটি আরও পরিপক্ক হয়ে উঠল। ধন্যবাদ, আমি এটি পরীক্ষা করে দেখব!
সিডবেউ

0

আমি / etc / fstab ফাইল সম্পাদনা করে এটি করার একটি উপায় খুঁজে পেয়েছি। একটি সাধারণ এন্ট্রি দেখে মনে হচ্ছে:

/dev/sdb1 /media/robot/hdd1 ntfs defaults 0 0

<file system> <mount point> <type> <options> <dump> <pass>


মাউন্টগুলি /etc/fstabস্বয়ংক্রিয়ভাবে বুটে মাউন্ট করা হয়।
গ্রামীণ

@ গ্রামীম, আমার একটি এসডিকার্ড রয়েছে যা আমি / ইত্যাদি / fstab এর মাধ্যমে মাউন্ট করব। পরীক্ষা হিসাবে আমি আনমাউন্টিং এবং শারীরিকভাবে আমার কম্পিউটার থেকে এসডিকার্ড অপসারণ করার চেষ্টা করেছি। আমি যাচাই করেছি যে মাউন্ট আর 'df' এর মাধ্যমে প্রদর্শিত হয় না। আমি যখন আমার এসডিকার্ডটি পুনরায় sertedোকালাম তখন মাউন্টটি আবার উপস্থিত হবে যদিও আমি স্পষ্টভাবে এটি পুনঃনির্মাণ না করি। এটি উবুন্টু 16.04 এ।
জিনো

@ জিনো, উবুন্টু কিছু সময়ের জন্য ডিফল্টরূপে অটো মাউন্টিং করেছে।
গ্রীম

@ গ্রামীম, দেখে মনে হচ্ছে উবুন্টু অটোমোন্টারটি / etc / fstab থেকে সঠিক মাউন্টটি তুলছে, যদি এটি উপস্থিত থাকে। সুতরাং, কমপক্ষে উবুন্টু ১.0.০৪-এ মাউন্টটি স্বয়ংক্রিয়ভাবে বুটে মাউন্ট হবে এবং পরবর্তীকালে ইউএসবি বন্দরে পুনরায় সন্নিবেশের পরে, যদি কোনও থাকে ..
জিনো

@ জিনো আমি উবুন্টুকে কিছুক্ষণ ব্যবহার করিনি, তবে আমি নিশ্চিত যে এটি আপনার এসডি কার্ডটি স্বয়ংক্রিয়ভাবে এফএসটিএবে যা আছে তা নির্ধারণ করে না। Fstab আধুনিক সিস্টেমগুলিতে অতিরিক্ত ডিস্কের চেয়ে মূল সিস্টেম উপাদান সেটআপ করার বিষয়ে আরও বেশি।
গ্রিমে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.