CIFS เมานต์ผ่าน fstab ไม่ได้ติดตั้งตอนบูต


20

ฉันมีการแชร์ CIFS บน NAS ของฉันที่ฉันต้องการติดตั้งตอนบูต - มันถูกใช้โดยเซิร์ฟเวอร์ MythTV ของฉันเป็นแหล่งเก็บข้อมูลหลัก ฉันได้เพิ่มรายการเข้าไปfstabเพื่อให้มันเมานต์ แต่ก็ไม่ได้ ปรากฏว่าหลังจากfstabอ่านบันทึกของระบบแล้วจะถูกอ่านก่อนที่อินเทอร์เฟซเครือข่ายของฉันจะออนไลน์ มีการแก้ไขใด ๆ ที่ฉันสามารถทำกับfstabรายการที่จะแก้ไขสิ่งนี้หรือไม่?

fstabรายการสำหรับการติดตั้งส่วนแบ่งเป็น:

\\192.168.0.26\mythtv\media  /media/mybooklive  cifs  username=user,password=pass,umask=002,uid=136,gid=144,iocharset=utf8   0       0

มันติดได้ดีหลังจากบูตเมื่อฉันออกsudo mount -aและไม่มีปัญหาอื่น ๆ กับมัน

ขอบคุณ!


2
หากเซิร์ฟเวอร์กำลังใช้งาน Ubuntu เป็นไปได้ว่าคุณต้องการ a / ค่อนข้างเป็น \ - "//192.168.0.26/mythtv/media" ดูwiki.ubuntu.com/MountWindowsSharesPermanently
Panther

@ bodhi.zazen มันอาจจะมี / เมื่อฉันป้อนมัน แต่ตอนนี้มันอ่านออกด้วย \
douggro

ตรวจสอบไวยากรณ์ (/ vs \) ใน fstab
Panther

@ bodhi.zazen ฉันค่อนข้างมั่นใจว่าบทความ wiki เป็นสิ่งที่ฉันติดตามเมื่อทำการตั้งค่า ฉันจะตรวจสอบไวยากรณ์ภายหลังเมื่อฉันมีเวลานั่งกับเซิร์ฟเวอร์ของฉัน
douggro

1
@ bodhi.zazen โปรดแปลงความคิดเห็นของคุณเป็นคำตอบ - เปลี่ยน \ เป็น / แก้ไข
douggro

คำตอบ:


8

เป็นข้อผิดพลาดทางไวยากรณ์ฉันคิดว่าคุณต้องการ "/" แทนที่จะเป็น "\" เช่นนี้

//192.168.0.26/mythtv/media  /media/mybooklive  cifs  username=user,password=pass,_netdev,umask=002,uid=136,gid=144,iocharset=utf8  0 0

ดู: https://wiki.ubuntu.com/MountWindowsSharesPermanentlyสำหรับข้อมูลเพิ่มเติม


24

คุณลองเพิ่มตัวเลือก_netdevในfstabรายการของคุณ? คุณจะเพิ่มมันด้วยตัวเลือกอื่น ๆ ในสตริงของคุณเช่นนั้น

//192.168.0.26/mythtv/media  /media/mybooklive  cifs  username=user,password=pass,_netdev,umask=002,uid=136,gid=144,iocharset=utf8   0       0

_netdev ควรจะหน่วงเวลาการเมานต์จนกว่าหลังจากเชื่อมต่อเครือข่ายแล้ว


คุณสามารถเพิ่มบริบทให้กับตำแหน่งที่จะวางในfstabบรรทัดได้หรือไม่ เมื่อถึงเวลานั้นและฉันสามารถรีบูทเซิร์ฟเวอร์เมื่อไม่ได้ใช้งานได้ฉันจะลองทำใหม่ ขอบคุณสำหรับคำตอบ.
douggro

1
สิ่งนี้ใช้ได้กับฉันใน Ubuntu 12.04 แต่ไม่ได้อยู่ใน Ubuntu 16.04 สิ่งนี้มีการเปลี่ยนแปลงในเวอร์ชั่นล่าสุดหรือไม่?
Katu

2
หมายเหตุ: ฉันคิดว่า _netdev ใช้งานได้จริงใน 16.04 อย่างไรก็ตามข้อมูลรับรอง = / home / user / .smbcreds ใช้งานไม่ได้อีกต่อไป อย่างน้อยสำหรับฉันเมื่อฉันใช้ user =, pass =, _netdev มันทำงานได้เมื่อฉันใช้หนังสือรับรอง =, _ netdev มันไม่ทำงาน ทั้งสองทำงานผ่าน sudo mount-a จากบรรทัดคำสั่งหลังจากบูท
jb510

1
ฉันคิดว่านี่อาจจะเกี่ยวข้องกับการเปลี่ยนแปลงการอนุญาตที่ทำกับโฟลเดอร์สื่อ ในบางจุด Ubuntu เริ่มติดตั้งสิ่งต่าง ๆ กับ / media / ชื่อผู้ใช้ / ชื่อโฟลเดอร์แทนที่จะเป็น / media / folder หากไม่เชื่อมต่อไปยังตำแหน่ง "ชื่อผู้ใช้" คุณจะต้องมีสิทธิ์ระดับ sudo สำหรับการเข้าถึง หากคุณเปลี่ยนเส้นทางของคุณเพื่อใช้เส้นทาง / media / ชื่อผู้ใช้ฉันคิดว่ามันควรจะทำงานได้
djmadscribbler

1
_netdev - ใช้ได้เฉพาะกับ fstype nfs เท่านั้น
Mikhail Chuprynski

15

หาก _netdev ไม่ทำงานให้ลองใช้ตัวเลือก:

X-systemd.automount

แทน. มันทำงานได้โดยการติดตั้งไดรฟ์ในการเข้าถึงครั้งแรก

หากต้องการทดสอบ automount ให้ยกเลิกการต่อเชื่อมหุ้นของคุณหากติดตั้งอยู่ในปัจจุบัน

$ sudo umount /media/mybooklive

จากนั้นรีสตาร์ทremote-fsยูนิต systemd:

$ sudo systemctl daemon-reload
$ sudo systemctl restart remote-fs.target

2
ขอบคุณสิ่งนี้ใช้ได้กับฉันใน 18.04 LTS
หัวหน้า

1
_netdev ไม่ได้ทำงานในวันที่ 18.04 สิ่งนี้ใช้ได้อย่างสมบูรณ์แบบ :)
ไบรอันพูดว่า Reinstate Monica

6

ฉันใช้ Raspbian-Stretch build ลงวันที่ 2017-09-07 และประสบปัญหาเดียวกัน อย่างไรก็ตามฉันสามารถเอาชนะสิ่งนี้ได้โดยไปที่ raspi-config และภายใต้เมนูตัวเลือกการบูตฉันเปิดใช้งานตัวเลือก "รอเครือข่ายตอนบูต"


1
นี่เป็นประโยชน์อย่างมากจริง ๆ ฉันมีปัญหาแม้ว่าบูตบอกว่าทุกอย่างตกลงมันไม่ได้ติดตั้งหรือแสดงโฟลเดอร์
Alfred Espinosa

3

- การใช้เครื่องหมายสแลช (/) ไม่ได้แก้ไขให้ฉัน
- นอกจากนี้การเพิ่มตัวเลือก_netdevใน/etc/fstabรายการของฉันไม่ได้แก้ไขให้ฉัน

สิ่งที่ฉันได้ทำเพื่อแก้ไขปัญหานี้ (ใน 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

ทำ! มันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน!

อ้างอิง:


คุณเชื่อมต่อผ่าน wifi หรือไม่
cbcoutinho

ใช่ฉันใช้ WiFi แทนอีเธอร์เน็ต
Gabriel Staples

แน่นอนว่าแปลกมาก แต่อาจไม่เกี่ยวข้องกับปัญหาของฉัน ฉันมีไดรฟ์เครือข่ายสามตัวฉันพยายามเชื่อมต่อผ่านสายอีเธอร์เน็ต - ไม่มี wifi ชื่อหนึ่งของไดรฟ์มีอักขระพิเศษอยู่ภายในและทำให้ไม่สามารถเชื่อมต่อได้หลังจากบูตใหม่ การดำเนินการsudo mount -aแก้ไขปัญหา แต่ฉันสงสัยว่าทำไมมันไม่ทำงานในขณะที่บูตเครื่อง ฉันจะลองวิธีแก้ปัญหาของคุณและดูว่าจะช่วยได้หรือไม่
cbcoutinho
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.