जेसी लाइट पर विभिन्न यूएसबी स्टिक फाइल सिस्टम को स्वचालित करें


18

मैं USB स्टिक fat32 को स्वचालित करने में सक्षम होना चाहता हूं और अपने रास्पबेरी पाई को रिबूट किए बिना हॉट-प्लगिंग की तरह एनटीएफएस को फ्लाई करता हूं। 2. मैंने नेटी-3 जी को जेसी-लाइट पर स्थापित किया है ।

UUID को अंदर लाना fstabएक विकल्प नहीं है क्योंकि मुझे हर डिवाइस का UUID खोजना होगा। मैं अलग-अलग USB डिवाइस को अलग-अलग फाइल-फॉर्मेट के साथ प्लग इन और अपने आप माउंट करने में सक्षम होना चाहता हूं। क्या यह संभव है?

इसके अलावा, मैं एक बार usbmountकार्यक्रम के साथ काम कर रहा था। मैं त्रुटि मिलने से पहले अपने ड्राइव को एक सेकंड के लिए एक्सेस कर सकता था transport endpoint is not connected। मैंने कार्यक्रम को फिर से स्थापित किया, लेकिन फिर मैं कभी भी उस बिंदु पर नहीं गया, यहां तक ​​कि त्रुटि के साथ भी नहीं।

जवाबों:


15

शोध के बाद मैं usbmount के साथ अपनी समस्या को ठीक कर सकता था:

Usbmount में ntfs जोड़ना

  1. के साथ usbmount स्थापित करें sudo apt-get install usbmount
  2. NTFS ड्राइवर पैकेज ntfs-3G के साथ स्थापित करें sudo apt-get install ntfs-3g

  3. के साथ usbmount फ़ाइल को खोलकर निर्दिष्ट filesystem माउंट करने के लिए usbmount कॉन्फ़िगर करें sudo nano /etc/usbmount/usbmount.conf

यहाँ पर एक रेखा कहलाती है FILESYSTEMS=""। इस लाइन में निर्दिष्ट केवल फ़ाइल सिस्टम usbmount के माध्यम से आरोहित हैं, इसलिए हम इसे इसमें बदलते हैं:FILESYSTEMS="vfat ntfs fuseblk ext2 ext3 ext4 hfsplus"

यदि आप NTFS फाइलसिस्टम माउंट करने के लिए usbmount चाहते हैं, तो ntfs और fuseblk को लाइन में जोड़ना सुनिश्चित करें । NTFS उपकरणों को कभी-कभी ntfs-3G पैकेज द्वारा fusblk के रूप में सूचीबद्ध किया जाता है, इसलिए वे दो समान हैं। मैं वास्तव में नहीं जानता कि क्यों।

इसके अलावा, यदि आप कॉन्फ़िगरेशन में फ्यूसेबल को नहीं जोड़ते हैं , तो अनप्लग किए गए NTFS डिवाइसेस स्वचालित रूप से अनमाउंट नहीं होंगे । वे माउंटेड रहेंगे और फ़ोल्डर को तब तक रखेंगे जब तक कि डिवाइस को मैन्युअल रूप से तब तक माउंट न किया जाए unmount /dev/sda1 - जब sda1 एक और वैरिएबल हो सकता है

अगला महत्वपूर्ण रेखा है 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"

इसके साथ filesystems vfat (fat32) ntfs-3G (NTFS), और fuseblk (NTFS फिर) माउंट किए जाते हैं। मुझे लगता है कि अधिकांश पैरामीटर समान रह सकते हैं। यहाँ फिर से सभी NTFS फ़ाइलें माउंट करने में सक्षम होने के लिए बस ntfs-3G (ntfs-3G जोड़ें ntfs ) और fuseblk जोड़ें । अधिक filesystems के लिए और अधिक लाइनों के साथ शुरू जोड़ने -fstype=

एनटीएफएस माउंटेड अनिल डिवाइस को अनप्लग रखें

यहां समस्या का समाधान है, जब घुड़सवार NTFS ड्राइव केवल कुछ सेकंड के लिए सुलभ है। यह फिक्स ईसाई वेनबर्गर से आता है ।

  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 in / etc / systemd / system / के साथ बनाएँ 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कि किस फोल्डर के साथ यूएसबी डिवाइस लगे हैं। डिफ़ॉल्ट रूप से वे / मीडिया / usbstick0 के लिए माउंटनेट हैं

स्रोत:

ईसाई ठीक करें

फ्यूस्ब्लक क्यों?


इस समाधान के लिए कुछ और चरणों की आवश्यकता है, मेरा उत्तर देखें।
एबियस X

2

Untermoser द्वारा उत्तर सही है, लेकिन यह usbmount कार्यक्षमता में से कुछ को तोड़ देगा।

क्योंकि वह सिस्टम इकाइयों को माउंट करने के लिए प्रक्रियाओं (एनटीएफएस को सक्षम करने के लिए) का उपयोग कर रहा है, पर्यावरण चर $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 में एक और बग भी है usbmount remove। यह माउंटपॉइंट पर लूप करता है, और जो usmount config में परिभाषित किया गया है वह अनमाउंट है। हालांकि, अगर कोई मैच मिला है, लेकिन उस सूची में नहीं है, तो ब्रेक को हटा दें और कुछ भी नहीं करें। यह विशेष रूप से महत्वपूर्ण है यदि आप एक यूएसबी के लिए कई माउंटप्वाइंट बनाते हैं, क्योंकि usbmount पहले देखता है और कुछ भी नहीं करता है।

ठीक करने के लिए, निम्नलिखित परिवर्तन की आवश्यकता है:

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

यह आंतरिक लूप के अंदर ब्रेक को स्थानांतरित करेगा (जहां सफलता की गारंटी है, और 2 कदम बाहर तोड़ें)।


1

उन लोगों के लिए जो नए स्ट्रेच (लाइट) पर काम करने की कोशिश कर रहे हैं और यह पता लगा रहे हैं कि Untermoser और AlbiusX द्वारा दिए गए उत्तर vfat ड्राइव को अनमाउंट नहीं करते हैं, आपको उनके अतिरिक्त जवाबों के अलावा इन अतिरिक्त चरणों का पालन करना होगा। :

टर्मिनल में निम्नलिखित कमांड चलाएँ:

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

यह साझा किए गए लोगों का उपयोग करने के लिए निजी फाइलसिस्टम नामस्थान के सिस्टमड-यूडव्ड डिफ़ॉल्ट व्यवहार को बदल देगा, जो कि जेसी में udev के व्यवहार के बराबर है।

( Https://unix.stackexchange.com/questions/330094/udev-rule-to-mount-disk-does-not-work/330156#330156 से साभार )


तो यह सब समस्या थी - मैं पुराने डॉक्स को देख रहा था। Linux raspberrypi 4.14.79-v7+संदर्भ के लिए, पाई पर चल रहा है
ctietze
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.