Linux系统故障问题案例收集

2023-10-24 18:10

本文主要是介绍Linux系统故障问题案例收集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

处理Linux系统故障的思路

1)重视报错提示信息。每个错误的出现都是给出错误提示信息,一般情况下这个提示信息基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。

2)查阅日志文件。有时候报错信息只是给出了问题的表面现象,要想更深入地了解问题,必须查看相应的日志文件。日志文件又分为系统日志文件(/var/log)和应用日志文件,结合这两个日志文件,一般就能定位问题所在。

3)分析、定位问题。这个过程是比较复杂的,根据报错信息,结合日志文件,同时还要考虑其他相关情况,最终找到引起问题的原因。

4)解决问题。找到了问题出现的原因,解决问题就是很简单的事情了。从这个流程可以看出,解决问题的过程就是分析、查找问题的过程,一旦确定问题产生的原因,故障也就随之解决了。看似简单明了的思路,但是真正能重视这个思路的、按照这个思路处理问题的却很少,在处理故障的时候,能静下心来,先整理思路,然后有目的地去处理问题。

## 仅供参考

1、忘记Linux root密码和进入单用户的方法(老生常谈的问题了)

忘记Linux root密码这个问题出现的概率是很高的,也是Linux运维基础的技能。要解决这个问题,在Linux下非常简单,只需重启Linux系统,然后引导进入Linux的单用户模式(init 1)就可以搞定了,由于单用户模式是不需要输入登录密码的,因此,可以直接登录系统,修改root密码即可解决问题。目前企业的线上环境,最常用的Linux是CentOS6.x和CentOS7.x版本,那么这里首先以RHEL/CentOS6.x版本为例,介绍如何进入单用户并重置root密码,操作步骤如下所述。

1)重启系统,待Linux系统启动到GRUB引导菜单时,按〈Esc〉键,找到当前系统引导选项,如图所示,如果有多个可用内核,这里就有多个引导选项。
在这里插入图片描述

2)通过〈↑〉〈↓〉键将光标放到需要使用的系统引导内核选项上,然后按〈E〉键,进入编辑状态,如图所示。
在这里插入图片描述
3)然后通过〈↑〉〈↓〉键,选中带有kernel指令的一行,继续按〈E〉键,编辑该行,在行末尾加个空格,然后添加single,如图所示。
在这里插入图片描述
4)修改完成,按〈Enter〉键,返回到刚才的界面。

5)最后按〈B〉键,系统开始引导。

这样系统就启动到了单用户模式下,这里的单用户与Windows下的安全模式类似,在单用户模式下,只是启动最基本的系统,网络以及应用服务均不启动。单用户模式启动完毕,系统会自动进入到命令行状态下,直接执行命令passwd,按〈Enter〉键,系统会提示输入新的root密码两次,最后会看到修改密码成功的提示,这样就完成了root密码的修改。如果需要正常启动系统,现在只需输入init3,就进入了多用户模式。用root用户重新登录系统,看看设置的新密码是否生效。

在RHEL/CentOS7.x版本之后,Linux的机制发生了较大变化,在系统引导方面,使用了GRUB2代替了之前的GRUB引导,init初始化程序也更换成了systemd初始化,随之带来的root密码重置的方法也有所改变。下面就介绍一下在CentOS7.5版本中,忘记root密码的处理方法,操作步骤如下所述。

1)重启系统,待Linux系统启动到GRUB2引导菜单时,找到当前系统引导选项,如果有多个可用内核,这里就有多个引导选项,按〈E〉键,如图所示。
在这里插入图片描述

2)按〈E〉键后,出现如图所示的界面,通过〈↑〉〈↓〉键将光标放到Linux16引导行所在行尾,然后添加以下内容:init=/bin/sh

在这里插入图片描述
3)添加完成,按〈Ctrl+X〉组合键启动shell引导,最后进入单用户模式。

4)挂载根分区为可读写模式,执行如下命令:

touch    /.autorelabel

5)密码修改完成后,直接执行reboot命令已经无效,此时需要输入全路径命令,操作如下:

exec  /sbin/init

这样就完成了密码重置,正常登录系统,查看密码是否修改成功。

2、Linux系统无法启动的解决办法

导致Linux无法启动的原因有很多,常见的原因有如下几种。
➢ 文件系统配置不当,例如/etc/inittab文件、/etc/fstab文件等配置错误或丢失,导致系统错误,无法启动。
➢ 非法关机,导致root文件系统破坏,也就是Linux根分区破坏,系统无法正常启动。
➢ Linux内核崩溃,从而无法启动。
➢ 系统引导程序出现问题,例如,GRUB丢失或者损坏,导致系统无法引导启动。
➢ 硬件故障,例如,主板、电源和硬盘等出现问题,导致Linux无法启动。

从这些常见的故障可知,导致系统无法启动主要有两个原因,硬件原因和操作系统原因。对于硬件出现的问题,只需通过更换硬件设备,即可解决;而对于操作系统出现的问题,虽然出现的问题可能千差万别,不过多数情况下都可以用相对简单统一的一些方法来恢复系统。下面针对上面提出的几个问题,结合RHEL/CentOSLinux系统环境,给出一些常用的、普遍的解决问题的方法。

(1)/etc/fstab文件丢失导致系统无法启动

/etc/fstab文件存放了系统中文件系统的相关信息,如果正确配置了该文件,那么在Linux启动时,系统会读取此文件,自动挂载Linux的各个分区;如果此文件配置错误或者丢失,就会导致系统无法启动。具体的故障现象在检测mount partition时出现:

starting   system  logger

针对这个问题的思路是想办法恢复/etc/fstab这个文件的信息,只要恢复了此文件,系统就能自动挂载每个分区,正常启动。可能首先想到的是将系统切换到单用户模式下,然后手动挂载分区,最后结合系统信息,重建/etc/fstab文件。但是这种方法是行不通的,因为/etc/fatab文件丢失导致Linux无法挂载任何一个分区,即使Linux还能切换到单用户下。此时的系统也只是一个Read-Only的文件系统,无法向磁盘写入任何信息。

介绍另外一个方法,就是利用Linux Rescue修复模式登录系统,进而获取分区和挂载点信息,重构/etc/fstab文件。

这里以CentOS6.9为例,其他版本方法类似。首先将系统第1张光盘放入光驱,设置BOIS从光驱启动,这样系统就从光驱引导,如图8-6所示,选择“Rescueinstalled system”一项,然后按〈Enter〉键,系统开始引导进入Rescue模式。

在这里插入图片描述
接着系统自动开始引导,进入如下图所示的界面。
在这里插入图片描述
这里是选择模式使用的语言,可以按照自己需要设定,这里选择“English”,然后按〈TAB〉键,选中“OK”,按〈Enter〉键进入下一步。下面出现的是键盘选择对话框,如下图所示,这里选择默认的“us”即可。
在这里插入图片描述
接着出现的是网络配置对话框,如图所示。
在这里插入图片描述
这里是选择是否启用网络,由于系统已经无法启动,现在已经在Linux系统上进行操作了,无所谓是否启用网络。这里选择不启用。

下面到了最关键的步骤了,如下图所示,修复模式会自动将系统的所有分区挂载到/mnt/sysimage目录下,选择“Continue”,则修复环境进入到Read-Write状态下,可以对分区进行读写操作,选择“Read-Only”,修复环境进入到只读模式。由于要重建fstab文件到/etc目录下,因此选择“Continue”进入可读写模式下。

会出现一个友情提示对话框,如下图所示。由于fstab文件丢失,修复模式找不到任何可挂载的分区,从这里可知,修复模式在这里也读取/etc/fstab文件,按〈Enter〉键进入下一步。
在这里插入图片描述
选择下一步要执行的动作,如下图所示,这里选择“shell Start shell”进入修复模式命令行。
在这里插入图片描述
最后,就进入了修复环境下,可以进行操作了。如下图所示。
在这里插入图片描述
上面详细演示了如何进入Linux的修复模式,其实很多情况下,Linux无法启动时,都可以通过这个方式登录系统进行修复和更改操作。

下面是恢复/etc/fstab文件的详细过程,首先查看一下系统分区情况,如下所示:
在这里插入图片描述
因为分区并没有损坏,通过fdisk命令可以查看到系统分区的完整信息,但是每个分区对应的label name信息还不知道,下面通过tune2fs命令查看每个分区对应的label name:
在这里插入图片描述

这样,就得到了所有分区的挂载点信息,接下来就可以构造一个fstab文件了。

小技巧:可以参考其他系统中fstab文件的格式,结合本系统的分区和挂载点信息,构造出自己的fstab文件来。

由于fstab文件是存放在系统根目录下的,因此需要挂载原来系统的根分区,从上面可知根分区对应的设备名为/dev/sda3,接着在修复模式创建的临时根分区下创建一个挂载点,然后挂载原来系统的根分区。操作过程如下所示:
在这里插入图片描述
这样一来,原有根分区的文件全部挂载到了/temp目录下,接着就可以创建需要的fstab文件了。

重构好的fstab文件内容如下:
在这里插入图片描述
配置完毕,保存退出,然后重启系统,看系统是否能正常启动。(这个方法个人认为使用在物理机上的操作系统环境,平时做好备份很重要,如果是虚拟化环境,在每次更改操作前先做一个快照更为方便快捷)

(2)CentOS下误删除/boot目录的修复方法
误删除/boot目录经常发生在新手(新手在此)、研发人员身上。误删除的原因很多,但是并不重要,作为专业运维人员,要了解误删除后怎么恢复,先来看一下这个现象,如下图所示。
在这里插入图片描述
出现这个情况的原因可能有:系统引导出现问题、/boot目录误删除和grub配置错误。

要解决这个问题,还是要用到一个CentOS的U盘镜像或者光盘镜像,通过系统镜像进入Rescue修复模式,然后就可以大展拳脚了。

下面看看如何在CentOS7.x版本下,进入Rescue修复模式,然后修复系统引导。首先通过系统镜像盘进入系统引导模式,如下图所示。
在这里插入图片描述
然后选择“Troubleshooting”,按〈Enter〉键进入如图所示的界面。
在这里插入图片描述
这里选择“Rescue a CentOS system”,按〈Enter〉键进入如图所示的界面。
在这里插入图片描述
这是进入Rescue修复模式的几个选项,跟CentOS6.x版本类似,这里选择数字1,进入可读、写模式。等待片刻,即可进入如图所示的界面。
在这里插入图片描述
按〈Enter〉键进入命令行模式,然后执行chroot命令,如图所示。
在这里插入图片描述

这样,就变更到了root目录下,相当于进入到了真实系统环境下了。接着,将系统镜像挂载到任意一个目录下,这里挂载到/mnt下,挂载系统镜像的目的是将系统镜像作为YUM源,然后安装系统丢失的内核模块,并安装GRUB2引导程序。

bash-4.2#  mount /dev/cdrom  /mnt

下面开始创建一个YUM源仓库,用于从本地系统镜像中读取RPM包,进行内核模块的安装,如图所示。
在这里插入图片描述
重点来了,第1步是重新安装内核,这里使用YUM的reinstall命令,千万别用install来安装,执行如下命令:

bash-4.2#  yum reinstall kernel

这样,内核模块安装完成了,接下来,还需要重新安装GRUB2,并重新生成GRUB2配置文件grub.cfg,执行如图所示的操作。
在这里插入图片描述
执行完成后,两次执行exit命令退出后,系统会自动重启,完成boot引导的修复,不出意外的话,系统已经可以畅通无阻地启动了。

Linux系统无响应(死机)问题分析

Linux服务器在长期运行后,难免出现无响应现象。在系统死机后,屏幕一般会输出故障信息,键盘失去响应,这种情况的常见处理办法就是重启系统,不过在重启前,要重点关注一下屏幕的输出信息,因为其提示的可能是引起死机的主要原因,对解决问题是有很大帮助的。

其实还有另一个方法,就是通过串口直连线连接客户机和服务器,将服务器的出错详细信息发送到客户机上。引起服务器死机的原因有很多,但主要有两个方面:软件问题和硬件问题。下面总结了造成Linux系统死机的常见原因和解决问题的思路。
➢ 系统硬件问题主要是由SCSI卡、主板、RAID卡、HBA卡、网卡、硬盘等硬件设备导致。在这种情况下需要定位硬件故障细节,通过更换硬件来解决问题。
➢ 外围硬件问题主要是网络问题导致的。此时就需要检查网络设备、网络参数等方面查找和解决问题。
➢ 软件问题主要是系统内核bug、应用软件bug、驱动程序bug等。在这种情况下就需要从升级内核、修复程序bug、更新驱动程序等方面来解决问题。
➢ 系统设置问题主要是系统参数设置不当导致,可以通过恢复系统到默认状态,关闭防火墙等方面来解决问题。

这篇关于Linux系统故障问题案例收集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

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

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

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

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

解决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 表的构建与意义动