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

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal