3.6.1 挂载概念与挂载点规划
3.6.1 挂载概念与挂载点规划#
挂载是将存储设备上的文件系统接入到Linux目录树的过程,使其在某个目录下可访问。Linux采用单一目录树结构,所有存储都必须通过挂载点呈现。挂载点是一个普通目录,挂载后该目录原有内容被隐藏,卸载后恢复可见,因此挂载前需确保挂载点目录为空或明确可被覆盖。
原理草图#
挂载规划的核心目标是隔离风险、提升可维护性与性能可控性。常见分离目录包括/、/boot、/home、/var、/var/log、/tmp、/data等。将日志、数据、临时文件与系统盘分离,可降低单一分区满盘导致的系统故障,并便于独立扩容、备份与权限控制。对于数据库与中间件,建议将数据目录(如/data/mysql、/data/redis、/data/kafka)独立挂载至专用卷或LVM,便于性能优化与迁移。
挂载点规划需结合业务特征与运维要求:
- 系统稳定性优先:根分区与关键目录独立,避免日志或缓存占满根分区。
- 性能与IO隔离:高IO目录如数据库、消息队列、容器存储建议单独卷并使用合适文件系统与挂载选项。
- 备份与恢复:对需要备份的数据目录独立挂载,便于快照与一致性备份。
- 安全性:对/tmp、/var/tmp可结合挂载选项(如noexec、nodev、nosuid)降低风险。
规划示例与命令#
假设新增一块磁盘/dev/sdb,规划挂载到/data:
# 1) 查看磁盘
lsblk
# 2) 分区(示例使用GPT)
parted -s /dev/sdb mklabel gpt
parted -s /dev/sdb mkpart primary ext4 0% 100%
# 3) 创建文件系统
mkfs.ext4 /dev/sdb1
# 4) 创建挂载点
mkdir -p /data
# 5) 临时挂载验证
mount /dev/sdb1 /data
# 6) 验证挂载效果
df -hT /data
预期效果:df -hT显示/data为/dev/sdb1,文件系统为ext4。
典型挂载点规划清单(示例)#
/boot 1G 引导文件
/ 50G 系统根分区
/var 30G 日志与缓存
/home 20G 用户数据
/data 200G 业务数据(数据库/中间件)
命令解释(关键参数)#
parted -s /dev/sdb mklabel gpt # -s:脚本模式,创建GPT分区表
parted -s /dev/sdb mkpart ... # 创建分区
mkfs.ext4 /dev/sdb1 # 格式化为ext4
mount /dev/sdb1 /data # 挂载设备到目录
df -hT # 查看挂载与文件系统类型
排错要点#
# 挂载失败时,先看内核与系统日志
dmesg | tail -n 20
journalctl -xe | tail -n 50
# 常见错误1:挂载点非空或被占用
lsof +D /data
# 常见错误2:文件系统不匹配/未格式化
blkid /dev/sdb1
常见现象与处理:
- wrong fs type:设备未格式化或类型不匹配,重新执行mkfs确认。
- mount point does not exist:目录未创建,执行mkdir -p /data。
- device is busy:有进程占用,使用lsof +D /data定位并停止进程。
练习#
- 新建
/dev/sdc1并挂载到/var/log/app,验证df -hT输出。 - 在
/tmp挂载一个独立分区,并添加noexec,nodev,nosuid选项(仅规划,不要求持久化)。 - 手动卸载后检查挂载点原有内容是否恢复可见。