बूट पर माउंट करने के लिए CIFS नेटवर्क ड्राइव नहीं मिल सकता है


22

मैंने अपनी सभी फ़ाइलों के साथ नेटवर्क ड्राइव तक पहुँचने के लिए fstab में एक हिस्सा जोड़ा है ... fstab ऐसा दिखता है:

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
//192.168.1.73/disk1 /media/disk1 cifs username=pi,password=raspberry,_netdev,uid=1000,gid=1000,iocharset=utf8, 0 0
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

जब मैं sudo mount -aनेटवर्क ड्राइव को सफलतापूर्वक चलाता हूं और मैं cd /media/disk1तब कर सकता हूं lsजो मुझे सही ढंग से उक्त नेटवर्क ड्राइव के सभी फ़ोल्डरों की एक सूची देता है।

हालाँकि, जब मैं cdउस स्थान पर गया और lsफिर से चलाने के लिए पाई को रिबूट करने के बाद , कुछ भी नहीं है। मुझे मैन्युअल रूप से sudo mount -aफिर से चलना होगा , जो तब ड्राइव को माउंट करता है।

मैंने इसे कई बार अन्य मंचों पर रिपोर्ट किया है, और सर्वसम्मति से लगता है कि fstab में mounts बहुत जल्दी हो रहे हैं - नेटवर्क स्थापित होने से पहले। मैंने उन चीजों को लागू करने की कोशिश की है जिन्हें मैं समझता हूं - लेकिन ईमानदारी से कहूं तो यह बहुत कुछ मेरे सिर पर है। मैंने _netdevfstab में लाइन में जोड़ा rootdelay=10है, मैंने /boot/cmdline.txt में जोड़ा है, मैंने नेटवर्कमैन स्थापित किया है ... इसमें से किसी ने भी मदद नहीं की है।

और इसलिए मैं आपके पास जाता हूं, खिड़की के बाहर पाई को फेंकने के लिए तैयार हूं - इसके बाद खुद। कोई मदद, बहुत सराहना की।

जवाबों:


9

मेरा सुझाव है कि आप आरोह को अपने रूट या अपने यूजर कॉन्टैब में जोड़ दें।

यह देखते हुए कि आप वर्तमान में sudo का उपयोग कर रहे हैं रूट crontab सबसे उपयुक्त प्रतीत होता है।

sudo crontab -e # to root crontab संपादित करना

Crontab में @reboot प्रविष्टि जोड़ें। आपको एक पंक्ति की आवश्यकता है जैसे

@reboot (नींद 30; / बिन / आरोह / मीडिया / डिस्क 1) और

डिस्क को माउंट करने से पहले 30 सेकंड तक प्रतीक्षा करनी होगी।


1
इसे प्राप्त करने में लगने वाले समय के लिए क्षमायाचना, मुझे केवल इसके साथ फिर से खेलने का मौका मिला है। आपके समाधान को पूरी तरह से काम करने के लिए मुझे बहुत राहत मिली है। आपकी मदद के लिए बहुत बहुत शुक्रिया।
ल्यूक टोमेई

यह सुनिश्चित करने के लिए mounts लेकिन हम शटडाउन पर प्रक्रियात्मक रूप से कैसे अनमाउंट करते हैं?
18-11 बजे Ciasto piekarz

14

मेरे पास बूट पर ऑटो-माउंटिंग नेटवर्क ड्राइव के बारे में भी यही मुद्दा था। मैंने एडिटिंग के बाद mount -aकमांड जोड़ने की कोशिश /etc/rc.localकी /etc/fstabलेकिन कोई फायदा नहीं हुआ। इसका कारण यह नहीं है कि mount -aनिष्पादित होने से पहले नेटवर्क तैयार नहीं है।

जैसा कि अन्य ने उल्लेख किया है कि नेटवर्क के चालू होने से पहले ही fstab ड्राइव आरोहित हो जाते हैं। यह सुनिश्चित करने के लिए कि बूट के दौरान नेटवर्क तैयार है, एक विकल्प Wait for Network at Bootहै raspi-config

रन

sudo raspi-config

और रिबूट Wait for Network at Bootकरने का विकल्प सेट करें Slow wait for network connection before completing boot। बेशक बूट अप टाइम अच्छी तरह से प्रभावित हो सकता है लेकिन अगर यह महत्वपूर्ण नहीं है, तो इस पद्धति का उपयोग किया जा सकता है।

रिबूट के बाद आप जांच सकते हैं कि नेटवर्क ड्राइव स्वचालित रूप से घुड़सवार है: त्वरित चेक के माध्यम से ls /media/DRIVE_NAMEयाdf


यह निश्चित रूप से मेरे लिए काम करने वाला फिक्स है, नवंबर 2016 के रूप में rpi3 नवीनतम अपडेट के साथ
क्रिसएडमिन

मैं /etc/rc.local mount -aसमाधान का उपयोग करना पसंद करता हूं , लेकिन पहले सोना न भूलें। मेरा जवाब देखिये मैंने अभी यहाँ पोस्ट किया है: raspberrypi.stackexchange.com/a/63690/49091
गेब्रियल स्टेपल्स

4

नोट अपडेट करें, यह देखते हुए कि यह Google पर आया है। मैं अपने हवाई अड्डे के समय कैप्सूल बढ़ते निराशा की एक ही श्रृंखला का सामना करना पड़ा। मैं रासबेरी स्ट्रेच पर रास्पबेरी पाई 3 बी + चला रहा हूं जो 14 मार्च 2018 को मानक जीयूआई के साथ जारी किया गया था।

यहाँ मेरा fstab कोड लाइन है:

//100.10.10.1/Data /mnt/timecapsule cifs username=********, password=******, vers=1.0, rw, uid=1000, iocharset=utf8, sec=ntlm 0 0

कुछ बदलाव समय के साथ हुए हैं:

  1. आपको "पद = 1.0" कथन जोड़ना होगा
  2. _netdev CFIS फाइल सिस्टम पर कुछ भी नहीं करता है, केवल NFS फाइल सिस्टम पर काम करता है (जैसा कि नीचे गेब्रियल स्टेपल्स ने नोट किया है)
  3. "उपयोगकर्ता =" और "पास =" अब क्रमशः "उपयोगकर्ता नाम =" और "पासवर्ड =" होना चाहिए
  4. अन्त में, अब "नेटवर्क के लिए प्रतीक्षा करें" बॉक्स है जिसे रास्पबेरी पाई कॉन्फ़िगरेशन उपयोगिता में टिक किया जा सकता है, जिसने बूट समस्या पर मेरे माउंट को हल किया।

2 दिनों के संघर्ष के बाद, मेरा अब अंत में मुहिम शुरू की है और बूट में ऐसा करता है!


1

इस समस्या को हल करने के लिए एक और चाल है /etc/rc.localकमांड के फ़ाइल के निचले भाग में संलग्न करना है :

mount -a

रिबूट के बाद आप यह सत्यापित कर सकते हैं कि यह कमांड टाइप करके सब ठीक है:

df -h

और आप कुछ इस तरह देखेंगे:

pi@raspberrypi ~ $ df -h
File system      Dim. Usati Dispon. Uso% Montato su
/dev/root        7,2G  6,3G    584M  92% /
devtmpfs         119M     0    119M   0% /dev
tmpfs             25M  412K     25M   2% /run
tmpfs            5,0M     0    5,0M   0% /run/lock
tmpfs             49M     0     49M   0% /run/shm
/dev/mmcblk0p1    56M   20M     37M  36% /boot
//192.168.1.1/ws 466G  452G     14G  98% /mnt/winshare  <----------

0

यह _netdevविकल्प /etc/fstabसीआईएफ शेयरों के लिए कुछ भी करने के लिए प्रतीत नहीं होता है। यह संसाधन ( https://help.ubuntu.com/community/Fstab ) यह पुष्टि करता है कि जब यह कहता है कि "_netdev - यह एक नेटवर्क डिवाइस है, तो नेटवर्क लाने के बाद इसे माउंट करें। केवल fstype nfs के साथ मान्य है "।

मैं इसको /etc/rc.localठीक करने के लिए फ़ाइल का उपयोग करना पसंद करता हूं , सोने और फिर mount -aइसके भीतर कॉल करने के बजाय, उपयोग crontabया Wait for network at bootविकल्प में raspi-config। हालांकि, /etc/rc.localकाम को ठीक करने के लिए, सोने के लिए मत भूलना, जैसा कि नीचे बताया गया है।

मैंने इस समस्या को ठीक करने के लिए (अपने पीआई 3 पर) /etc/rc.local20 सेकंड की नींद (कॉल करके sleep 20) और फिर कॉल करने के लिए संशोधित किया है mount -a। इस तरह, भले ही नेटवर्क अभी तक जुड़ा नहीं है, जब सिस्टम पहले fstab फ़ाइल को पढ़ता है, इसलिए माउंट तब विफल हो जाता है, मैं सिस्टम को यहां 20 सेकंड प्रतीक्षा करने के लिए मजबूर करता हूं (नेटवर्क से कनेक्ट होने का समय देते हुए) फिर मैं इसे mount -aफिर से कॉल करने के लिए मजबूर करता हूं fstabफ़ाइल में सभी ड्राइव माउंट करने के लिए ।

यहाँ मेरी /etc/rc.localफाइल अब कैसी दिखती है:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
#GS notes: a *minimum* of sleep 10 is required for the mount below to work on the Pi 3; it failed with sleep 5, but worked with sleep 10, sleep 15, and sleep 30
sleep 20
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  mount -a #GS: mount all drives in /etc/fstab
fi

exit 0

किया हुआ! यह अब मेरे लिए पूरी तरह से काम करता है!

संदर्भ:


0

मेरे मामले में मैंने एक रास्पबेरी पाई 3 खरीदी और रास्पियन स्ट्रेच स्थापित किया , मैंने अपने fstab को इस तरह से नेटवर्क ड्राइव की मेरी पसंदीदा व्यवस्था के साथ संपादित किया :

//172.30.0.54/mnt/anim /mnt/share/Z cifs  username=frieza,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/V /mnt/share/V cifs  username=goku,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/M /mnt/share/M cifs  username=piccolo,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/O /mnt/share/O cifs  username=drbrief,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/R /mnt/share/R cifs  username=vegeta,password=meh,uid=1000,gid=1000,vers=2.0 0 0

इसलिए जब भी मैंने इस्तेमाल किया:

sudo mount -a

Fstab में सूचीबद्ध प्रत्येक ड्राइव स्वचालित रूप से माउंट हो जाएगी, फिर मैंने इसे rc.local और कई अन्य स्थानों पर जोड़ा, ताकि मैं स्टार्टअप पर इन ड्राइवों की सामग्री का आनंद ले सकूं, लंबी कहानी छोटी, कुछ भी काम नहीं किया जब तक मैंने रूट में एक पंक्ति जोड़ने का फैसला नहीं किया। crontab द्वारा की तरह:

sudo crontab -e

मेरे संपादक को चुनो (y मामले में नैनो) फिर नीचे इस पंक्ति को जोड़ा

@reboot (sleep 20;/bin/mount -a)&

रिबूट करने के बाद मेरे मामले में सब कुछ ठीक रहा। आशा है कि यह आप लोगों की मदद करेगा।

ध्यान दें:

यदि आप किसी भी समस्या में भाग लेते हैं, तो आप हमेशा भाग सकते हैं:

service cron status

और यह आपको एक संकेत देगा कि क्या भाग गया और क्या नहीं


0

आप fnetab में _netdev और टिप्पणी = systemd.automount विशेषताएँ जोड़ सकते हैं और यह रिबूट के लिए मेरे लिए ठीक काम कर रहा है। रिबूट पर भी मुझे यही समस्या आती थी।

\\network_shared_location\directory /your_mount_location/mount_directory cifs _netdev,username=<your_username>,password=<your_password>,workgroup=<YOUR_WORKGROUP>,users,auto,user_xattr,comment=systemd.automount 0 0

-1

मुझे पता है कि यह थोड़ा देर से जवाब है, लेकिन मुझे भी यही समस्या थी और यह नेटवर्क के साथ नहीं fstabथा जब इसे बुलाया गया था। मैंने crontabपहली कोशिश की और यह ठीक काम किया लेकिन सोचा थोड़ा गड़बड़ था ...

यहाँ एक बढ़िया पोस्ट है जो स्क्रिप्ट init.dको माउंट के रूप में बूट पर चलाने के लिए उपयोग करता है ... यह अब मेरे लिए बहुत अच्छा काम कर रहा है।


1
क्या आप भविष्य में होने वाली मृत्यु के मामले में अपने लिंक से मुख्य विवरण प्रदान करने के लिए अपने उत्तर को संपादित कर सकते हैं ।
ग्रीननलाइन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.