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可结合挂载选项(如noexecnodevnosuid)降低风险。

规划示例与命令#

假设新增一块磁盘/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定位并停止进程。

练习#

  1. 新建/dev/sdc1并挂载到/var/log/app,验证df -hT输出。
  2. /tmp挂载一个独立分区,并添加noexec,nodev,nosuid选项(仅规划,不要求持久化)。
  3. 手动卸载后检查挂载点原有内容是否恢复可见。