首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >直接拔掉硬盘以后会发生什么

直接拔掉硬盘以后会发生什么

作者头像
运维小路
发布2025-09-30 15:31:13
发布2025-09-30 15:31:13
1390
举报
文章被收录于专栏:运维小路运维小路

背景

最近维护一台机器,需要对磁盘进行更换(磁盘当前还是可以正常读写的),按照正常流程,把对应的磁盘进行下架(只业务下架,未卸磁盘)。然后在更换的时候忘记卸载磁盘,直接对磁盘进行了热插拔的更换。

排查过程

1.需要恢复磁盘的时候,发现磁盘还正常挂载,通过lsblk查看挂载也还在,也可以进入对应的挂载目录,甚至可以列出原始磁盘的文件目录和文件。这个时候一度怀疑换盘是不是做错机器。

2.后面确认硬盘进行了更换,所以就尝试对这个挂载目录进行写操作,直接提示不能写(只读)。

3.这个时候首先想到的就是通过umount对挂载的文件系统进行卸载,结果执行以后,当前bash窗口就直接hang住,既无法通过Ctrl+c进行中止,也无法通过kill -9 xxx进行关闭进程。

4.我们这个时候就用fuser命令,查看谁还在占用磁盘,可以看到业务进程,内核,umount命令都占用这个磁盘。使用kill命令关闭业务进程以后,业务进程自动拉起以后,发现他还在使用挂载的分区。

5.通过kill命令杀死umount的 bash,结果umount命令就成了孤儿进程,父进程由以前的bash变成init。

6.在通过ps -aux命令查询发现这个umount命令的状态已经变成D状态(不可中断进程状态)。这个状态的进程是不可中断的,兜底的方法就是只有重启。

7.通过lsof命令查看打开目录的进程,但是由于无效信息太多,加上环境的限制这个也没有成功。

由于受其他因素影响,暂时无法继续处理,所以只能祭出运维三宝:重启,重装,换系统。然后就恢复了。

问题复盘

本打算通过虚拟机来复现这个问题,结果发现只能部分复现,所以下面的步骤仅供参考。

1.准备一个磁盘正常挂载。

2.未使用的时候磁盘直接从VM层面删除磁盘,然后进入目录会提示出错,但是卸载磁盘没问题,可以正常成功,在重复挂载的时候提示无法挂载。

3.创建了一个空文件,使用tail -f xxx这个文件。然后再次删除磁盘,然后去对应的系统里面还可以正常读写文件,但是卸载的时候无法卸载成功。

通过命令可以看到提示是内核挂载及占用。

最后使用umount -l 强制卸载成功。把这个处理过程发出来一个是做一个记录,另外就是给大家提供一个处理类似问题的思路,因为在使用nfs的时候,如果nfs服务端宕机也会遇到类似的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档