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

Linux mount 命令

mount 命令是 Linux 系统中用于挂载各种文件系统的核心工具,不仅支持本地存储设备,还能挂载网络共享资源。本报告将详细介绍其所有常用参数、文件系统类型(包括网络文件系统)及具体应用场景。

一、基础语法与核心概念

mount [选项] [-t 文件系统类型] [设备/网络资源] 挂载点
  • 设备/网络资源:可以是本地存储设备(如/dev/sda1)、镜像文件或网络共享路径
  • 挂载点:必须是已存在的空目录
  • 文件系统类型:指定要挂载的文件系统格式

二、常用参数详解及示例

1. 通用基础参数

-t <文件系统类型>:指定文件系统类型

指定要挂载的文件系统格式,支持本地和网络多种类型。

本地文件系统示例

# 挂载ext4文件系统
mount -t ext4 /dev/sda2 /mnt/linux_data# 挂载FAT32文件系统(U盘常用)
mount -t vfat /dev/sdb1 /mnt/usb# 挂载NTFS文件系统(需安装ntfs-3g)
mount -t ntfs-3g /dev/sdc1 /mnt/windows_drive

网络文件系统示例

# 挂载NFS网络共享
mount -t nfs 192.168.1.100:/data /mnt/nfs_share# 挂载CIFS/SMB共享(Windows共享)
mount -t cifs //192.168.1.101/shared /mnt/smb_share -o username=user,password=pass
-o <选项>:挂载选项(多选项用逗号分隔)

用于设置挂载的各种特性,不同文件系统支持的选项有所不同。

通用选项示例

# 只读挂载
mount -o ro /dev/sr0 /mnt/cdrom# 允许所有用户读写
mount -o rw,umask=000 /dev/sdb1 /mnt/public_usb# 重新挂载并修改选项(常用)
mount -o remount,rw /mnt/data# 挂载ISO镜像文件
mount -o loop,ro ubuntu-22.04.iso /mnt/iso

用户权限控制示例

# 指定挂载后文件的所有者和权限
mount -o uid=1000,gid=1000,umask=077 /dev/sdb1 /mnt/private_usb
-a:挂载/etc/fstab中所有未挂载项
# 挂载所有在/etc/fstab中定义的文件系统
mount -a# 配合-v显示详细过程
mount -av
-l:显示已挂载文件系统并显示卷标
mount -l

输出示例:

/dev/sda2 on / type ext4 (rw,relatime) [root]
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077)
-v:详细模式,显示挂载过程
mount -v -t nfs 192.168.1.100:/data /mnt/nfs_share

2. 设备标识相关参数

-U <UUID>:通过UUID挂载

UUID是文件系统的唯一标识,比设备名(如/dev/sda1)更稳定。

# 先查看UUID
blkid /dev/sdb1# 通过UUID挂载
mount -U 123e4567-e89b-12d3-a456-426614174000 /mnt/data
-L <卷标>:通过卷标挂载
# 查看卷标
e2label /dev/sdb1# 通过卷标挂载
mount -L BACKUP_DISK /mnt/backup

3. 特殊挂载参数

--bind:目录绑定挂载

将一个目录内容映射到另一个目录,双向同步。

# 绑定挂载目录
mount --bind /home/user/documents /var/www/html/docs# 只读绑定
mount --bind -o ro /home/user/documents /var/www/html/docs
--move:移动挂载点
# 将已挂载的/mnt/old移动到/mnt/new
mount --move /mnt/old /mnt/new

三、网络文件系统挂载详解

1. NFS(Network File System)挂载

需先安装nfs-common(客户端)或nfs-kernel-server(服务器)。

# 安装客户端
sudo apt install nfs-common   # Debian/Ubuntu
sudo yum install nfs-utils    # RHEL/CentOS# 挂载NFSv4共享
mount -t nfs -o vers=4 192.168.1.100:/exports/data /mnt/nfs# 挂载NFSv3共享
mount -t nfs -o vers=3,sec=sys 192.168.1.100:/data /mnt/nfs_old

2. CIFS/SMB(Windows共享)挂载

需安装cifs-utils工具包。

# 安装工具
sudo apt install cifs-utils   # Debian/Ubuntu
sudo yum install cifs-utils   # RHEL/CentOS# 基本挂载
mount -t cifs //192.168.1.101/shared_folder /mnt/smb -o username=john,password=secret# 带域名的挂载
mount -t cifs //server.domain.com/share /mnt/smb -o username=john@domain,password=secret# 使用凭据文件挂载(更安全)
mount -t cifs //192.168.1.101/share /mnt/smb -o credentials=/etc/smb_creds

凭据文件/etc/smb_creds格式:

username=john
password=secret
domain=MYDOMAIN

3. SSHFS(通过SSH挂载远程目录)

基于SSH协议的网络挂载,安全且易配置。

# 安装工具
sudo apt install sshfs   # Debian/Ubuntu
sudo yum install sshfs   # RHEL/CentOS# 挂载远程目录
sshfs user@192.168.1.102:/home/user /mnt/sshfs# 卸载
fusermount -u /mnt/sshfs

4. FTP/FTPS挂载

使用curlftpfs工具挂载FTP共享。

# 安装工具
sudo apt install curlftpfs   # Debian/Ubuntu# 挂载FTP服务器
curlftpfs ftp://username:password@ftp.example.com /mnt/ftp# 挂载FTPS服务器
curlftpfs ftps://username:password@ftp.example.com /mnt/ftps

四、卸载文件系统(umount)

# 通过挂载点卸载
umount /mnt/usb# 通过设备卸载
umount /dev/sdb1# 强制卸载(设备忙时)
umount -f /mnt/nfs_share# 懒惰卸载(稍后卸载)
umount -l /mnt/sshfs

五、自动挂载配置(/etc/fstab)

为实现系统启动时自动挂载,可配置/etc/fstab文件:

# 本地文件系统示例
UUID=123e4567-e89b-12d3-a456-426614174000 /mnt/data ext4 defaults 0 2# NFS共享示例
192.168.1.100:/exports/data /mnt/nfs nfs defaults,vers=4 0 0# CIFS共享示例
//192.168.1.101/shared /mnt/smb cifs credentials=/etc/smb_creds,uid=1000,gid=1000 0 0# SSHFS示例(需额外配置)
user@192.168.1.102:/home/user /mnt/sshfs fuse.sshfs defaults,_netdev 0 0

配置后测试:

sudo mount -a  # 测试配置是否正确

六、注意事项

  1. 权限问题:普通用户挂载通常需要sudo权限,部分网络挂载可配置为允许普通用户
  2. 网络依赖:网络文件系统挂载依赖网络连接,建议使用_netdev选项延迟挂载
  3. 兼容性
    • NTFS格式需要ntfs-3g驱动
    • exFAT格式需要exfat-fuseexfat-utils
  4. 安全建议
    • 敏感凭据避免直接写在命令行,使用凭据文件
    • 网络共享适当限制访问权限
    • 不使用的挂载点及时卸载

通过mount命令的灵活运用,可以无缝整合本地存储和网络资源,极大扩展Linux系统的存储能力和资源共享效率。

http://www.dtcms.com/a/347713.html

相关文章:

  • PyInstaller将.py文件转为exe,执行文件在不同的电脑出现字体大小不一致问题原因分析及解决办法
  • Spring:IOC(控制反转 )、DI(依赖注入 )、AOP(通知类型、事务、拦截器)
  • 主流.NET 平台的NuGet 生态正在积极拥抱 AOT
  • 【84页PPT】智慧方案某著名企业某集团协同OA整体解决方案(附下载方式)
  • MySQL索引原理与优化全解析
  • 【每天一个知识点】训推一体机
  • 13.Shell脚本修炼手册---玩转 CASE 语句(应用场景与实践技巧)
  • GitHub Actions workflow最佳实践
  • 提问:温度不改变 logits 与概率的排名,为何还会影响模型输出?
  • Linux 进程间通信之System V 共享内存
  • 深入探讨集成学习:Bagging与Boosting的核心原理与实践
  • RAG系统开发中的12大痛点及应对策略
  • SVG.js 一个轻量且强大的图形库
  • Sql server的行转列
  • word——表格跨页显示表头
  • PCL点云库入门(第24讲)——PCL库点云特征之NARF特征描述 Normal Aligned Radial Feature(NARF)
  • VGG改进(4):融合Linear Attention的高效CNN设计与实践
  • 遥感机器学习入门实战教程|Sklearn案例⑧:评估指标(metrics)全解析
  • 机器学习案例——预测矿物类型(数据处理部分)
  • 如何在wsl2+Ubuntu中安装Eclipse
  • 第七章 利用Direct3D绘制几何体
  • 一个简洁的 C++ 日志模块实现
  • AI + 医疗:智能诊断如何突破技术瓶颈,走进基层医院?
  • Azure Kubernetes Service (AKS)
  • 在Linux环境中为Jupyter Lab安装Node.js环境
  • `sudo apt update` 总是失败
  • 【KO】前端面试六
  • X射线胸部肺炎检测:基于深度学习的医学影像分析项目
  • Trae Solo模式生成一个旅行足迹App
  • JS事件的概念