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 # 测试配置是否正确
六、注意事项
- 权限问题 :普通用户挂载通常需要
sudo
权限,部分网络挂载可配置为允许普通用户 - 网络依赖 :网络文件系统挂载依赖网络连接,建议使用
_netdev
选项延迟挂载 - 兼容性 :
- NTFS格式需要
ntfs-3g
驱动 - exFAT格式需要
exfat-fuse
和exfat-utils
- NTFS格式需要
- 安全建议 :
- 敏感凭据避免直接写在命令行,使用凭据文件
- 网络共享适当限制访问权限
- 不使用的挂载点及时卸载
通过mount
命令的灵活运用,可以无缝整合本地存储和网络资源,极大扩展Linux系统的存储能力和资源共享效率。