郑州鼎益 郑州鼎益 DINGYI INFO
基础使用2026-08-27约 26 分钟郑州鼎益技术团队 整理

SMB/CIFS 挂载速查:各 Linux 发行版安装命令与挂载报错对照

Debian/Ubuntu、RHEL/CentOS/Rocky、Fedora、Arch、openSUSE 的 cifs-utils 与 smbclient 安装命令一次列全,附凭据文件、挂载参数与报错速查。

SMBLinux速查表排错
适用于所有 Linux 发行版 — Synology DSM / Ubuntu / CentOS / Debian / Rocky / Arch 等Synology DSM • Ubuntu • CentOS • Debian • Rocky Linux

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 / Ubuntuaptapt install cifs-utils
CentOS / RHEL 7yumyum install cifs-utils
CentOS / RHEL 8+ / Rocky / Almadnfdnf install cifs-utils
Fedoradnfdnf install cifs-utils
Arch / Manjaropacmanpacman -S cifs-utils
openSUSE / SLESzypperzypper install cifs-utils
Synology DSM预装无需安装

1.3 安装 smbclient(可选,用于探测共享)

smbclient 不是必须的,但用来探测远程共享目录非常方便。
发行版安装命令
Debian / Ubuntuapt install smbclient
CentOS / RHEL 7yum install samba-client
CentOS / RHEL 8+ / Rocky / Almadnf install samba-client
Fedoradnf install samba-client
Arch / Manjaropacman -S smbclient
openSUSE / SLESzypper install samba-client
一键安装(Debian/Ubuntu):
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 -y

1.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=123
mount: 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=nasadminSMB 认证用户名
password=123SMB 认证密码
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/fstab
fstab 格式说明:
远程地址本地挂载点文件系统类型挂载选项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
EOF

7.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
测试 fstabmount -a
查看 fstabcat /etc/fstab
备份 fstabcp /etc/fstab /etc/fstab.bak
恢复 fstabcp /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.sh

9.6 通用 fstab 格式说明

字段说明示例
远程地址SMB 服务器和共享名//192.168.1.10/Btest
挂载点本地目录(需提前创建)/mnt/Btest
文件系统类型固定为 cifscifs
挂载选项认证 + 兼容性参数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

照着做还是没跑通?

把 NAS 型号、报错截图和现有网络拓扑发我们,郑州本地工程师可远程协助或上门部署。

免费咨询 →
← Mac 连 NAS:在访达里挂载共享文件夹全部文档Linux 挂载群晖 iSCSI LUN:CHAP 认证、格式化与开机自启 →