当前位置: 首页 > news >正文

Ubuntu Debian 系统下挂载 Samba 共享目录的完整指南

文章目录

  • Ubuntu & Debian 系统下挂载 Samba 共享目录的完整指南
    • 前提条件
    • 挂载 Samba 共享
      • 临时挂载
      • 避免明文密码
      • 永久挂载
    • 常见选项
    • 卸载
    • 故障排查

Ubuntu & Debian 系统下挂载 Samba 共享目录的完整指南

想把NAS中的内容通过Samba挂载到 OrangePi 5B,但是 OrangePi 5B 提供的内核默认是没有开启 CONFIG_CIFS的,所以就整理了一下。

在 Ubuntu/Debian 系统上挂载 Samba 共享目录可以通过 mount 命令结合 cifs 文件系统类型实现。以下是具体步骤和示例:

前提条件

  1. 确保系统已安装 cifs-utils 软件包。如果未安装,可以运行:

    sudo apt update
    sudo apt install cifs-utils
    
  2. 确认你有 Samba 服务器的 IP 地址或主机名、共享目录名称,以及访问所需的用户名和密码(如果需要认证)。

挂载 Samba 共享

临时挂载

使用以下命令临时挂载 Samba 共享目录:

sudo mount -t cifs //SMB_SERVER_IP/SHARE_NAME /mnt/smb -o username=YOUR_USERNAME,password=YOUR_PASSWORD
  • //SMB_SERVER_IP/SHARE_NAME:Samba 服务器地址和共享目录名,例如 //192.168.1.100/share
  • /mnt/smb:本地挂载点(需提前创建,例如 sudo mkdir /mnt/smb)。
  • -o username=YOUR_USERNAME,password=YOUR_PASSWORD:访问共享的用户名和密码。

示例:

sudo mkdir /mnt/smb
sudo mount -t cifs -o username=admin,password=123456 //192.168.1.100/share /mnt/smb

挂载成功后,可用 ls /mnt/smb 查看共享目录内容。

避免明文密码

为安全起见,避免在命令行输入密码,可以使用凭据文件:

  1. 创建凭据文件,例如 /etc/smb_credentials

    sudo nano /etc/smb_credentials
    

    输入以下内容:

    username=YOUR_USERNAME
    password=YOUR_PASSWORD
    

    保存并退出,然后设置权限:

    sudo chmod 600 /etc/smb_credentials
    
  2. 修改挂载命令:

    sudo mount -t cifs-o credentials=/etc/smb_credentials //192.168.1.100/share /mnt/smb
    

永久挂载

要实现开机自动挂载,编辑 /etc/fstab

  1. 打开文件:

    sudo nano /etc/fstab
    
  2. 添加一行:

    //192.168.1.100/share  /mnt/smb  cifs  credentials=/etc/smb_credentials,uid=1000,gid=1000  0  0
    
    • uid=1000,gid=1000:指定文件拥有者和组(用 id 查看当前用户 UID 和 GID)。
    • 确保 /mnt/smb 已存在。
  3. 保存退出后,测试挂载:

    sudo mount -a
    

常见选项

  • rw:读写权限(默认)。
  • ro:只读权限。
  • vers=3.0:指定 SMB 协议版本(视服务器支持情况而定)。
  • file_mode=0644,dir_mode=0755:设置文件和目录默认权限。

示例(指定协议版本):

sudo mount -t cifs -o credentials=/etc/smb_credentials,vers=3.0 //192.168.1.100/share /mnt/smb

卸载

卸载 Samba 共享:

sudo umount /mnt/smb

故障排查

  • 挂载失败时,检查网络连接(ping SMB_SERVER_IP)。

  • 查看日志:sudo tail -f /var/log/syslog

  • 确保 Samba 服务器允许你的 IP 访问,且防火墙未阻止端口 445 或 139。

  • mount error: cifs filesystem not supported by the system

    1. 检查并安装 cifs-utils

    2. 检查内核是否支持 CIFS

      CIFS 是一个内核级别的文件系统,挂载需要内核加载 cifs 模块。运行以下命令检查是否已加载:

      lsmod | grep cifs
      
      • 如果有输出,说明 cifs 模块已加载。

      • 如果没有输出,尝试手动加载:

        sudo modprobe cifs
        

        再次运行 lsmod | grep cifs 确认模块是否加载成功。如果加载失败或仍无输出,可能需要检查内核支持情况。

    3. 验证内核是否编译了 CIFS 支持

      如果 modprobe cifs 返回错误(如 modprobe: FATAL: Module cifs not found),可能是你的内核未编译 CIFS 支持。你可以检查当前内核的配置文件:

      zcat /proc/config.gz | grep CONFIG_CIFS
      
      • 如果输出包含 CONFIG_CIFS=m 或 CONFIG_CIFS=y,说明内核支持 CIFS。
      • 如果输出是 CONFIG_CIFS is not set 或没有输出,说明当前内核未启用 CIFS。(到这那就只能重新编译内核了)

相关文章:

  • 用java写一个简易的本地聊天室
  • 使用vscode搭建pywebview集成vue项目示例
  • bonding技术
  • span与span之间的空白如何解决?
  • Shopify Checkout UI Extensions
  • 电阻的阻值识别
  • 数据结构5(初):排序
  • 【跟着灵神刷力扣】定长滑动窗口
  • 【动态规划】相关复习
  • python数据增强和转换
  • linux 设置tomcat开机自启动
  • 面试常问系列(一)-神经网络参数初始化
  • 大模型量化框架GPTQModel的基本使用方法
  • 【yolo】yolo训练报错,以及解决方案
  • Linux 线程概念
  • 2025.03.21首板涨停股票分析
  • nt!KeWaitForMultipleObjects函数分析之一个例子ExpWorkerThreadBalanceManager
  • 字节手撕题 小于 n 的最大整数 贪心 回溯 剪枝 全排列
  • 基于springboot的地方美食分享网站(全套)
  • 基于Flux模型的多模态可控图像生成工作流实践
  • 国家统计局公布2024年城镇单位就业人员年平均工资情况
  • 探秘多维魅力,长江经济带、珠三角媒体总编辑岳阳行启动
  • 讲座|消逝之钟:《红楼梦》与《布登勃洛克一家》中的时间观
  • 《上海市建筑信息模型技术应用指南(2025版)》发布
  • 国防部:赖清德歪曲二战历史,背叛民族令人不齿
  • 创同期历史新高!1至4月全国铁路发送旅客14.6亿人次