【故障类型】:Linux文件系统损坏

【关 词】Linux文件系统损坏 无法进入系统

【适用版本】FusionCompute所有版本

【问题现象】

Linux虚拟机文件系统损坏导致无法进入系统时,从VNC登录虚拟机可以查看到如下三种现象。

(1) 现象一:Linux虚拟机启动过程报文件系统错误并自动进入修复模式。

1 自动进入修复模式

(2) 现象二:Linux虚拟机启动过程中报文件系统错误提示但不会自动进入修复模式。

2 不自动进入修复模式

(3) 现象三:Linux虚拟机启动后直接花屏,网络无法ping通。

3 花屏

【告警信息】:

【问题分析】:

Linux文件系统损坏导致启动时无法正常进入系统。

【解决方法】:

(1) 如果虚拟机中有重要数据,请在尝试修复前对虚拟机进行备份。

(2) 进入repair filesystem或者rescue模式。

修复文件系统需要先进入repair filesystem或者rescue模式,以下对三种现象进入repair filesystem或者rescue模式的方法分别进行说明。

现象一

系统启动自动进入repair filessystem模式,输入root用户密码后便可进行步骤3的修复操作。

现象二

通过挂载虚拟机系统对应的ISO的方法进入rescue模式,再进行步骤3的修复操作。

SUSE10 SP3 32bit系统为例,具体步骤如下:

a、将SUSE10 SP3 32bit系统安装光盘挂载到虚拟机上并选择从光盘启动,输入“rescue”进入rescue模式。如图4所示。

图4 rescue模式1 

b、输入root用户名进入rescue模式命令行界面。如图5所示。

图5 rescue模式2

现象三

尝试在VNC界面上盲敲用户名/密码进入系统,如果能进入系统,则会出现字符界面,请参照现象一和现象二的操作进入repair filesystem或者rescue模式进行修复操作。

(3) 修复文件系统。

修复文件系统使用命令fsck,该命令的具体功能可参考man手册,本文只介绍常用的几个用法。

a、一般的文件系统损坏修复时只需根据启动过程中的错误提示,执行如下命令即可(“/dev/*”表示具体的设备)。

fsck -y /dev/*

例如启动过程中有提示/dev/xvda2分区的文件系统有异常,如图6所示。

6 文件系统异常1

i. 请在repair filesystem或者rescue模式中执行如下命令进行修复。

fsck -y /dev/xvda2

ii. 如果在执行修复命令时提示该分区已挂载,如图7所示,请按照如下操作处理。

7 分区已挂载

请输入“n”中止修复,先执行如下命令以只读方式重新挂载该分区后再进行修复。如图8所示。

mount -o remount,ro /dev/xvda2

再执行如下命令进行修复,如图8所示。

fsck -y /dev/xvda2

8 只读挂载

b、reiserfs文件系统的损坏,在某些情况下执行“fsck -y /dev/*”命令后会提示未成功修复。如图9所示。

9 未修复成功

此时需要根据提示使用如下命令进行修复。如图10所示。

fsck.reiserfs --rebuild-tree /dev/xvda2

10 修复命令

c、修复完成后重启系统。

【总结&建议】

系统使用过程中强制关机或者重启,对使用中的磁盘进行fsck操作等都有可能导致文件系统损坏,而且某些文件系统损坏难以修复。

建议:

  • 如果虚拟机中有重要数据,在尝试修复之前请先做备份,修复文件系统的操作可能导致系统中部分文件丢失。
  • 某些情况修复完成重启后文件系统依然会有问题,可以尝试多修复一次。如果始终无法成功修复,建议给客户重新下发虚拟机,将问题虚拟机的系统盘和数据盘都当成数据盘挂载给新虚拟机,尽量保证用户数据不丢失。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐