SMB/CIFS 挂载速查:各 Linux 发行版安装命令与挂载报错对照
Debian/Ubuntu、RHEL/CentOS/Rocky、Fedora、Arch、openSUSE 的 cifs-utils 与 smbclient 安装命令一次列全,附凭据文件、挂载参数与报错速查。
适用于所有 Linux 发行版 — Synology DSM / Ubuntu / CentOS / Debian / Rocky / Arch 等Synology DSM • Ubuntu • CentOS • Debian • Rocky Linux
解决: 添加
解决: 加
解决: 使用懒卸载
解决: 把文件放到 DSM 已有的共享文件夹中(如
1 环境准备 — 检查系统工具
挂载 SMB 共享需要cifs-utils 工具包。Synology DSM 通常已预装,先确认一下。1.1 检查 mount.cifs 是否存在
Shell检查工具# 检查 cifs 挂载工具是否可用 which mount.cifs
/bin/mount.cifs← 已安装,可以继续
1.2 安装 cifs-utils(不同 Linux 发行版)
如果系统没有mount.cifs 命令,需要先安装 cifs-utils 工具包。不同发行版使用不同的包管理器:| 发行版 | 包管理器 | 安装命令 |
|---|---|---|
| Debian / Ubuntu | apt | apt install cifs-utils |
| CentOS / RHEL 7 | yum | yum install cifs-utils |
| CentOS / RHEL 8+ / Rocky / Alma | dnf | dnf install cifs-utils |
| Fedora | dnf | dnf install cifs-utils |
| Arch / Manjaro | pacman | pacman -S cifs-utils |
| openSUSE / SLES | zypper | zypper install cifs-utils |
| Synology DSM | 预装 | 无需安装 |
1.3 安装 smbclient(可选,用于探测共享)
smbclient 不是必须的,但用来探测远程共享目录非常方便。| 发行版 | 安装命令 |
|---|---|
| Debian / Ubuntu | apt install smbclient |
| CentOS / RHEL 7 | yum install samba-client |
| CentOS / RHEL 8+ / Rocky / Alma | dnf install samba-client |
| Fedora | dnf install samba-client |
| Arch / Manjaro | pacman -S smbclient |
| openSUSE / SLES | zypper install samba-client |
一键安装(Debian/Ubuntu):
一键安装(CentOS 7):
一键安装(CentOS 8+/Rocky/Alma):
apt install cifs-utils smbclient -y一键安装(CentOS 7):
yum install cifs-utils samba-client -y一键安装(CentOS 8+/Rocky/Alma):
dnf install cifs-utils samba-client -y1.4 检查 cifs 内核模块
Shell检查模块# 查看 cifs 内核模块是否已加载 lsmod | grep cifs # 如果未加载,手动加载 modprobe cifs
cifs 369069 0← 模块已加载,引用计数 0
Synology DSM 用户注意: 如果
which mount.cifs 找不到命令,需要先在 DSM 的 套件中心 安装 "SSH Server" 套件,并通过 DSM 的 控制面板 → 终端机和 SNMP → 启用 SSH 功能,然后通过 SSH 登录操作。DSM 的 cifs-utils 通常随系统预装。 2 探测目标服务器的共享目录
用smbclient 列出 192.168.1.10 上所有共享目录,分别用匿名和账号两种方式探测。2.1 匿名探测(无需账号)
Shell匿名探测# -L 列出远程共享 -N 匿名(空密码) smbclient -L //192.168.1.10 -N
Sharename Type Comment --------- ---- ------- Btest Disk docker Disk docker_data Disk media Disk music Disk SmbTestUgree Disk uosfile Disk IPC$ IPC IPC Service ()
注意: 匿名只能看到部分共享(7个),但不代表有读写权限。用账号登录后会看到更多共享目录。
2.2 账号探测(使用 nasadmin 登录)
Shell账号探测# -U 指定用户名%密码 smbclient -L //192.168.1.10 -U nasadmin%123
Sharename Type Comment --------- ---- ------- 1234 Disk 15局 Disk ActiveBackupforBusiness Disk Atest Disk test Btest Disk centos Disk docker Disk docker_data Disk Download Disk downloads Disk homes Disk homes contains all users' home media Disk music Disk NetBackup Disk System default shared folder PC同步上传 Disk photo Disk System default shared folder SmbTestUgree Disk surveillance Disk System default shared folder ubuntu01 Disk ugreelinux Disk uosfile Disk web Disk System default shared folder web_packages Disk 共享20260811 Disk 技术部 Disk 测试 Disk 测试及北非 Disk 测试文件 Disk 生产共享 Disk 虚拟机 Disk 软件安装包 Disk 龙珠大厦 Disk IPC$ IPC IPC Service () home Disk Home directory of nasadmin
对比: 用账号登录后能看到 31 个共享目录,比匿名的 7 个多出很多。最后的
home 是 nasadmin 的个人主目录。 3 验证用户权限
挂载前先用smbclient 验证 nasadmin 对 Btest 目录的读写权限。3.1 测试读取权限
Shell读取测试# 连接到 Btest 并列出文件 smbclient //192.168.1.10/Btest -U nasadmin%123 -c "ls"
. DA 0 Wed Aug 19 16:18:48 2026 .. D 0 Thu Aug 20 18:00:07 2026 test DA 0 Wed Aug 19 16:18:11 2026 image DA 0 Tue Jul 28 08:52:11 2026 Knowledge_System_Full_Backup DA 0 Sun Jul 26 11:50:00 2026 DEPLOYMENT.md A 3883 Sun Jul 26 09:53:56 2026 HANDOVER.md A 8209 Sun Jul 26 11:24:24 2026 backend DA 0 Thu Jul 30 14:16:57 2026 frontend DA 0 Sat Aug 1 15:02:31 2026 ...(更多文件)
读取权限 — 正常
3.2 测试写入权限
Shell写入测试# 创建临时文件并上传到 Btest,验证后删除
echo "test" > /tmp/test_write.tmp
smbclient //192.168.1.10/Btest -U nasadmin%123 \
-c "put /tmp/test_write.tmp test_write_check.tmp; rm test_write_check.tmp"putting file /tmp/test_write.tmp as \test_write_check.tmp (0.4 kb/s) (average 0.4 kb/s)
写入权限 — 正常
结论: 账号
nasadmin 对 Btest 共享目录拥有 完全读写权限,可以放心挂载。 4 创建本地挂载点
在本机创建一个空目录,作为远程共享的挂载目标路径。Shell创建目录# -p 递归创建多级目录 mkdir -p /volume1/remote/Btest
路径建议: 统一放在
/volume1/remote/ 下,方便管理和识别。目录名建议与远程共享名保持一致。 5 执行挂载命令
使用mount -t cifs 将远程共享挂载到本地目录。5.1 首次尝试(匿名 — 失败)
Shell失败演示# 匿名挂载会失败,因为服务器要求认证 mount -t cifs //192.168.1.10/Btest /volume1/remote/Btest -o guest
mount: wrong fs type, bad option, bad superblock on //192.168.1.10/Btest, missing codepage or helper program
5.2 第二次尝试(有账号但参数不全 — 失败)
Shell失败演示# 只给了账号密码,没加兼容性参数
mount -t cifs //192.168.1.10/Btest /volume1/remote/Btest \
-o username=nasadmin,password=123mount: wrong fs type, bad option, bad superblock... 检查 dmesg 日志:CIFS VFS: No username specified
问题原因: Synology DSM 的 mount.cifs 在某些内核版本下,需要额外添加
noperm 和 nounix 参数才能正常工作。 5.3 最终挂载(成功)
Shell成功mount -t cifs //192.168.1.10/Btest /volume1/remote/Btest \
-o username=nasadmin,password=123,noperm,nounix(无输出 = 挂载成功)
5.4 参数详解
| 参数 | 说明 |
|---|---|
| -t cifs | 指定文件系统类型为 CIFS(SMB 的 Linux 实现) |
| username=nasadmin | SMB 认证用户名 |
| password=123 | SMB 认证密码 |
| noperm | 跳过本地文件系统权限检查,允许所有用户访问 |
| nounix | 禁用 Unix 扩展,使用纯 CIFS 协议(Synology 兼容性更好) |
| _netdev | (fstab 用)标记为网络设备,启动时等网络就绪后再挂载 |
| vers=1.0 | (可选)指定 SMB 版本,Synology 默认协商为 1.0 |
6 验证挂载结果
6.1 查看挂载信息
Shell验证mount | grep cifs
//192.168.1.10/Btest on /volume1/remote/Btest type cifs (rw,relatime,vers=1.0,blocksend,cache=strict,username=nasadmin,domain=DS224,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.1.10,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=1048576,actimeo=1)
6.2 查看远程目录内容
Shell查看文件ls -la /volume1/remote/Btest/
total 292244drwxr-xr-x 2 root root 0 Jul 26 11:50 兼容解决工具包drwxr-xr-x 2 root root 0 Aug 17 18:29 磁盘映射工具drwxr-xr-x 2 root root 0 Jul 28 14:40 backenddrwxr-xr-x 2 root root 0 Aug 1 15:02 frontend-rwxr-xr-x 1 root root 4719 Jul 26 09:53 README.md-rwxr-xr-x 1 root root 9168 Jul 25 23:53 PROGRESS.md-rwxr-xr-x 1 root root 8209 Jul 26 11:24 HANDOVER.md...(更多文件和目录)
7 持久化配置 — 重启自动挂载
默认情况下重启 NAS 后挂载会丢失。需要配置/etc/fstab + 启动脚本实现自动挂载。7.1 备份原 fstab
Shell安全操作# 先备份原 fstab,防止改错导致系统无法启动 cp /etc/fstab /etc/fstab.bak
7.2 查看当前 fstab
Shell查看cat /etc/fstab
none /proc proc defaults 0 0/dev/root / ext4 defaults 1 1/dev/md2 /volume2 btrfs auto_reclaim_space,synoacl,ssd,relatime 0 0/dev/md3 /volume1 btrfs auto_reclaim_space,synoacl,ssd,relatime 0 0
7.3 添加 fstab 挂载条目
Shell核心配置# 追加 CIFS 挂载条目到 fstab
echo '//192.168.1.10/Btest /volume1/remote/Btest cifs username=nasadmin,password=123,noperm,nounix,_netdev 0 0' \
>> /etc/fstabfstab 格式说明:
远程地址本地挂载点文件系统类型挂载选项dump备份fsck检查_netdev 参数很关键,它告诉系统这是网络文件系统,必须等网络启动后再挂载。 7.4 验证 fstab 内容
Shell验证cat /etc/fstab
none /proc proc defaults 0 0/dev/root / ext4 defaults 1 1/dev/md2 /volume2 btrfs auto_reclaim_space,synoacl,ssd,relatime 0 0/dev/md3 /volume1 btrfs auto_reclaim_space,synoacl,ssd,relatime 0 0//192.168.1.10/Btest /volume1/remote/Btest cifs username=nasadmin,password=123,noperm,nounix,_netdev 0 0
7.5 创建开机启动脚本
Synology DSM 使用/usr/local/etc/rc.d/ 目录下的脚本作为开机自启动项。Shell创建启动脚本cat > /usr/local/etc/rc.d/S99mount_Btest.sh << 'EOF'
#!/bin/sh
# ========================================
# 开机自动挂载 Btest 共享目录
# ========================================
MOUNT_POINT="/volume1/remote/Btest"
REMOTE_SHARE="//192.168.1.10/Btest"
USERNAME="nasadmin"
PASSWORD="123"
case "$1" in
start)
# 创建挂载点(如不存在)
mkdir -p "$MOUNT_POINT"
# 检查是否已挂载
if ! mount | grep -q "$MOUNT_POINT"; then
echo "Mounting $REMOTE_SHARE to $MOUNT_POINT..."
mount -t cifs "$REMOTE_SHARE" "$MOUNT_POINT" \
-o username="$USERNAME",password="$PASSWORD",noperm,nounix,_netdev
if [ $? -eq 0 ]; then
echo "Successfully mounted $REMOTE_SHARE"
else
echo "Failed to mount $REMOTE_SHARE"
fi
else
echo "$REMOTE_SHARE is already mounted"
fi
;;
stop)
echo "Unmounting $MOUNT_POINT..."
umount "$MOUNT_POINT" 2>/dev/null
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
EOF7.6 设置脚本可执行权限
Shell权限chmod +x /usr/local/etc/rc.d/S99mount_Btest.sh
7.7 验证启动脚本
Shell测试# 先卸载当前挂载 umount /volume1/remote/Btest # 用启动脚本重新挂载 /usr/local/etc/rc.d/S99mount_Btest.sh start
Mounting //192.168.1.10/Btest to /volume1/remote/Btest...Successfully mounted //192.168.1.10/Btest
验证完成: 脚本能正确执行挂载操作。下次重启 NAS 时,该脚本会自动运行。
8 常用管理命令速查
| 操作 | 命令 |
|---|---|
| 查看挂载状态 | mount | grep cifs |
| 查看挂载点内容 | ls -la /volume1/remote/Btest/ |
| 手动卸载 | umount /volume1/remote/Btest |
| 强制卸载(占用时) | umount -l /volume1/remote/Btest |
| 手动挂载 | mount -t cifs //192.168.1.10/Btest /volume1/remote/Btest -o username=nasadmin,password=123,noperm,nounix |
| 测试 fstab | mount -a |
| 查看 fstab | cat /etc/fstab |
| 备份 fstab | cp /etc/fstab /etc/fstab.bak |
| 恢复 fstab | cp /etc/fstab.bak /etc/fstab |
9 各 Linux 发行版持久化配置差异
挂载命令通用,但开机自动挂载的配置方式因发行版而异。9.1 Debian / Ubuntu
Shellfstab# 编辑 fstab nano /etc/fstab # 添加以下行: //192.168.1.10/Btest /mnt/Btest cifs credentials=/root/.smbcreds,uid=1000,gid=1000,_netdev 0 0 # 创建密码文件(比明文写在 fstab 中更安全) cat > /root/.smbcreds << 'EOF' username=nasadmin password=123 EOF chmod 600 /root/.smbcreds # 创建挂载点并测试 mkdir -p /mnt/Btest mount -a
说明:
credentials 文件存储密码更安全。uid=1000,gid=1000 让指定用户有读写权限,不加则只有 root 可访问。 9.2 CentOS / RHEL 7
Shellfstab# 编辑 fstab vi /etc/fstab # 添加以下行: //192.168.1.10/Btest /mnt/Btest cifs username=nasadmin,password=123,noperm,nounix,_netdev 0 0 # 创建挂载点并测试 mkdir -p /mnt/Btest mount -a
9.3 CentOS 8+ / Rocky / Alma / Fedora
Shellfstab# 编辑 fstab vi /etc/fstab # 添加以下行: //192.168.1.10/Btest /mnt/Btest cifs username=nasadmin,password=123,noperm,nounix,_netdev 0 0 # 创建挂载点并测试 mkdir -p /mnt/Btest mount -a
9.4 Arch / Manjaro
Shellfstab# 编辑 fstab nano /etc/fstab # 添加以下行(x-systemd.automount 可按需挂载): //192.168.1.10/Btest /mnt/Btest cifs username=nasadmin,password=123,noperm,nounix,_netdev,x-systemd.automount 0 0 # 创建挂载点并测试 mkdir -p /mnt/Btest mount -a
提示:
x-systemd.automount 让系统在第一次访问时才挂载,比启动时挂载更快。 9.5 Synology DSM(群晖)
Shellfstab + 启动脚本# fstab 添加
echo '//192.168.1.10/Btest /volume1/remote/Btest cifs username=nasadmin,password=123,noperm,nounix,_netdev 0 0' >> /etc/fstab
# 创建开机启动脚本
cat > /usr/local/etc/rc.d/S99mount_Btest.sh << 'EOF'
#!/bin/sh
case "$1" in
start)
mkdir -p /volume1/remote/Btest
mount -t cifs //192.168.1.10/Btest /volume1/remote/Btest \
-o username=nasadmin,password=123,noperm,nounix,_netdev
;;
stop)
umount /volume1/remote/Btest 2>/dev/null
;;
esac
EOF
chmod +x /usr/local/etc/rc.d/S99mount_Btest.sh9.6 通用 fstab 格式说明
| 字段 | 说明 | 示例 |
|---|---|---|
| 远程地址 | SMB 服务器和共享名 | //192.168.1.10/Btest |
| 挂载点 | 本地目录(需提前创建) | /mnt/Btest |
| 文件系统类型 | 固定为 cifs | cifs |
| 挂载选项 | 认证 + 兼容性参数 | username=xx,password=xx,noperm,nounix,_netdev |
| dump 备份 | 0 = 不备份 | 0 |
| fsck 检查 | 0 = 不检查 | 0 |
10 常见问题 & 故障排查
问题 1:mount 报错 "No username specified"
CIFS VFS: No username specified
原因: mount.cifs 参数格式不对,或 DSM 内核兼容性问题。解决: 添加
noperm,nounix 参数。问题 2:挂载后 ls 无权限
ls: cannot access '/volume1/remote/Btest/': No such file or directory
原因: 挂载成功但目录权限异常。解决: 加
noperm 参数跳过本地权限检查。问题 3:umount 报 "target is busy"
umount: /volume1/remote/Btest: target is busy
原因: 有进程正在使用挂载点。解决: 使用懒卸载
umount -l /volume1/remote/Btest。问题 4:DSM File Station 看不到挂载目录
原因: DSM 只显示共享文件夹,命令行创建的普通目录不在 File Station 中显示。解决: 把文件放到 DSM 已有的共享文件夹中(如
/volume1/测试文件/)。~ 本次操作完整流程
Step 1 — 卸载旧挂载卸载之前的 music 共享 — umount -l 成功
Step 2 — 匿名探测smbclient -N 列出共享 — 发现 7 个共享(匿名受限)
Step 3 — 账号探测smbclient -U nasadmin%123 — 看到 31 个共享目录
Step 4 — 验证权限smbclient 读写测试 Btest — 读写权限正常
Step 5 — 创建挂载点mkdir -p /volume1/remote/Btest
Step 6 — 挂载mount -t cifs ... noperm,nounix — 挂载成功
Step 7 — 配置 fstab写入 /etc/fstab 持久化条目 — 完成
Step 8 — 开机脚本创建 S99mount_Btest.sh 启动脚本 — 完成
Step 9 — 验证ls 检查远程文件列表 — 正常读取
生成时间:2026-08-21 | 系统:Synology DSM (synology_broadwell_3617xs) | 挂载点:/volume1/remote/Btest 本文整理自郑州鼎益技术资料《挂载操作记录》,公开发布前已做脱敏与校订 · 最后校订 2026-11-11