Linux文件系统挂载与卸载完全指南
目录
1. 挂载的基本概念
什么是挂载?
挂载的必要性
2. 手动挂载文件系统
mount命令的基本用法
挂载前的准备工作
识别块设备 - lsblk命令
重要注意事项
3. 设备识别方法
方法一:使用设备文件名挂载
方法二:使用UUID挂载(推荐)
什么是UUID?
查看UUID信息
使用UUID挂载
4. 自动挂载机制
图形界面下的自动挂载
手动配置持久化挂载
5. 卸载文件系统
umount命令基本用法
系统关机和重启
卸载失败的处理
常见错误:目标正忙
原因分析
解决方法
6. 实用操作示例
完整挂载流程
故障排查命令
7. 最佳实践建议
挂载注意事项
安全卸载流程
生产环境建议
对本文有些概念不懂的,感兴趣的可以看一下:
Linux 存储管理完全指南:文件系统、挂载点、块设备与磁盘分区详解-CSDN博客
1. 挂载的基本概念
什么是挂载?
挂载是将文件系统连接到Linux目录树中的特定目录(称为挂载点),从而能够访问该文件系统中的文件和数据。
挂载的必要性
-
可移动存储设备(USB、光盘等)不会自动出现在目录树中
-
新添加的硬盘分区需要手动挂载才能访问
-
网络文件系统需要通过挂载集成到本地目录结构
2. 手动挂载文件系统
mount命令的基本用法
# 语法:mount [设备] [挂载点]
mount /dev/vda4 /mnt/data
挂载前的准备工作
-
识别要挂载的设备
-
确保挂载点目录存在
-
检查设备是否可用
识别块设备 - lsblk命令
# 列出所有块设备信息
lsblk# 示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 10G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
├─vda3 252:3 0 500M 0 part /boot
└─vda4 252:4 0 9.3G 0 part /
vdb 252:16 0 5G 0 disk
vdc 252:32 0 5G 0 disk
lsblk输出字段说明:
-
NAME:设备名称 -
MAJ:MIN:主设备号和次设备号 -
RM:是否为可移动设备(1=是,0=否) -
SIZE:设备容量 -
RO:是否为只读设备 -
TYPE:设备类型(disk=磁盘,part=分区) -
MOUNTPOINTS:当前的挂载点
重要注意事项
挂载点目录必须为空:
-
如果挂载点目录不为空,挂载后原有文件将被隐藏
-
卸载文件系统后,原有文件重新可见
-
这是Linux挂载机制的基本特性
3. 设备识别方法
方法一:使用设备文件名挂载
# 直接使用设备文件路径
mount /dev/vda4 /mnt/data
优点:简单直接
缺点:设备名称可能变化(特别是热插拔设备)
方法二:使用UUID挂载(推荐)
什么是UUID?
-
UUID(通用唯一标识符)是文件系统的唯一标识
-
存储在文件系统的超级块中
-
在重新创建文件系统之前保持不变
查看UUID信息
# 显示详细设备信息,包括UUID
lsblk -fp# 示例输出:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
/dev/vda
├─/dev/vda1
├─/dev/vda2 vfat FAT16 7877-95E7 192.3M 4% /boot/efi
├─/dev/vda3 xfs boot 2667660e-...-if99ibf1 334.9M 32% /boot
└─/dev/vda4 xfs root efd31440e-...-ae98f652 7.7G 18% /
使用UUID挂载
# 通过UUID挂载文件系统
mount UUID="efd31440e-b56e-45db-bbb3-3f32ae98f652" /mnt/data
UUID挂载的优势:
-
设备名称变化不影响挂载
-
更稳定的标识方法
-
适合在脚本和配置文件中使用
4. 自动挂载机制
图形界面下的自动挂载
在图形桌面环境中:
-
检测到可移动存储介质时自动挂载
-
挂载路径:
/run/media/USERNAME/LABEL -
USERNAME:当前登录用户的名称 -
LABEL:存储介质的标签(通常由文件系统提供)
手动配置持久化挂载
重要提示:
-
使用mount命令的挂载在重启后失效
-
持久化挂载需要编辑
/etc/fstab文件 -
这将在RH134课程中详细讲解
5. 卸载文件系统
umount命令基本用法
# 使用挂载点作为参数
umount /mnt/data# 也可以使用设备文件
umount /dev/vda4
系统关机和重启
-
系统关机过程会自动卸载所有文件系统
-
确保所有数据写入存储设备
-
保证文件系统数据的完整性
卸载失败的处理
常见错误:目标正忙
[root@host data]# umount /mnt/data
umount: /mnt/data: target is busy.
原因分析
当有进程正在访问挂载点下的文件或目录时,无法卸载文件系统。常见情况包括:
-
Shell当前工作目录在挂载点内
-
有文件在挂载点内被打开
-
有进程正在使用挂载点内的资源
解决方法
1. 检查占用进程
# 查看哪些进程正在使用挂载点
lsof /mnt/data# 示例输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1593 root cwd DIR 253,17 6 128 /mnt/data
lsof 2532 root cwd DIR 253,17 19 128 /mnt/data
2. 终止占用进程
-
等待进程自然结束
-
使用SIGTERM信号正常终止进程
-
使用SIGKILL信号强制终止进程(最后手段)
3. 切换工作目录
# 最简单的解决方案:切换到其他目录
cd /
umount /mnt/data
4. 延迟卸载
# 如果无法立即卸载,可尝试延迟卸载
umount -l /mnt/data
6. 实用操作示例
完整挂载流程
# 1. 识别可用设备
lsblk# 2. 查看设备详细信息
lsblk -fp# 3. 创建挂载点目录
mkdir -p /mnt/mydata# 4. 使用UUID挂载
mount UUID="你的设备UUID" /mnt/mydata# 5. 验证挂载
df -h | grep mydata# 6. 使用完成后卸载
cd / # 确保不在挂载点目录内
umount /mnt/mydata
故障排查命令
# 查看所有已挂载的文件系统
mount# 查看特定设备挂载信息
mount | grep /dev/vda4# 检查文件系统类型
file -s /dev/vda4# 查看内核识别的块设备
cat /proc/partitions
7. 最佳实践建议
挂载注意事项
-
始终使用空目录作为挂载点
-
优先使用UUID而非设备文件名
-
卸载前确保没有进程占用
-
定期检查挂载状态
安全卸载流程
-
保存所有打开的文件
-
切换到非挂载点目录
-
使用sync命令确保数据写入
-
执行umount命令
-
验证卸载成功
生产环境建议
-
为不同的存储用途创建专门的挂载点
-
使用有意义的挂载点名称
-
记录重要文件系统的UUID
-
建立标准的挂载/卸载操作流程
