Linux mount 命令

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

一、基础语法与核心概念

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

二、常用参数详解及示例

1. 通用基础参数

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

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

本地文件系统示例

bash 复制代码
# 挂载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

网络文件系统示例

bash 复制代码
# 挂载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 <选项>:挂载选项(多选项用逗号分隔)

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

通用选项示例

bash 复制代码
# 只读挂载
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

用户权限控制示例

bash 复制代码
# 指定挂载后文件的所有者和权限
mount -o uid=1000,gid=1000,umask=077 /dev/sdb1 /mnt/private_usb
-a:挂载/etc/fstab中所有未挂载项
bash 复制代码
# 挂载所有在/etc/fstab中定义的文件系统
mount -a

# 配合-v显示详细过程
mount -av
-l:显示已挂载文件系统并显示卷标
bash 复制代码
mount -l

输出示例:

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

2. 设备标识相关参数

-U <UUID>:通过UUID挂载

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

bash 复制代码
# 先查看UUID
blkid /dev/sdb1

# 通过UUID挂载
mount -U 123e4567-e89b-12d3-a456-426614174000 /mnt/data
-L <卷标>:通过卷标挂载
bash 复制代码
# 查看卷标
e2label /dev/sdb1

# 通过卷标挂载
mount -L BACKUP_DISK /mnt/backup

3. 特殊挂载参数

--bind:目录绑定挂载

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

bash 复制代码
# 绑定挂载目录
mount --bind /home/user/documents /var/www/html/docs

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

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

1. NFS(Network File System)挂载

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

bash 复制代码
# 安装客户端
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工具包。

bash 复制代码
# 安装工具
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协议的网络挂载,安全且易配置。

bash 复制代码
# 安装工具
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共享。

bash 复制代码
# 安装工具
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)

bash 复制代码
# 通过挂载点卸载
umount /mnt/usb

# 通过设备卸载
umount /dev/sdb1

# 强制卸载(设备忙时)
umount -f /mnt/nfs_share

# 懒惰卸载(稍后卸载)
umount -l /mnt/sshfs

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

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

bash 复制代码
# 本地文件系统示例
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

配置后测试:

bash 复制代码
sudo mount -a  # 测试配置是否正确

六、注意事项

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

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

相关推荐
程序员 _孜然3 小时前
Ubuntu/Debian修改网卡名字enP3p49s0为eth0
linux·运维·驱动开发·嵌入式硬件·ubuntu·debian
暗流者3 小时前
AAA 服务器与 RADIUS 协议笔记
运维·服务器·笔记
锐策4 小时前
Git checkout 与 Git reset 核心区别解析(分支与版本关联逻辑)
运维·git
CTRA王大大5 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang
小张程序人生5 小时前
《VMware 安装 CentOS 7.9 虚拟机详细教程(含图解步骤)》
linux·centos
青草地溪水旁6 小时前
服务发现实例和服务实例是不同的
服务器·服务发现·服务实例
泡沫冰@7 小时前
管理 SELinux 安全性
linux
于冬恋7 小时前
RabbitMQ高级
服务器·网络·rabbitmq
展信佳_daydayup8 小时前
03 基础篇-润和开发板连接过程
linux·开源·嵌入式