mount 命令用于将文件系统(如硬盘分区、U盘、光盘、网络共享等)附加到 Linux 目录树的一个指定节点(即“挂载点”)上,挂载之后,你就可以通过访问该目录来使用文件系统中的数据。

基本语法
mount [选项] [设备名] [挂载点]
- 选项: 控制挂载行为的各种参数。
- 设备名: 指定要挂载的设备或文件系统,可以是设备路径(如
/dev/sdb1)、卷标(如LABEL=MY_DATA)或 UUID(如UUID=a1b2c3d4-e5f6-...)。 - 挂载点: 指定 Linux 目录树中的一个空目录,挂载成功后,对该目录的访问就是对设备文件系统的访问。
查看挂载信息
在挂载之前或之后,了解当前的挂载状态非常有用。
使用 mount 命令
直接输入 mount 命令会列出当前系统中所有已挂载的文件系统。
mount
输出示例:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=8155480k,nr_inodes=2038870,mode=755)
...
/dev/sda1 on / type ext4 (rw,relatime)
/dev/sdb1 on /mnt/data type ext4 (rw,nosuid,nodev,relatime)
每一列的含义:

- 设备名: 如
/dev/sda1,/dev/sdb1。 - 挂载点: 如 ,
/mnt/data。 - 文件系统类型: 如
ext4,sysfs,proc。 - 挂载选项: 如
(rw,relatime),表示可读写,相对时间访问。
使用 /proc/mounts 文件
mount 命令显示的信息其实来自 /proc/mounts 文件,你也可以直接查看这个文件,内容与 mount 命令的输出几乎一样。
cat /proc/mounts
使用 df 命令
df (disk free) 命令以更易读的方式显示每个挂载点的磁盘使用情况。
df -h
-h 选项表示 "human-readable"(人类可读),会使用 K, M, G 等单位。
输出示例:

Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
...
/dev/sda1 50G 20G 28G 42% /
/dev/sdb1 500G 80G 395G 17% /mnt/data
常用挂载命令示例
挂载本地硬盘分区(最常用)
假设你有一个新的硬盘 /dev/sdb1,文件系统类型是 ext4,你想把它挂载到 /mnt/data 目录下。
步骤 1:创建挂载点 挂载点必须是一个已存在的空目录。
sudo mkdir -p /mnt/data
步骤 2:执行挂载
sudo mount /dev/sdb1 /mnt/data
挂载 U 盘或移动硬盘
当你插入 U 盘后,系统通常会自动挂载,你可以使用 dmesg | tail 或 lsblk 命令来查看新识别的设备名称,/dev/sdc1。
假设 U 盘是 FAT32 格式,设备名为 /dev/sdc1。
# 创建挂载点 sudo mkdir -p /media/usb # 挂载 FAT32 文件系统 sudo mount -t vfat /dev/sdc1 /media/usb
-t vfat 指定了文件系统类型为 vfat(即 FAT32)。
挂载 ISO 镜像文件
有时你需要挂载一个 .iso 文件来访问其内容,例如安装软件。
假设你有一个 CentOS-7.iso 文件在 /home/user/Downloads 目录下。
# 创建挂载点 sudo mkdir -p /mnt/iso # 挂载 ISO 文件(使用 loop 设备) sudo mount -o loop /home/user/Downloads/CentOS-7.iso /mnt/iso
-o loop 选项告诉 mount 命令将一个普通文件当作一个块设备来处理。
挂载网络文件系统
挂载 NFS (Network File System):
假设有一台 NFS 服务器 168.1.100,其共享目录为 /home/share。
# 首先需要安装 nfs-utils 包 (CentOS/RHEL) 或 nfs-common (Debian/Ubuntu) # sudo yum install nfs-utils (CentOS/RHEL) # sudo apt-get install nfs-common (Debian/Ubuntu) # 创建本地挂载点 sudo mkdir -p /mnt/nfs_share # 挂载 sudo mount 192.168.1.100:/home/share /mnt/nfs_share
挂载 CIFS (Common Internet File System, 也叫 SMB):
假设有一台 Windows 共享,路径为 \\192.168.1.200\public,用户名是 user,密码是 password。
# 首先需要安装 cifs-utils 包 # sudo yum install cifs-utils (CentOS/RHEL) # sudo apt-get install cifs-utils (Debian/Ubuntu) # 创建本地挂载点 sudo mkdir -p /mnt/s_share # 挂载 sudo mount -t cifs //192.168.1.200/public /mnt/s_share -o username=user,password=password
常用挂载选项
通过 -o 选项可以指定多个参数,用逗号隔开。
| 选项 | 全称 | 描述 |
|---|---|---|
ro |
read-only |
以只读方式挂载。 |
rw |
read-write |
以读写方式挂载(默认)。 |
defaults |
- | 使用默认选项(rw, suid, dev, exec, auto, nouser, async)。 |
noexec |
- | 禁止在文件系统中执行二进制文件。 |
exec |
- | 允许执行二进制文件(默认)。 |
nosuid |
- | 禁止 set-user-identifier 或 set-group-identifier 位生效。 |
suid |
- | 允许 suid 位生效(默认)。 |
nodev |
- | 不解释设备文件。 |
dev |
- | 解释设备文件(默认)。 |
auto |
- | 可以用 mount -a 命令自动挂载(默认)。 |
noauto |
- | 不能用 mount -a 命令自动挂载,只能手动挂载。 |
user |
- | 允许普通用户挂载设备,卸载时也必须是该用户或 root。 |
nouser |
- | 只有 root 用户可以挂载(默认)。 |
async |
- | 异步写入数据,性能高但可能数据丢失(默认)。 |
sync |
- | 同步写入数据,确保数据安全,但性能较低。 |
示例: 以只读方式挂载 U 盘:
sudo mount -o ro /dev/sdc1 /media/usb
卸载文件系统
使用 umount 命令来卸载一个文件系统,注意是 umount,而不是 unmount。
umount [挂载点或设备名]
示例:
# 方法1:使用挂载点 sudo umount /mnt/data # 方法2:使用设备名 sudo umount /dev/sdb1
常见错误:
如果设备正在被使用(比如有程序打开了该目录下的文件,或者你当前就在该目录下),umount 会失败并提示 device is busy。
解决方法:
- 离开挂载点所在的目录(
cd /)。 - 结束占用该设备的进程(可以使用
lsof | grep /mnt/data查找进程,然后用kill命令结束)。 - 使用强制卸载(不推荐,可能导致数据损坏):
sudo umount -l /mnt/data # (lazy unmount)
开机自动挂载 (/etc/fstab)
为了每次开机都能自动挂载设备,需要编辑 /etc/fstab (file system table) 文件。
文件格式:
# <设备> <挂载点> <文件系统类型> <挂载选项> <dump> <fsck>
UUID=a1b2c3d4... /mnt/data ext4 defaults 0 2
- 设备: 推荐使用
UUID或LABEL,因为设备名(如/dev/sdb1)可能会变。- 查找 UUID:
sudo blkid /dev/sdb1 - 查找 LABEL:
sudo blkid /dev/sdb1
- 查找 UUID:
- 挂载点: 设备挂载到的目录。
- 文件系统类型: 如
ext4,vfat,ntfs,nfs等。 - 挂载选项: 可以是
defaults,也可以是具体的选项,如rw,relatime。 - dump:
dump备份工具的开关。0表示不备份,1表示每天备份,通常设置为0。 - fsck: 系统启动时用
fsck检查文件系统的顺序。0表示不检查,1表示是根文件系统,2表示其他需要检查的分区,通常根分区设为1,其他设为2或0。
编辑 /etc/fstab 示例:
# 获取你的设备信息 sudo blkid /dev/sdb1 # 输出可能是: /dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" # 用文本编辑器打开 /etc/fstab sudo nano /etc/fstab # 在文件末尾添加下面一行 UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/data ext4 defaults 0 2
保存后,可以测试 fstab 是否正确:
sudo mount -a
如果此命令没有报错,说明 fstab 语法正确,重启后,设备也会自动挂载,如果报错,请检查 /etc/fstab 文件的语法。
