Ubuntu 24.04系统中CIFS共享开机仅自动挂载一个的问题咨询
Ubuntu 24.04系统中CIFS共享开机仅自动挂载一个的问题咨询
我在/etc/fstab里配置了两个CIFS挂载项:
//192.168.10.1/StashNas /mnt/stashnas cifs uid=sam,gid=sam,credentials=/etc/stashnas.credentials 0 0 //192.168.10.1/StashSam /mnt/stashsam cifs uid=sam,gid=sam,credentials=/etc/stashnas.credentials 0 0
系统开机后,/mnt/stashsam能正常自动挂载,但/mnt/stashnas不行,手动执行sudo mount -a却能成功挂载它。这到底是为什么开机时第一个挂载项不生效呢?
我的系统信息如下:
sam@stash-pc:~[main]$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04 LTS Release: 24.04 Codename: noble sam@stash-pc:~[main]$ uname -a Linux stash-pc 6.8.0-35-generic #35-Ubuntu SMP PREEMPT_DYNAMIC Mon May 20 15:51:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
可能的原因及解决办法
这种情况在Ubuntu 24.04里挺常见的,大概率是开机时序或者网络相关的问题,给你几个排查和解决的方向:
1. 网络就绪时机不匹配
Ubuntu用systemd管理开机流程,默认情况下fstab里的挂载会在系统启动早期执行,这时候网络可能还没完全连上NAS,导致第一个挂载请求失败。而第二个挂载可能因为systemd的重试机制,或者刚好在网络就绪后触发,就成功了。
解决办法:给两个挂载项都加上_netdev参数,告诉系统这是依赖网络的挂载,必须等网络服务就绪后再执行。修改后的fstab条目如下:
//192.168.10.1/StashNas /mnt/stashnas cifs _netdev,uid=sam,gid=sam,credentials=/etc/stashnas.credentials 0 0 //192.168.10.1/StashSam /mnt/stashsam cifs _netdev,uid=sam,gid=sam,credentials=/etc/stashnas.credentials 0 0
2. 挂载点的权限或存在性问题
虽然手动挂载能成功,但还是要确认/mnt/stashnas这个挂载点的状态:
- 先检查目录是否存在:
ls /mnt/stashnas,如果不存在,手动创建sudo mkdir -p /mnt/stashnas。 - 再看权限:
ls -ld /mnt/stashnas,确保所有者是sam:sam,权限至少是755,如果不对,执行sudo chown sam:sam /mnt/stashnas。
3. 延长挂载超时时间
开机时NAS可能还在初始化,响应慢导致挂载超时失败。可以给挂载项加上soft(软挂载,超时后返回错误而不是卡住)和timeout=30(设置30秒超时)参数,增加挂载成功的概率:
//192.168.10.1/StashNas /mnt/stashnas cifs _netdev,uid=sam,gid=sam,credentials=/etc/stashnas.credentials,soft,timeout=30 0 0
4. 查看系统日志找具体原因
如果上面的方法都不行,直接看开机日志找错误信息最靠谱:
- 查看fstab相关的日志:
journalctl -u systemd-fstab-generator.service --boot=0 - 或者搜索CIFS相关的日志:
journalctl | grep -i cifs
日志里会明确告诉你失败原因,比如“网络不可达”、“权限拒绝”之类的。比如如果是权限问题,记得检查/etc/stashnas.credentials的权限,这个文件必须只有root能读,执行sudo chmod 600 /etc/stashnas.credentials就行。
备注:内容来源于stack exchange,提问作者SCC
相关产品推荐
相关产品推荐

