在 Linux 和类 Unix 系统中,挂载(mount) 是将一个设备、分区或远程文件系统与系统的某个目录(挂载点)关联的过程。通过挂载,用户可以访问设备上的文件和目录。
挂载命令:mount
mount
命令用于挂载文件系统或查看已挂载的文件系统。
基本语法
1 | mount [选项] [设备] [挂载点] |
- 设备:要挂载的设备或分区(如
/dev/sda1
、/dev/sdb2
,或远程文件系统路径)。 - 挂载点:系统中的一个目录(如
/mnt/mydisk
),需要提前创建。 - 选项:控制挂载行为的参数,例如只读挂载、文件系统类型等。
挂载常见操作
查看已挂载的文件系统
1 | mount |
- 显示当前系统中所有已挂载的文件系统及其详细信息。
示例输出:
1 | /dev/sda1 on / type ext4 (rw,relatime) |
/dev/sda1
:设备名。on /
:挂载点。type ext4
:文件系统类型。(rw,relatime)
:挂载选项,rw
表示可读写。
挂载文件系统
要挂载设备或分区,必须先知道设备名。可以通过以下命令查看设备分区信息:
1 | lsblk |
lsblk
输出示例:1
2
3
4
5
6NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 100G 0 part /
└─sda2 8:2 0 400G 0 part
sdb 8:16 0 1T 0 disk
└─sdb1 8:17 0 1T 0 part
挂载设备或分区到目录
1 | sudo mount /dev/sdb1 /mnt |
/dev/sdb1
:设备路径。/mnt
:挂载点目录,必须提前存在。
验证挂载
1 | mount | grep /mnt |
指定文件系统类型
如果文件系统类型不是自动识别或需要指定,可以用 -t
选项:
1 | sudo mount -t ext4 /dev/sdb1 /mnt |
ext4
:文件系统类型(常见的有ext4
、xfs
、vfat
、ntfs
等)。
只读挂载
使用 -o ro
选项挂载文件系统为只读:
1 | sudo mount -o ro /dev/sdb1 /mnt |
-o ro
:只读模式,挂载后无法写入数据。
挂载 ISO 文件
挂载 ISO 文件(光盘镜像)到目录:
1 | sudo mount -o loop /path/to/file.iso /mnt |
-o loop
:将文件作为一个虚拟设备挂载。
卸载文件系统
使用 umount
命令卸载挂载的文件系统。
1 | sudo umount /mnt |
- 卸载时的注意事项:
- 目标挂载点不能被占用(如终端正在该目录下),否则会报错。
- 可以使用
lsof
检查挂载点的占用情况:1
lsof | grep /mnt
永久挂载设备
临时挂载的设备在系统重启后会失效。如果需要永久挂载,可以编辑 /etc/fstab
文件。
编辑 /etc/fstab
文件
-
查看设备的 UUID:
1
blkid
示例输出:
1
2/dev/sda1: UUID="123e4567-e89b-12d3-a456-426655440000" TYPE="ext4"
/dev/sdb1: UUID="abcdef12-3456-7890-abcd-ef1234567890" TYPE="ext4" -
编辑
/etc/fstab
文件:1
sudo nano /etc/fstab
-
添加挂载项:
1
UUID=abcdef12-3456-7890-abcd-ef1234567890 /mnt ext4 defaults 0 0
- UUID:设备的唯一标识符(推荐使用 UUID,而不是设备名,避免设备名变化)。
- 挂载点:例如
/mnt
。 - 文件系统类型:例如
ext4
。 - 选项:
defaults
表示使用默认挂载选项,其他常见选项包括ro
(只读)、noexec
(禁止执行文件)等。
-
保存文件并退出。
-
测试挂载:
1
sudo mount -a
挂载网络文件系统(NFS 或 CIFS)
挂载 NFS(Network File System)
1 | sudo mount -t nfs 192.168.1.100:/shared /mnt |
192.168.1.100:/shared
:NFS 服务器地址和共享目录。/mnt
:本地挂载点。
挂载 CIFS(Windows SMB 文件共享)
1 | sudo mount -t cifs //192.168.1.100/shared /mnt -o username=user,password=pass |
//192.168.1.100/shared
:共享地址。- 用户名和密码:通过
-o
选项指定。
挂载选项(-o
)
mount
命令支持多种挂载选项,通过 -o
指定:
选项 | 描述 |
---|---|
ro |
以只读模式挂载。 |
rw |
以读写模式挂载(默认)。 |
loop |
将文件作为虚拟设备挂载(例如 ISO 文件)。 |
noexec |
禁止在挂载点上执行文件。 |
nosuid |
不允许设置 SUID/SGID 权限。 |
nodev |
禁止设备文件(如 /dev/null )在挂载点下生效。 |
sync |
同步写入数据到磁盘。 |
async |
异步写入数据到磁盘(默认)。 |
uid=1000 |
设置挂载文件的所有者(通常用于 FAT、NTFS 等非 Unix 文件系统)。 |
gid=1000 |
设置挂载文件的所属组。 |
username=... |
指定共享文件系统的用户名(例如 CIFS)。 |
password=... |
指定共享文件系统的密码(例如 CIFS)。 |
常见问题与解决
-
挂载时报错:
mount: /mnt: unknown filesystem type
- 原因:系统未安装对应的文件系统驱动(如 NTFS、exFAT)。
- 解决:安装所需驱动。
1
2sudo apt install ntfs-3g # 挂载 NTFS 文件系统
sudo apt install exfat-utils # 挂载 exFAT 文件系统
-
卸载时报错:
target is busy
- 原因:挂载点被使用。
- 解决:
1
2
3lsof | grep /mnt # 查看占用挂载点的进程
kill -9 <PID> # 终止占用进程
sudo umount /mnt # 再次卸载
总结
- 挂载设备:
sudo mount /dev/sdX /mnt
- 卸载设备:
sudo umount /mnt
- 查看已挂载设备:
mount
或lsblk
- 永久挂载:编辑
/etc/fstab
- 网络挂载:支持 NFS 和 CIFS 文件系统。
熟练掌握挂载命令,可以高效管理本地磁盘、外部存储设备和远程文件系统。