Chr*_*ris 5 fstab mount automount cifs 17.10
有很多页面展示了如何配置系统以自动挂载由 CIFS 访问的网络共享(fstab、autofs、systemd.mount,甚至可能更多)。但是当服务器没有响应时,它们会失败(至少我对前两个的尝试)。随着 Kubuntu 17.10 的更新,它甚至使我的系统在启动时挂起并出现黑屏,系统日志中充满了:
CIFS VFS: cifs_mount failed w/return code = -113
Run Code Online (Sandbox Code Playgroud)
还有一些:
CIFS VFS: cifs_mount failed w/return code = -111
Run Code Online (Sandbox Code Playgroud)
那么处理这种设置的推荐方法是什么?
smb://是不够的)背景:目标是我的 NAS,它会根据网络流量进入睡眠状态并唤醒。所以至少对于第一个请求它是不可用的。
当笔记本电脑在外部网络中启动时,NAS 甚至根本不可用(或者我启动 VPN 连接)
systemd.mount我认为你可以使用和来解决这个问题systemd.automount。这将创建一个按需实现的安装点,并且不会在启动过程中挂起系统。
根据systemd.mount(5)的联机帮助页:
\n\n\n或者,安装单元可以附带自动安装单元,
\n
以允许按需或并行安装。请参阅
\nsystemd.automount(5)。
从systemd.automount(5)的联机帮助页中:
\n\n\n名称以“.automount”结尾的单元配置文件\n编码有关由 systemd 控制和监督的文件系统自动挂载点的信息。自动挂载单元可用于实现文件系统的\n按需挂载以及并行挂载。
\n
为此,您必须创建一个systemd.mount单元文件和一个systemd.automount单元文件。
首先,为要挂载的 CIFS 网络共享创建一个目录:
\nsudo mkdir /mnt/share\nRun Code Online (Sandbox Code Playgroud)\nsystemd.mount单元文件接下来,systemd.mount在/etc/systemd/system/. 文件名必须包含挂载点名称,并将斜杠替换为 \xe2\x80\x9cminus\xe2\x80\x9d 符号。例如,对于上面创建的安装点,/mnt/share创建一个名为 的单元文件mnt-share.mount。请参阅systemd.mount(5):
\n\nRun Code Online (Sandbox Code Playgroud)\nMount units must be named after the mount point directories they\n control. Example: the mount point /home/lennart must be\n configured in a unit file home-lennart.mount. For details about\n the escaping logic used to convert a file system path to a unit\n name, see systemd.unit(5). Note that mount units cannot be\n templated, nor is possible to add multiple names to a mount unit\n by creating symlinks to its unit file.\n
对于此文件,您将需要以下信息:
\n将以下内容添加到/etc/systemd/system/mnt-share.mount,替换上述值:
[Unit]\n Description=cifs mount unit\n Requires=network-online.target\n After=network-online.service\n\n[Mount]\n What=//NAS-IP-Address/directory\n Where=/mnt/share\n Options=username=YourCIFSUserName,password=YourPassword,workgroup=YourDomain,rw\n Type=cifs\n\n[Install]\n WantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n不要启用上述单元。如果这样做,它会在每次启动期间尝试安装您的网络共享,并像以前一样挂起您的系统。
\nsystemd.automount单元文件接下来,创建一个systemd.automount单元:/etc/systemd/system/mnt-share.automount。该单元将按需systemd.automount启动该单元。mnt-share.mount
[Unit]\n Description=cifs automount unit\n\n[Automount]\n Where=/mnt/share\n\n[Install]\n WantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n启用并启动本机:
\nsudo systemctl daemon-reload\nsudo systemctl enable mnt-share.automount\nsudo systemctl start mnt-share.automount\nRun Code Online (Sandbox Code Playgroud)\n启动此单元后,共享点将不会被安装,但/etc/mtab文件将被更新为一个新条目。您可以通过以下方式查看:
$ mount | grep share\nsystemd-1 on /mnt/share type autofs (...)\nRun Code Online (Sandbox Code Playgroud)\n最后,浏览到应自动挂载的网络共享并列出目录内容:
\nls /mnt/share\nRun Code Online (Sandbox Code Playgroud)\n您还可以检查安装:
\n$ mount | grep share\nsystemd-1 on /mnt/share type autofs (...)\n//NAS-IP-Address/directory on /mnt/share type ext4 (rw,relatime)\nRun Code Online (Sandbox Code Playgroud)\n
安装
sudo apt-get install cifs-utils
Run Code Online (Sandbox Code Playgroud)
如果尚未完成。
作为 sudo 用户,将一个或多个条目添加到您的/etc/fstab
//YourSambaServer/folder /mnt/share/ cifs username=YourCIFSUserName, password=YourPassword,noauto,_netdev,users 0 0
Run Code Online (Sandbox Code Playgroud)
解释:
重新启动,你应该准备好了
我多年来一直使用这个解决方案,并通过 CIF 获得更高的传输速率。请注意,通过这些设置,您可以随时挂载 samba 文件夹。
| 归档时间: |
|
| 查看次数: |
1536 次 |
| 最近记录: |