home 分区挂载事故完整复盘、故障根因分析与长期运维规范
一、故障整体背景(保留原版完整内容)
本次服务器故障为人为修改系统交换分区后重启引发的连锁系统异常,非硬件损坏、非数据误删。服务器采用Ubuntu LVM架构,sdb为系统盘,sda 1.8T为数据盘,承载/home用户目录、内网镜像站、Harbor镜像仓库等核心业务。
故障前置操作:运维使用手机远程操作服务器,修改新增swap交换分区配置,操作不完整直接关机重启。重启开机后出现严重异常:/home目录所有文件凭空消失、内网Nginx镜像站彻底失效、系统磁盘卡顿、Harbor仓库数据无法读取。
二、故障现象汇总
1. 开机后 /home 目录内容全部不显示,看似数据丢失,只剩空目录
2. 内网 apt/iso 镜像站点 80 端口无法读取资源,镜像业务瘫痪
3. 服务器磁盘负载高、系统运行卡顿
4. Harbor私有镜像仓库数据读取异常
5. 磁盘占用极高,系统盘、数据盘双双临近爆满临界值
三、故障根本原因(精准定位)
本次故障为双重叠加故障,也是本次所有异常的核心根源:
诱因1:swap分区修改重启 → 系统磁盘挂载顺序错乱 手机远程配置不完整,重启后 sda1 分区无法正常挂载到 /home,系统只加载了空目录,造成“文件全部消失”的假象。
诱因2:磁盘爆满触发系统文件隐藏机制 /home数据盘1.8T已用1.4T(79%)、系统根分区/var日志缓存爆满(84%),磁盘高占用导致系统自动隐藏目录内容、拒绝正常读写。
诱因3:普通用户占用/home目录导致无法重新挂载修复 日常登录的shitou用户工作目录处于/home,进程占用分区,导致系统无法卸载、重新挂载分区,故障持续锁死。
核心结论:所有数据 100% 完好,无删除、无丢失、无损坏,仅挂载错乱+磁盘爆满导致系统隐藏文件。
四、精准排查全过程(重点保留、详细、无省略)
下面为本次故障完整排查思路 + 排查步骤 + 排查结果,是本次文档核心,全部保留、逻辑清晰:
4.1 第一步:先判定是否真的数据丢失
现象:/home 目录肉眼空白,镜像站打不开。
排查逻辑:Linux 磁盘文件不会凭空消失,优先排查「挂载异常、磁盘满载、进程占用」,不直接判定误删。
执行 lsblk、df -h 初步核验:
磁盘硬件分区结构完整,无损坏、无丢失分区
sda1 分区存在,但未正确挂载生效
磁盘占用极高,双双临近爆满
初步结论:不是丢数据,是挂载失效+磁盘爆满导致目录隐藏。
4.2 第二步:排查磁盘爆满问题(核心触发点)
通过逐级 du 磁盘占用排查,定位爆满源头:
系统盘 /var 目录累计 34G 日志、Docker缓存,系统盘占用 84%
数据盘 /home 1.8T 已用 1.4T,占用 79%
系统存在大量冗余:重复镜像备份、老旧离线包、Docker无效overlay缓存、历史仓库备份
确认:磁盘长期高负载,是系统隐藏目录、读写异常、镜像站瘫痪的直接原因。
4.3 第三步:排查镜像站失效原因
核查 Nginx 所有配置文件:default、mirror-iso 配置完全正常,无改错、无丢失
Nginx 服务运行正常、端口监听正常
镜像站失效根本不是 Nginx 问题,是后端目录挂载失效、目录为空
全盘检索确认:镜像原始数据、备份数据全部存在,只是挂载路径错乱无法读取
4.4 第四步:排查 Harbor 仓库异常
Harbor 容器配置、离线包、备份文件全部完好
仓库数据存在 /var 备份目录,无丢失
异常原因为全局磁盘IO压力大、目录挂载异常导致容器无法读取数据
4.5 第五步:排查 /home 无法挂载的关键卡点
排查多次挂载失败、设备繁忙报错根源:
普通用户 shitou 登录终端,工作目录位于 /home,持续占用分区句柄
导致系统无法 umount 卸载旧分区、无法重新挂载
前期修改分区表,UUID 变更,旧 fstab 配置失效,进一步加重挂载失败
最终锁定终极卡点:用户进程占用 + UUID失效 + 磁盘爆满 三重问题叠加。
五、问题解决核心思路(一笔带过操作,不堆砌命令)
具体操作步骤、分区格式化、fstab配置、Tunasync部署、Nginx配置、服务启动全部已有完整存档,本文不再重复赘述,仅记录整改逻辑:
1. 切换 root 用户,解除 /home 目录进程占用,解锁分区
2. 重新分区规划:sda 1.8T 拆分为 500G(/home) + 1.3T(/opt/mirror) 物理隔离
3. 重新获取最新 UUID,修复 fstab 挂载配置,mount -a 校验防开机崩溃
4. 清理全盘冗余文件、日志、缓存,解决磁盘爆满
5. 镜像业务整体迁移至独立大容量分区,彻底脱离 /home 依赖
6. 重构 Tunasync 镜像同步服务、Nginx 镜像站点
7. 规范服务启停策略,关闭开机自启,规避重启故障
六、本次故障最终复盘总结(精炼核心)
1. 本次无任何数据丢失,全部异常为系统挂载错乱 + 磁盘爆满 + 用户目录占用导致的假性故障
2. 手机远程修改 swap、分区、fstab 高危操作风险极高,极易引发系统挂载异常
3. 大容量镜像业务绝对不能和用户 /home 共用分区,一旦 /home 挂载异常,镜像站直接瘫痪
4. 磁盘占用超过80%必须及时清理,Linux 磁盘满载会触发文件隐藏、读写锁死、业务崩溃
5. /home 挂载修复必须 root 操作,普通用户会锁死分区
6. 修改 fstab 必须 mount -a 测试,禁止直接重启服务器
完整复盘归档,总结踩坑经验
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法