জেসি লাইটে বিভিন্ন ইউএসবি স্টিক ফাইল সিস্টেম অটোম্যান্ট করুন


18

আমি আমার রাস্পবেরি পাই ২ রিবুট না করে হট-প্লাগিংয়ের মতো ফ্লাইতে ইউএসবি স্টিক ফ্যাট 32 এবং এনটিএফএস স্বয়ংক্রিয় করতে সক্ষম হতে চাই I আমি জেসি-লাইটে এনটিএফএস -3 জি ইনস্টল করেছি ।

ইউআইডি লাগানো fstabকোনও বিকল্প নয় কারণ আমাকে প্রতিটি ডিভাইসের ইউআইডি খুঁজে নিতে হবে। আমি বিভিন্ন ইউএসবি ডিভাইসগুলিতে বিভিন্ন ফাইল-ফর্ম্যাটগুলি প্লাগ করতে সক্ষম হয়েছি এবং সেগুলি স্বয়ংক্রিয়ভাবে মাউন্ট করতে চাই। এটা কি সম্ভব?

এছাড়াও আমি একবার এটি usbmountপ্রোগ্রামের সাথে কাজ করে ফেলি । ত্রুটি পাওয়ার আগে আমি এক সেকেন্ডের জন্য আমার ড্রাইভ অ্যাক্সেস করতে পারি transport endpoint is not connected। আমি প্রোগ্রামটি পুনরায় ইনস্টল করেছিলাম তবে তারপরেও আমি আবার কখনও সেই জায়গায় পৌঁছতে পারি নি, এমনকি ত্রুটি দিয়েও নেই।

উত্তর:


15

প্রচুর গবেষণার পরে আমি আমার সমস্যাটি ইউএসবিউন্ট দিয়ে সমাধান করতে পারলাম:

ইউএসবিমাউন্টে এনটিএফএস যুক্ত করা হচ্ছে

  1. Usbmount এর সাথে ইনস্টল করুন sudo apt-get install usbmount
  2. এনটিএফএস চালক প্যাকেজ ইনস্টল করুন NTFS-3G সঙ্গে sudo apt-get install ntfs-3g

  3. এর সাথে ইউএসবিমাউন্ট ফাইলটি খোলার মাধ্যমে নির্দিষ্ট ফাইল সিস্টেমগুলি মাউন্ট করার জন্য ইউএসবিউন্টকে কনফিগার করুন sudo nano /etc/usbmount/usbmount.conf

এখানে একটি লাইন বলা হয় FILESYSTEMS=""। কেবলমাত্র এই লাইনে উল্লিখিত ফাইল সিস্টেমগুলি ইউএসবাউন্টের মাধ্যমে মাউন্ট করা হয়েছে, তাই আমরা এটিকে এতে পরিবর্তন করি:FILESYSTEMS="vfat ntfs fuseblk ext2 ext3 ext4 hfsplus"

আপনি usbmount এনটিএফএস ফাইল-সিস্টেম মাউন্ট করতে চান তাহলে, যোগ করতে ভুলবেন না NTFS এবং fuseblk লাইন। কখনও কখনও এনটিএফএস ডিভাইসগুলি এনটিএফএস -3 জি প্যাকেজ দ্বারা fusblk হিসাবে তালিকাভুক্ত করা হয়, সুতরাং সেগুলি দুটি একই। যদিও আমি জানি না কেন।

এছাড়াও, আপনি যদি কনফিগারেশনে ফিউজব্ল্যাক যোগ না করেন তবে আনপ্লাগড এনটিএফএস ডিভাইসগুলি স্বয়ংক্রিয়ভাবে আনমাউন্ট করবে না । তারা মাউন্ট থাকবে এবং ডিভাইসটি ম্যানুয়ালি আনমাউন্ট না করা অবধি unmount /dev/sda1 -> যেখানে এসডিএ 1 অন্য পরিবর্তনশীল হতে পারে সেগুলিতে তারা যে ফোল্ডারটি মাউন্ট করা থাকবে তা রাখবে ।

পরবর্তী গুরুত্বপূর্ণ লাইন হয় FS_MOUNTOPTIONS=""। এখানে আপনি নির্দিষ্ট করেছেন যে কোন ফাইল সিস্টেমগুলি মাউন্ট করা উচিত এবং সেগুলি কীভাবে মাউন্ট করা উচিত।

আমরা এটিকে পরিবর্তন করি: FS_MOUNTOPTIONS="-fstype=ntfs-3g,nls=utf8,umask=007,gid=46 -fstype=fuseblk,nls=utf8,umask=007,gid=46 -fstype=vfat,gid=1000,uid=1000,umask=007"

এর সাহায্যে ফাইল সিস্টেম vfat ( ফ্যাট 32 ) এনটিএফএস -3 জি (এনটিএফএস), এবং ফিউজব্ল্যাক (আবার এনটিএফএস) মাউন্ট করা হয়। আমি মনে করি বেশিরভাগ পরামিতি একই থাকতে পারে। আবার এখানে শুধু এনটিএফএস -3 জি যোগ করুন ( এনটিএফএস -3 জি এনটিএফএস নয় ) এবং ফিউজব্ল্যাক সমস্ত এনটিএফএস ফাইলগুলি মাউন্ট করতে সক্ষম হবেন। আরও ফাইল সিস্টেমের জন্য আরও লাইন দিয়ে শুরু করুন -fstype=

এনটিএফএস মাউন্ট করা অবিরত ডিভাইসটিকে প্লাগযুক্ত করা হবে

এখানে সমস্যার সমাধান রয়েছে, যখন মাউন্ট করা এনটিএফএস ড্রাইভ কেবল কয়েক সেকেন্ডের জন্য অ্যাক্সেসযোগ্য। এই সংশোধনটি ক্রিশ্চিয়ান ওয়েইনবার্গারের কাছ থেকে এসেছে ।

  1. ফাইল তৈরি করুন usbmount.rules মধ্যে /etc/udev/rules.d/ সঙ্গে sudo nano /etc/udev/rules.d/usbmount.rules

এই বিষয়বস্তু:

KERNEL=="sd*", DRIVERS=="sbp2",         ACTION=="add",  PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="sd*", SUBSYSTEMS=="usb",       ACTION=="add",  PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="ub*", SUBSYSTEMS=="usb",       ACTION=="add",  PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="sd*",                          ACTION=="remove",       RUN+="/usr/share/usbmount/usbmount remove"
KERNEL=="ub*",                          ACTION=="remove",       RUN+="/usr/share/usbmount/usbmount remove"
  1. ফাইল তৈরি করুন usbmount @ .service মধ্যে , / etc / systemd হল / সিস্টেম / সঙ্গে sudo nano /etc/systemd/system/usbmount@.service

এই বিষয়বস্তু:

[Unit]
BindTo=%i.device
After=%i.device

[Service]
Type=oneshot
TimeoutStartSec=0
Environment=DEVNAME=%I
ExecStart=/usr/share/usbmount/usbmount add
RemainAfterExit=yes

এখন রিবুট করুন এবং cat /etc/mtabইউএসবি ডিভাইসগুলি কোন ফোল্ডারে মাউন্ট করা হয়েছে তা পরীক্ষা করুন । ডিফল্টরূপে এগুলি / মিডিয়া / ইউএসবিস্টিক0-এ টানানো হয়

সূত্র:

খ্রিস্টান ফিক্স

ফুসব্লক কেন?


এই সমাধানটির আরও কয়েকটি পদক্ষেপ প্রয়োজন, আমার উত্তর দেখুন।
AbiusX

2

অ্যান্টারমোজারের উত্তরটি সঠিক, তবে এটি ইউএসবিমাউন্টের কার্যকারিতা কিছুটা ভেঙে দেবে।

যেহেতু তিনি সিস্টেমড ইউনিটগুলি মাউন্ট (এনটিএফএস সক্ষম করতে) প্রসেসের জন্য ব্যবহার করছেন, পরিবেশের ভেরিয়েবল $DEVPATHআর usbmount addকমান্ডে প্রেরণ করা হয় না , ফলস্বরূপ সিমলিংক তৈরি ব্যর্থ হয়।

এটি ঠিক করতে, নিম্নলিখিতটি চালান:

sed -i '/# Determine vendor/,/if/ s/\(.*vendor=\)/if [ -z "$DEVPATH" ]; then DEVPATH="$(udevadm info --query=path --name=\/$DEVNAME)"; fi\n\1/g' /usr/share/usbmount/usbmount

উপরের কমান্ডটি $DEVPATHএটি উপলভ্য না হলে পুনরায় তৈরি করে ।

সম্মানের সাথে, ইউএসবিমাউন্টে আরও একটি বাগ রয়েছে usbmount remove। এটি মাউন্টপয়েন্টগুলিতে লুপ করে এবং usmount কনফিগারেশনে সংজ্ঞায়িত একটি আনমাউন্ট হয়। তবে, যদি কোনও মিল খুঁজে পাওয়া যায় তবে সেই তালিকায় না থাকে, বিরতিগুলি সরান এবং কিছুই করেন না। আপনি যদি একটি ইউএসবি-র জন্য একাধিক মাউন্টপয়েন্টগুলি তৈরি করেন তবে এটি বিশেষত গুরুত্বপূর্ণ, কারণ ইউএসবিমাউন্টটি প্রথম দেখায় এবং কিছুই করে না।

ঠিক করতে, নিম্নলিখিত পরিবর্তন প্রয়োজন:

sed -i '/umount.d ||/,/break/ s/break.*//; /umount.d ||/,/done/ s/:/:\n\t\tbreak 2/' /usr/share/usbmount/usbmount

এটি বিরতিটি অভ্যন্তরীণ লুপের ভিতরে স্থানান্তরিত করবে (যেখানে সাফল্যের গ্যারান্টিযুক্ত এবং 2 ধাপ বাইরে বেরিয়ে যাবে)।


1

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

টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

sudo mkdir -p /etc/systemd/system/systemd-udevd.service.d/

এটি প্রয়োজনীয় ফোল্ডারগুলি তৈরি করবে। এর পরে, এখানে একটি কনফিড ফাইল তৈরি করুন, যেমন:

sudo nano /etc/systemd/system/systemd-udevd.service.d/shared-mount-ns.conf

এই ফাইলের অভ্যন্তরে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

[Service] MountFlags=shared

এটি শেয়ারডগুলিকে ব্যবহার করার জন্য প্রাইভেট ফাইল সিস্টেমের নেমস্পেসগুলির সিস্টেমড-উদেবদের ডিফল্ট আচরণ পরিবর্তন করবে, যা জেসিতে ইউদেবের আচরণের সমতুল্য।

( Https://unix.stackexchange.com/questions/330094/udev-rule-to-mount-disk-does-not-work/330156#330156 থেকে উত্সাহিত )


সুতরাং এই সমস্যাটি সবই ছিল - আমি পুরানো ডক্সের দিকে তাকিয়ে ছিলাম। চলমান Am Linux raspberrypi 4.14.79-v7+, পাই এর জন্য রেফারেন্স
ctietze
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.