Không thể có ổ đĩa mạng CIFS để gắn khi khởi động


22

Tôi đã thêm một chia sẻ trong fstab để truy cập ổ đĩa mạng với tất cả các tệp của tôi trên ... fstab trông giống như:

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

Khi tôi chạy sudo mount -akết nối ổ đĩa mạng thành công và tôi có thể thực hiện cd /media/disk1sau lsđó cung cấp cho tôi danh sách tất cả các thư mục trên ổ đĩa mạng nói trên.

Tuy nhiên, sau khi khởi động lại pi khi tôi cdđến vị trí đó và chạy lslại, không có gì ở đó. Tôi phải tự chạy sudo mount -alại, sau đó gắn ổ đĩa.

Tôi đã thấy điều này được báo cáo nhiều lần trên các diễn đàn khác, và sự đồng thuận dường như là việc gắn kết trong fstab đang diễn ra quá sớm - trước khi mạng được thiết lập. Tôi đã cố gắng thực hiện những điều tôi hiểu - nhưng thành thật mà nói, rất nhiều trong số đó là trên đầu tôi. Tôi đã thêm vào _netdevdòng trong fstab, tôi đã thêm rootdelay=10vào /boot/cmdline.txt, tôi đã cài đặt trình quản lý mạng ... không có gì trong số này giúp được.

Và thế là tôi quay sang bạn, chuẩn bị ném pi ra ngoài cửa sổ - theo sau là chính tôi. Bất kỳ giúp đỡ, nhiều đánh giá cao.

Câu trả lời:


9

Tôi đề nghị bạn thêm mount vào root hoặc crontab người dùng của bạn.

Cho rằng bạn hiện đang sử dụng sudo, crontab gốc dường như là phù hợp nhất.

sudo crontab -e # để chỉnh sửa crontab gốc

Thêm một mục @reboot vào crontab. Bạn cần một dòng như

@reboot (ngủ 30; / bin / mount / media / đĩa1) &

Điều đó sẽ đợi trong 30 giây trước khi gắn đĩa.


1
Xin lỗi vì đã mất thời gian để làm điều này, tôi chỉ có cơ hội để chơi lại với điều này một lần nữa. Tôi rất nhẹ nhõm khi nói giải pháp của bạn hoạt động hoàn hảo. Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn.
Luke Twomey

gắn kết này chắc chắn nhưng làm thế nào để chúng ta tháo gỡ thủ tục khi tắt máy?
Ciasto piekarz

14

Tôi cũng gặp vấn đề tương tự về việc tự động gắn ổ đĩa mạng khi khởi động. Tôi đã thử thêm mount -alệnh /etc/rc.localsau khi chỉnh sửa /etc/fstabnhưng không có kết quả. Lý do nó không hoạt động là mạng không sẵn sàng trước khi mount -ađược thực thi.

Như những người khác đã đề cập vấn đề là các ổ fstab được gắn ngay cả trước khi mạng kết thúc. Để chắc chắn rằng mạng đã sẵn sàng trong quá trình khởi động, có một tùy chọn Wait for Network at Boottrong raspi-config.

chạy

sudo raspi-config

và đặt Wait for Network at Boottùy chọn thành Slow wait for network connection before completing bootvà khởi động lại. Tất nhiên thời gian khởi động có thể bị ảnh hưởng nhưng nếu điều đó không quan trọng, phương pháp này có thể được sử dụng.

Sau khi khởi động lại, bạn có thể kiểm tra xem ổ đĩa mạng có được gắn tự động không: kiểm tra nhanh qua ls /media/DRIVE_NAMEhoặcdf


Đây chắc chắn là bản sửa lỗi phù hợp với tôi, với bản cập nhật mới nhất của rpi3 tính đến tháng 11 năm 2016
ChrisAdmin

Tôi thích sử dụng /etc/rc.local mount -agiải pháp, nhưng đừng quên ngủ trước. Xem câu trả lời của tôi, tôi vừa đăng ở đây: raspberrypi.stackexchange.com/a/63690/49091
Gabriel Staples

4

Cập nhật ghi chú, thấy rằng điều này đã xuất hiện trên Google. Tôi phải chịu đựng một loạt những thất vọng khi gắn Sân bay Time Capsule của mình. Tôi đang chạy Raspberry Pi 3B + trên Rasbian Stretch phát hành ngày 14 tháng 3 năm 2018 với GUI tiêu chuẩn.

Đây là dòng mã fstab của tôi:

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

Một vài thay đổi dường như đã xảy ra theo thời gian:

  1. Bạn cần thêm câu lệnh "Vers = 1.0"
  2. _netdev không làm gì trên hệ thống tệp CFIS, chỉ hoạt động trên hệ thống tệp NFS (như được lưu ý bởi Gabriel Staples bên dưới)
  3. "user =" và "pass =" bây giờ sẽ là "username =" và "password ="
  4. Cuối cùng, giờ đây có một hộp "Chờ mạng" có thể được đánh dấu trong Tiện ích cấu hình Raspberry Pi, giải quyết vấn đề gắn kết của tôi khi gặp sự cố khởi động.

Sau 2 ngày vật lộn, cuối cùng tôi cũng được gắn kết và làm như vậy khi khởi động!


1

Một mẹo khác để giải quyết vấn đề này là nối thêm vào cuối tập tin /etc/rc.locallệnh:

mount -a

Sau khi khởi động lại, bạn có thể xác minh xem tất cả có ổn không bằng cách gõ lệnh:

df -h

và bạn sẽ thấy một cái gì đó như thế này:

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

Các _netdevtùy chọn trong /etc/fstabdường như không làm bất cứ điều gì ở tất cả cho CIFS cổ phiếu. Tài nguyên này ( https://help.ubfox.com/community/Fstab ) dường như xác nhận rằng khi nó nói "_netdev - đây là một thiết bị mạng, gắn kết nó sau khi đưa lên mạng. Chỉ hợp lệ với fstype nfs ".

Tôi thích sử dụng /etc/rc.localtệp để sửa lỗi này, bằng cách ngủ và sau đó gọi mount -abên trong nó, thay vì sử dụng crontabhoặc Wait for network at boottùy chọn trong raspi-config. Tuy nhiên, để /etc/rc.localsửa lỗi, đừng quên ngủ, như được giải thích dưới đây.

Những gì tôi đã làm để khắc phục sự cố này (trên Pi3 của tôi) là sửa đổi /etc/rc.localđể ngủ 20 giây (bằng cách gọi sleep 20) và sau đó gọi mount -a. Bằng cách này, mặc dù mạng vẫn chưa được kết nối khi hệ thống lần đầu tiên đọc tệp fstab, do đó quá trình gắn kết bị lỗi, tôi buộc hệ thống phải đợi 20 giây ở đây (cho thời gian kết nối mạng) sau đó tôi buộc nó phải gọi mount -alại để gắn kết tất cả các ổ đĩa trong fstabtập tin.

Đây là những gì /etc/rc.localtập tin của tôi bây giờ trông như sau:

#!/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

Làm xong! Bây giờ nó hoạt động hoàn hảo cho tôi!

Tài liệu tham khảo:


0

Trong trường hợp của tôi, tôi đã mua Raspberry Pi 3 và cài đặt Raspbian Stretch , tôi đã chỉnh sửa fstab của mình với sự sắp xếp yêu thích của các ổ đĩa mạng như thế này:

//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

Vì vậy, bất cứ khi nào tôi sử dụng:

sudo mount -a

Mọi ổ đĩa được liệt kê trong fstab sẽ tự động gắn kết, sau đó tôi đã thêm nó vào RC.local và một số nơi khác để tôi có thể thưởng thức nội dung của các ổ đĩa này khi khởi động, câu chuyện dài, không có gì hoạt động cho đến khi tôi quyết định thêm một dòng vào gốc crontab thích bởi:

sudo crontab -e

Chọn trình soạn thảo của tôi (nano trong trường hợp y) Sau đó thêm dòng này ở dưới cùng

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

Tất cả mọi thứ hoạt động tốt trong trường hợp của tôi sau khi khởi động lại. Hy vọng điều này sẽ giúp các bạn ra ngoài.

CHÚ THÍCH:

Nếu bạn gặp phải bất kỳ vấn đề nào, bạn luôn có thể chạy:

service cron status

Và nó sẽ cho bạn một gợi ý về những gì đã chạy và những gì không


0

Bạn có thể thêm các thuộc tính _netdevcomment = systemd.automount trong fstab và tất cả đều hoạt động tốt với tôi khi khởi động lại. Tôi đã từng phải đối mặt với cùng một vấn đề khi khởi động lại.

\\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

Tôi biết đây là một câu trả lời muộn một chút nhưng tôi cũng gặp vấn đề tương tự và đó là việc mạng không hoạt động khi fstabđược gọi. Tôi đã thử crontablần đầu tiên và nó hoạt động tốt nhưng nghĩ rằng nó hơi lộn xộn ...

Có một bài viết tuyệt vời ở đây chạy qua việc sử dụng tập lệnh init.dđể chạy mount như khi khởi động ... nó hiện đang hoạt động rất tốt đối với tôi.


1
Bạn có thể chỉnh sửa câu trả lời của bạn để cung cấp các chi tiết nổi bật từ liên kết của bạn, trong trường hợp liên kết chết trong tương lai .
Greenonline
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.