我已在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 ...这些都没有帮助。

所以我转向对您来说,准备将pi扔出窗外-跟着我。任何帮助,不胜感激。

#1 楼

我建议您将挂载添加到root或用户crontab。 -e#编辑根crontab

将@reboot条目添加到crontab。您需要这样的行,例如

@reboot(睡眠30; / bin / mount / media / disk1)和

,这将等待30秒钟,然后再安装磁盘。

评论


对于为此花费的时间表示歉意,我才有机会再次尝试一下。我很放心地说您的解决方案效果很好。非常感谢您的帮助。

–卢克·托梅(Luke Twomey)
15年8月25日在19:58

这肯定会安装,但是在关机时如何从程序上卸载呢?

–Ciasto piekarz
16年8月20日在18:06

#2 楼

关于在启动时自动安装网络驱动器,我也有同样的问题。
我在编辑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_NAMEdf快速检查

评论


这当然是对我有用的修复程序,截至2016年11月,rpi3最新更新

– ChrisAdmin
16-10-31在4:57

我更喜欢使用/etc/rc.local mount -a解决方案,但不要忘记先入睡。查看我刚刚在这里发布的答案:raspberrypi.stackexchange.com/a/63690/49091

–加百利·斯台普斯
17-3-21在3:20



#3 楼

更新说明,看到它出现在Google上。我在乘坐机场时间胶囊时遇到了同样的挫败感。我正在2018年3月14日发布的带有标准GUI的Rasbian Stretch上运行Raspberry Pi 3B +。

这是我的fstab代码行:

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

A随着时间的推移,似乎发生了一些更改:


您需要添加“ vers = 1.0”语句
“ user =”和“ pass =”现在分别应为“ username =”和“ pass =” =“
最后,现在有一个“等待网络”框,可以在Raspberry Pi配置实用程序中打勾,该实用程序解决了我的启动时挂载问题。

经过2天的努力,现在终于安装了我的,并在启动时进行了挂载!

#4 楼

您可以在fstab中添加_netdev和comment = 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


评论


这是Debian Buster 10.5上唯一对我有用的东西。对于此评论的实用性,我表示三倍的支持,谢谢。

– nxet
20/09/14 '16:47

#5 楼

解决此问题的另一个技巧是在文件/etc/rc.local的底部添加命令:

mount -a


重新启动后,您可以通过键入以下命令来验证是否还可以: br />
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  <----------


#6 楼

_netdev中的/etc/fstab选项似乎对CIF份额根本不起作用。此资源(https://help.ubuntu.com/community/Fstab)似乎证实了当它说“ _netdev-这是一个网络设备,请在启动网络后将其安装。仅对fstype nfs有效”。

我更喜欢使用/etc/rc.local文件来解决此问题,方法是休眠然后在其中调用mount -a,而不是在crontab中使用Wait for network at bootraspi-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


完成!现在它对我来说完美无缺!

参考文献:


https://askubuntu.com/a/895124/327339
https:// www.raspberrypi.org/documentation/linux/usage/rc-local.md
http://elinux.org/RPi_Email_IP_On_Boot_Debian


#7 楼

在我的情况下,我购买了Raspberry Pi 3并安装了Raspbian Stretch,我用自己喜欢的网络驱动器排列来编辑fstab,如下所示: > fstab中列出的每个驱动器都会自动挂载,然后将其添加到rc.local和其他几个位置,以便我可以在启动时欣赏这些驱动器的内容,长话短说,直到我决定在该驱动器上添加一行后,它才起作用像这样的root crontab:
//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

选择我的编辑器(y情况下为纳米),然后在底部添加此行
sudo mount -a

重新启动后,我的情况一切正常。希望这对您有所帮助。
注意:
如果遇到任何问题,您可以随时运行:
sudo crontab -e

,它会提示您运行的内容和内容没有

#8 楼

我知道这是一个较晚的答复,但我遇到了同样的问题,这与调用fstab时网络没有启动有关。我首先尝试了crontab,但工作正常,但认为有点混乱...

这里有一篇很棒的文章,其中介绍了如何使用init.d中的脚本在引导时运行安装...现在对我来说很棒。

评论


如果将来链接消失,您是否可以编辑答案以提供链接中的重要详细信息。

– Greenonline
15年9月16日在20:36