【案例】如何处理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

相关文章

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2