我正在尝试使用 自动挂载 Samba 共享/etc/fstab
,但我不确定如何将 bash 命令转换为 fstab 期望的格式。
我能够成功运行以下 bash 命令并查看已安装共享中的文件。
sudo mount -t cifs -o username=<user>,password=<password> //<samba-share-ipv4>/backup /home/eric/samba
在/etc/fstab/
文件中,我有以下行:
//<samba-share-ipv4>/backup /home/eric/samba cifs ro,username=<user>,password=<password>
当我尝试然后运行时sudo mount -a
,出现以下错误:
mount: /home/eric/samba: cannot mount //<samba-share-ipv4>/backup read-only.
然而,我所需要的只是读取权限。我已尝试添加ro
为上面的选项,但仍然遇到相同的错误。
答案1
您的fstab
规格不完整。
在线以及您的本地文件系统(例如,参考 参考资料)中有大量资源man fstab
解释了该条目的构造fstab
。比较全面的之一“如何做菜谱”是这是戴夫·麦凯 (Dave McKay) 的作品。这是我找到的最详细的参考资料,但我承认我从未从头到尾读过它。
我将尝试以不太详细的方式回答您的问题:
一个fstab
配置行网络附加存储装置由6部分组成领域:
fs_spec
:要挂载的块存储设备或远程文件系统fs_file
:本地文件系统中的挂载点fs_spec
fs_vfstype
:文件系统的类型;例如 ext4、smb/cifs 等fs_mntops
: 逗号分隔,依赖于文件系统的挂载选项fs_freq
:个位数控制 dump(8) 命令;0
中小企业/到岸价fs_passno
:个位数控制 fsck(8);0
中小企业/到岸价
你的当前的 fstab
配置是这样的:
fs_spec
://<samba-share-ipv4>/backup
fs_file
:/home/eric/samba
fs_vfstype
:cifs
fs_mntops
:ro,username=<user>,password=<password>
我建议你尝试这个:
fs_mntops
:ro,user=<user>,pass=<password>,nofail,vers=1.0
fs_freq
:0
fs_passno
:0
结果是这样的:
//<samba-share-ipv4>/backup /home/eric/samba cifs ro,user=<user>,pass=<password>,nofail,vers=1.0 0 0
fs_mntops
最难确定的一个元素是版本:vers=1.0
在我的建议中。这似乎取决于供应商,并且通常挑剔的。为什么?我会猜这是由于柔软的标准、协议的供应商软件实现smb/cifs
,也许还有您的主机?vers=1.0
是最古老的,并且可能使它成为最小公分母,但不一定。如果vers=1.0
不起作用,您将需要对您的设备进行一些研究。和这个简短的概述如果问题很顽固,可能会有所帮助。我的方法通常是使用第一个有效的方法,按以下顺序尝试它们:vers=1.0
、、、。vers=2.0
vers=3.0
对于可能有用的线索,您可以尝试dmesg
,var/log/syslog
或者journalctl
- 也许过滤诸如 smb 服务器的主机名、IP 等术语。