很久没有更新了,今天有一个用户问我vmware虚拟化平台上面的虚拟机一直启动不了,让我帮看看能不能处理一下,我已经有段时间没有接触过linux了,命令敲起来都快生疏了,正好手头有空,就看看能不能搞好。用户发过来的报错图看了一下,发现是启动到ubuntu的initramfs环境里面了,这个界面上其实没有任何报错,还不知道故障现象。2.尝试重启虚拟机发现一直启动到initramfs界面,提示文件系统已经损坏,需要手工修复- 虚拟机的数据文件存储在FC SAN的集中式存储上面
4.通过原因分析定位,发现应该是FC SAN存储空间用满了,导致虚拟机无法写入数据然后崩溃了,并且前一天已经报了日志,没有及时处理,所以需要处理的问题有两个,第一释放存储空间,第二恢复linux虚拟机正常运行。5.发现能释放空存储空间的方法只有删快照了,花了2小时删除原有虚拟机的快照,然后对磁盘进行整合,终于空出来了400G的空间,中间由于存储空间不足,整合虚拟机磁盘的时候还失败了,好在有惊无险。5.经过快照整合之后,将ubuntu的启动镜像挂载到需要修复的虚拟机7.将虚拟机开机启动到bios环境,然后设置镜像为第一启动项,这样就可以用ubuntu的live环境修复磁盘分区。8.进入到ubuntu的live桌面之后,挂载磁盘分区发现系统磁盘是正常的,并且可以读取内容,通过touch 命令生成test.txt也可以正常存储,说明分区是正常的。从报错可以看出跟inode相关的信息破坏了。通过搜索资料发现需要手工对磁盘进行检查与修复,参考了这一篇文章Linux 磁盘修复完全指南:从基础到高级实战
https://geek-blogs.com/blog/linux-disc-repair/#3-%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BF%AE%E5%A4%8D%E6%8C%89%E7%B1%BB%E5%9E%8B%E9%80%89%E6%8B%A9%E5%B7%A5%E5%85%B7
9.由于fsck命令修复失败会损坏数据,所以在修复前对虚拟做了个快照,防止修复失败再想别的办法。
10.经过fsck命令的一通修复,终于恢复好了系统,可以正常启动,成功帮助用户恢复了系统。