在Ubuntu中自动挂载SMB/CIFS共享

devtools/2024/10/5 18:25:40/

文章目录

  • 0. 引言
  • 1. 使用`credentials`文件存储认证信息
  • 2. 挂载点的准备
  • 3. 必要软件的安装
  • 4. 调整挂载参数
  • 5. 测试挂载
  • 6. 日志调试

0. 引言

本文是自己挂载共享磁盘的实践记录,将详细介绍如何在Linux系统中配置自动挂载SMB/CIFS共享,并提供一些常见问题的解决方案。

1. 使用credentials文件存储认证信息

直接在/etc/fstab文件中包含用户名和密码可能导致解析问题,尤其是密码中如果包含特殊字符。因此,使用一个credentials文件来存储这些信息是一种更安全且更稳定的方法。

步骤:

  • 创建credentials文件

    创建一个文件,例如/home/user/.smbcredentials,并添加以下内容:

    username=ABC
    password=XYZ
    
  • 设置文件权限

    确保文件的权限设置正确,只允许所有者读取:

    chmod 600 /home/user/.smbcredentials
    
  • 修改/etc/fstab

    使用credentials文件的路径来替代在fstab中直接写入用户名和密码。

    //192.168.x.xx/share /mnt/share cifs credentials=/home/user/.smbcredentials,iocharset=utf8,vers=2.0,_netdev,auto,dir_mode=0777,file_mode=0777 0 0
    

2. 挂载点的准备

确保挂载点目录已经存在并设置了正确的权限:

sudo mkdir -p /mnt/share
sudo chmod 755 /mnt/share

3. 必要软件的安装

确保系统已安装必要的软件包cifs-utils,这是挂载CIFS共享的必需工具。

sudo apt-get update
sudo apt-get install cifs-utils

4. 调整挂载参数

由于网络可能不会在系统启动时立即可用,使用_netdev选项确保网络设备就绪后再进行挂载。另外,x-systemd.automountx-systemd.requires=network-online.target可以帮助控制挂载时机,以避免启动时挂载失败。

//192.168.x.xx/share /mnt/share cifs credentials=/home/user/.smbcredentials,iocharset=utf8,vers=2.0,_netdev,auto,dir_mode=0777,file_mode=0777,x-systemd.automount,x-systemd.requires=network-online.target 0 0

5. 测试挂载

在完成/etc/fstab的修改后,可以通过以下命令测试挂载是否配置正确:

sudo mount -a

如果没有错误,那么配置成功。可以通过重启机器来验证是否能够自动挂载

6. 日志调试

如果自动挂载失败,可以查看系统日志来获取更多信息:

journalctl -xe
dmesg | grep CIFS

#7. 常见问题解决

如果在系统启动时网络尚未准备好,可以考虑启用systemd-networkd-wait-online.service

sudo systemctl enable systemd-networkd-wait-online.service

或者添加nofail选项到fstab条目中,以防止挂载失败影响系统启动。

//192.168.x.xx/share /mnt/share cifs credentials=/home/user/.smbcredentials,iocharset=utf8,vers=2.0,_netdev,auto,nofail,dir_mode=0777,file_mode=0777 0 0

http://www.ppmy.cn/devtools/118878.html

相关文章

荣耀手机AI搜索革新体验:一键总结归纳,让信息获取更高效

在信息爆炸的时代,我们每天都被海量的数据包围,如何快速、准确地获取所需信息成为了现代人的一大挑战。 近日,荣耀手机宣布其AI搜索功能正式上线,这一创新举措不仅为使用者带来了前所未有的便捷体验,更在智能手机领域…

巧用枚举消除条件判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen 在上一篇的文章结合HashMap与Java 8的Function和Optional消除ifelse判断中有讲到如何结合HashMap与Java 8的Function和Optional消除ifelse判断&#xff…

js 如何监听 body 内容是否改变

如果您想监听body内容的变化,并作出响应,可以使用MutationObserver。以下是一个简单的例子,它会在body内容变化时在控制台输出一条消息: // 创建一个观察者对象 const observer new MutationObserver(function(mutations, obser…

1. go 环境与命令

1. go 环境搭建 SDK 安装 Go 官网:golang.orgGo 中文社区:https://studygolang.com/dlGo API文档:https/golang.org 或 https://studygolang.com/pkgdoc 目录 api :api 存放bin:go命令src:go源码目录 …

如何判断IP有没有被污染过

IP污染,通常指的是网络中的某个IP地址由于恶意行为、错误配置或其他原因,导致其无法正常解析或连接到目标网站。这种现象会影响用户的网络体验,特别是在访问特定网站或服务时。本文将探讨如何判断一个IP地址是否被污染过,以及如何…

场效应管AO3400A是什么,在电路中起到什么作用

场效应管AO3400A是一种高性能的N沟道MOSFET,主要用于电源管理和高频开关应用。下面将详细介绍场效应管AO3400A的作用: 基本功能:场效应管AO3400A作为一种N沟道增强型MOSFET(金属氧化物半导体场效应晶体管)&#xff0c…

Windows开发工具使用技巧

在 Windows 上进行开发时,有许多工具和技巧可以提升开发效率和用户体验。以下是一些常用的开发工具和技巧: 常用开发工具 1. Visual Studio Code (VS Code) - 插件管理:利用扩展市场(Extension Marketplace)安装各种…

Flink和Spark的区别

1、设计理念不同 flink:Flink是基于事件驱动的,是面向流的处理框架, Flink基于每个事件一行一行地流式处理,是真正的流式计算. 另外他也可以基于流来模拟批进行计算实现批处理。 spark:Spark的技术理念是使用微批来模拟流的计算,…