ไม่สามารถรับไดรฟ์เครือข่าย 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ที่ถูกต้องให้ฉันรายการของโฟลเดอร์ทั้งหมดที่อยู่ในไดรฟ์เครือข่ายกล่าวว่า

อย่างไรก็ตามหลังจากรีบูต Pi เมื่อฉันcdไปยังตำแหน่งนั้นและทำงานlsอีกครั้งไม่มีอะไรอยู่ที่นั่น ฉันต้องเรียกใช้sudo mount -aอีกครั้งด้วยตนเองซึ่งจะติดตั้งไดรฟ์

ฉันได้เห็นสิ่งนี้รายงานหลายครั้งในฟอรัมอื่นและฉันทามติดูเหมือนว่าการเมานต์ใน fstab กำลังเกิดขึ้นเร็วเกินไป - ก่อนที่เครือข่ายจะจัดตั้งขึ้น ฉันพยายามที่จะใช้สิ่งที่ฉันเข้าใจ - แต่บอกตามตรงมากว่า ฉันเพิ่มลง_netdevในบรรทัดใน fstab แล้วฉันได้เพิ่มrootdelay=10ใน /boot/cmdline.txt ฉันได้ติดตั้ง networkmanager ... สิ่งนี้ไม่ได้ช่วย

ดังนั้นฉันจึงหันมาหาคุณพร้อมที่จะโยนไพออกไปนอกหน้าต่าง - ตามด้วยตัวฉันเอง ความช่วยเหลือใด ๆ ชื่นชมมาก

คำตอบ:


9

ฉันขอแนะนำให้คุณเพิ่มการเมานต์เพื่อรูทหรือผู้ใช้ crontab ของคุณ

ระบุว่าขณะนี้คุณใช้ sudo รูต crontab จะเหมาะสมที่สุด

sudo crontab -e # เพื่อแก้ไข root crontab

เพิ่มรายการ @reboot ไปยัง crontab คุณต้องการบรรทัดเช่น

@reboot (sleep 30; / bin / mount / media / disk1) &

ที่จะรอ 30 วินาทีก่อนที่จะติดตั้งดิสก์


1
ขอโทษสำหรับเวลาที่ได้รับสิ่งนี้ฉันเพิ่งมีโอกาสได้เล่นกับสิ่งนี้อีกครั้ง ฉันรู้สึกโล่งใจมากที่บอกว่าโซลูชันของคุณทำงานได้อย่างสมบูรณ์ ขอบคุณมากสำหรับความช่วยเหลือของคุณ.
Luke Twomey

การติดตั้งนี้แน่นอน แต่เราจะยกเลิกการต่อเชื่อมขั้นตอนการปิดระบบได้อย่างไร
Ciasto piekarz

14

ฉันยังมีปัญหาเดียวกันเกี่ยวกับการติดตั้งไดรฟ์เครือข่ายอัตโนมัติเมื่อบู๊ต ฉันพยายามเพิ่มmount -aคำสั่งใน/etc/rc.localหลังจากแก้ไข/etc/fstabแต่ไม่มีประโยชน์ สาเหตุที่ใช้ไม่ได้คือเครือข่ายยังไม่พร้อมก่อนที่mount -aจะดำเนินการ

ในขณะที่คนอื่น ๆ ได้กล่าวถึงปัญหานี้คือไดรฟ์ fstab นั้นเชื่อมต่อก่อนที่เครือข่ายจะหมด เพื่อที่จะให้แน่ใจว่าเครือข่ายที่มีความพร้อมในระหว่างการบูตที่มีตัวเลือกในการWait for Network at Bootraspi-config

วิ่ง

sudo raspi-config

และตั้งค่าWait for Network at Bootตัวเลือกเป็นSlow wait for network connection before completing bootและรีบูต แน่นอนเวลาบูตเครื่องอาจได้รับผลกระทบเป็นอย่างดี แต่ถ้าหากไม่สำคัญวิธีนี้สามารถใช้ได้

หลังจากรีบู๊ตคุณสามารถตรวจสอบว่าไดรฟ์เครือข่ายได้รับการติดตั้งโดยอัตโนมัติ: ตรวจสอบอย่างรวดเร็วผ่านls /media/DRIVE_NAMEหรือdf


นี่คือการแก้ไขที่ใช้งานได้กับฉันด้วยการอัปเดตล่าสุดของ rpi3 ณ เดือนพฤศจิกายน 2559
ChrisAdmin

ฉันชอบที่จะใช้/etc/rc.local mount -aวิธีแก้ปัญหา แต่อย่าลืมที่จะนอนหลับก่อน ดูคำตอบของฉันฉันเพิ่งโพสต์ที่นี่: raspberrypi.stackexchange.com/a/63690/49091
Gabriel Staples

4

อัปเดตโน้ตโดยเห็นว่าสิ่งนี้เกิดขึ้นบน Google ฉันได้รับความผิดหวังอย่างต่อเนื่องจากการติดตั้งแคปซูลเวลาสนามบินของฉัน ฉันใช้ Raspberry Pi 3B + บน Rasbian Stretch ออกมา 14 มีนาคม 2018 ด้วย GUI มาตรฐาน

นี่คือบรรทัดรหัส fstab ของฉัน:

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

มีการเปลี่ยนแปลงเล็กน้อยเกิดขึ้นตามกาลเวลา:

  1. คุณต้องเพิ่มคำสั่ง "vers = 1.0"
  2. _netdev ไม่ได้ทำอะไรกับระบบไฟล์ CFIS ทำงานได้เฉพาะกับระบบไฟล์ NFS เท่านั้น (ตามที่ระบุไว้โดย Gabriel Staples ด้านล่าง)
  3. "user =" และ "pass =" ควรเป็น "username =" และ "password =" ตามลำดับ
  4. ท้ายสุดตอนนี้มีกล่อง "รอเครือข่าย" ที่สามารถทำเครื่องหมายได้ในยูทิลิตี้การตั้งค่าคอนฟิก Raspberry Pi ซึ่งแก้ไขปัญหาการเมาต์เมื่อฉันบู๊ต

หลังจากผ่านไป 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ดูเหมือนจะไม่ทำอะไรเลยสำหรับหุ้น CIFS ทรัพยากรนี้ ( 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แก้ไขใช้งานได้อย่าลืมที่จะนอนหลับดังที่อธิบายไว้ด้านล่าง

สิ่งที่ฉันได้ทำเพื่อแก้ไขปัญหานี้ (ใน PI3 ของฉัน) คือปรับเปลี่ยน/etc/rc.localไปนอน 20 วินาที (โดยการโทร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

ในกรณีของฉันฉันซื้อRaspberry Pi 3และติดตั้งRaspbian Stretchฉันแก้ไข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

เลือกเครื่องมือแก้ไขของฉัน (nano ในกรณี y) จากนั้นเพิ่มบรรทัดนี้ที่ด้านล่าง

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

ทุกอย่างทำงานได้ดีในกรณีของฉันหลังจากรีบูตเครื่อง หวังว่าสิ่งนี้จะช่วยให้คุณออกไป

บันทึก:

หากคุณพบปัญหาใด ๆ คุณสามารถเรียกใช้:

service cron status

และจะให้คำแนะนำเกี่ยวกับสิ่งที่วิ่งและสิ่งที่ไม่


0

คุณสามารถเพิ่มแอ็ตทริบิวต์_netdevและcomment = systemd.automountใน fstab และมันก็ใช้ได้ดีสำหรับฉันเมื่อรีบูต ฉันเคยประสบปัญหาเดียวกันกับการรีบูต

\\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
คุณสามารถแก้ไขคำตอบของคุณเพื่อให้รายละเอียดที่สำคัญจากการเชื่อมโยงของคุณในกรณีของอนาคตตายเชื่อมโยง
Greenonline
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.