【案例】如何处理Linux虚拟机文件系统损坏无法进入系统的问题

本文主要是介绍【案例】如何处理Linux虚拟机文件系统损坏无法进入系统的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【故障类型】: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操作等都有可能导致文件系统损坏,而且某些文件系统损坏难以修复。

建议:

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

这篇关于【案例】如何处理Linux虚拟机文件系统损坏无法进入系统的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103525

相关文章

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详