阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux系统的故障排查和修复

346次阅读
没有评论

共计 5263 个字符,预计需要花费 14 分钟才能阅读完成。

今天小编要跟大家分享的文章是关于 Linux 系统 的故障排查和修复。我发现 Linux 系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应用单用户模式、GRUB 命令操作、Linux 救援模式的故障修复案例帮助大家了解此类问题的解决。下面我们一起来看一看吧!

(一)单用户模式

Linux 系统提供了单用户模式 (类似 Windows 安全模式),可以在最小环境中进行系统维护。在单用户模式(运行级别 1) 中,Linux 引导进入根 shell,网络被禁用,只有少数进程运行。单用户模式可以用来修改文件系统损坏、还原配置文件、移动用户数据等。

以下列举了几个单用户模式修复系统故障的典型案例:

案例一:root 密码忘记

在单用户模式中,Linux 不需要 root 密码(Red Hat 系统不需要 root 密码,但 SuSe 则需要,不同 Linux 系统稍有差别,本文以 Fedora Core 6 为例讲解),这使更改 root 密码非常容易。了解当系统引导进入多用户模式失败时,如何进入单用户模式,非常重要。

1、在系统启动过程中,会出现开始界面,按任意键,进入 GRUB 菜单选项。(若希望以后无此提示,直接进入 GRUB 菜单选项,删除配置文件 grub.conf 中“hiddenmenu”项即可。)

2、按“e”键编辑 GRUB 引导菜单选项,按“e”键后的 GRUB 屏幕。通过箭头键下移到 kernel 行,并按“e”键,

3、在尾行光标处添加 single,按回车键返回前一个屏幕,按“b”键进行引导,则系统自动进入单用户模式,如果要改变 root 密码,则执行命令:sh-3.1# passwd root

更改成功后,执行命令 exit 退出重启即可。

大家可以在单用户模式中去纠正阻止系统正常启动的很多问题,比如:

1、禁用可能中止系统运行的服务如禁用 Samba 服务,则执行:sh-3.1# chkconfig smb off 下次系统引导就不会启动 Samba 服务了。

2、更改系统缺省运行级如果 X Window 无法启动或者出现故障,可以编辑 /etc/inittab 文件,采用文本方式登录,更改 initdefault 引导级别为 3:id:3:initdefault:

案例二:硬盘扇区错乱

在启动过程中最容易遇到的问题就是硬盘可能有坏道或扇区错乱 (数据损坏) 的情况,这种情况多由于异常断电、不正常关机导致。

此种问题发生,在系统启动的时候,屏幕会显示:

Press root password or ctrl+D:

此时输入 root 密码系统自动进入单用户模式,输入:

fsck -y /dev/hda6

(fsck 为文件系统检测修复命令,“-y”设定检测到错误自动修复,/dev/hda6 为发生错误的硬盘分区,请依据具体情况更改此参数)

系统修复完成后,用命令“reboot”重新启动即可。

案例三、GRUB 选项设置错误

“Error 15”显示系统无法找到 grub.conf 中指定的内核。

GRUB 引导错误信息,我们观察发现因为打字错误,内核文件的“vmlinuz”打成了“vmLinux”,所以系统无法找到内核的可执行文件。

我们可以按任意键回到 GRUB 编辑界面,修改此错误,回车保存后按“b”键即可正常引导,当然不要忘记进入系统后修改 grub.conf 文件中此处错误。

这是很多初学 Linux 的用户在修改 GRUB 设置时很容易犯的错误,出现此黑屏提示时注意观察报错信息,即可针对性修复。

(二)GRUB 引导故障排除

我发现有时 Linux 启动后会直接进入 GRUB 命令行界面(只有“grub>”提示符),此时很多用户就选择了重新安装 GRUB 甚至重新安装系统。

其实一般而言此故障的原因最常见的有两个:

一是 GRUB 配置文件中选项设置错误;

二是 GRUB 配置文件丢失(还有少数原因,如内核文件或镜像文件损坏、丢失,/boot 目录误删除等)

如果是第一种情况,可以首先通过 GRUB 命令引导系统后修复; 若是第二种情况,则要使用 Linux 救援模式修复了(本文后续有描述)。

首先,我们需要了解 GRUB 启动系统的引导过程,grub.conf 文件中主要的配置选项如下:

(注意,GRUB 配置文件为 /boot/grub/grub.conf,/etc/grub.conf 只是此文件的软链接)

title Fedora Core (2.6.18-1.2798.fc6)

root (hd0,0)

kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img

其中:

“title”段指定了 GRUB 引导的系统:

“root”段指定了 /boot 分区所在的位置:

“kernel”段指定了内核文件所在位置,内核加载时权限属性为只读 (“ro”) 以及指定根分区所在位置(root=LABEL=/);

“initrd”指定了镜像文件所在位置。

所以 GRUB 在引导时顺序为首先加载 /boot 分区,然后依次载入内核与镜像文件。

案例

“title Fedora Core (2.6.18-1.2798.fc6)”段被误删除

此时,系统启动后会自动进入“GRUB>”命令行,为排除故障我们可以依次做如下操作:

1、查找 /boot/grub/grub.conf 文件所在分区 GRUB> find /boot/grub/grub.conf(hd0,0)

2、查看 grub.conf 文件错误 GRUB>cat (hd0,0)/boot/grub/grub.conf 建议系统安装设置好后,要将 grub.conf 文件备份,如果有备份文件如 grub.conf.bak,则此时可以查看备份文件,与当前文件比较,发现错误:GRUB>cat (hd0,0)/boot/grub/grub.conf.bak

3、确认错误后,先通过命令行方式完成 GRUB 引导,进入系统后再行修复 grub.conf 文件错误:

1)指定 /boot 分区 root (hd0,0)

2)指定内核加载 kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet

3)指定镜像文件所在位置 initrd /boot/initrd-2.6.18-1.2798.fc6.img

提示:GRUB 支持 tab 键命令补全功能

4、从 /boot 分区启动 boot (hd0,0)

命令行模式可以在 GRUB 菜单模式中通过按“c”键调用,也可以用于测试新编译的内核(设置 kernel、initrd 引导新内核及镜像文件)。增加对 GRUB 引导以及 Linux 系统引导知识的了解将对此类故障排除大有帮助。

(三)Linux 救援模式应用

当系统连单用户模式都无法进入时或出现 GRUB 命令行也不能解决的引导问题,我们就需要使用 Linux 救援模式来进行故障排除了。

步骤如下:

1、将 Linux 安装光盘 (如果使用 CD 光盘,则放入第一张引导光盘) 放入光驱,设置固件 CMOS/BIOS 为光盘引导,当 Linux 安装画面出现后,在“boot:”提示符后输入“Linux rescue”回车进入救援模式。(想了解救援模式详细信息,还可以按 F5 键查看)

2、系统会检测硬件,引导光盘上的 Linux 环境,依次提示你选择救援模式下使用的语言(建议选择默认的英文即可,根据笔者测试,部分 Linux 系统选择中文会出现乱码); 键盘设置用默认的“us”就好; 网络设置可以根据需要,大部分故障修复不需要网络连接,可不进行此项设置,选择“No”。

3、接下来系统将试图查找根分区,出现挂载提示,设置默认在救援模式,硬盘的根分区将挂载到光盘 Linux 环境的 /mnt/sysimage 目录下,默认选项“continue”表示挂载权限为读写:“Read-only”为只读,如果出现检测失败可以选择“skip”跳过。此处,因为要对系统进行修复,所以需要有读写权限,一般选择默认选项“continue”。

进入下一步后,系统提示执行“chroot /mnt/sysimage”命令,可以将根目录挂载到我们硬盘系统的根目录中去。

案例一:双系统启动修复

当我们安装双系统环境,先安装 Linux 再安装 Windows; 或者已经安装好双系统环境的 Windows 损坏,在重新安装 Windows 后,保存 GRUB 的 MBR(Master Boot Record,主引导记录)会被 Windows 系统的自举程序 NTLDR 所覆盖,造成 Linux 系统无法引导。

1、如果要恢复双系统引导,首先用上述方法进入救援模式,执行 chroot 命令如下:sh-3.1# chroot /mnt/sysimage

2、将根目录切换到硬盘系统的根目录中,然后执行 grub-install 命令重新安装 GRUB:sh-3.1# grub-install /dev/hda“/dev/hda”为硬盘名称,如使用 SCSI 硬盘或 Linux 安装在第二块 IDE 硬盘,此项设置要做相应调整。

3、然后依次执行 exit 命令,退出 chroot 模式及救援模式(执行两次 exit 命令):sh-3.1# exit 系统重启后,将恢复 GRUB 引导的双系统启动。

案例二:系统配置文件丢失修复

系统在引导期间,很重要的一个过程就是 init 进程读取其配置文件 /etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果 /etc/inittab 误删除或修改错误,Linux 将无法正常启动。此时,只有通过救援模式才可以解决此类问题。

/etc/inittab 文件丢失引导错误示例

1、有备份文件的恢复办法进入救援模式,执行 chroot 命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如 /etc、/boot 等要进行备份),直接将备份文件拷贝回去,退出重启即可。

如果是配置文件修改错误,如比较典型的 /boot/grub/grub.conf 及 /etc/passwd 的文件修改错误,也可以直接修正恢复。

假设有备份文件 /etc/inittab.bak,则在救援模式下执行:

sh-3.1# chroot /mnt/sysimage sh-3.1# cp /etc/inittab.bak /etc/inittab

2、没有备份文件的恢复办法如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复。

首先查找到 /etc/inittab 属于哪一个 RPM 包(即便文件丢失,因为存在 RPM 数据库,一样可以查找到结果):

sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1

退出 chroot 模式:

sh-3.1# exit

挂载存放 RPM 包的安装光盘(在救援模式下,光盘通常挂载在 /mnt/source 目录下):

sh-3.1# mount /dev/hdc /mnt/source

Fedora 系统的 RPM 包存放在光盘 Fedora/RPMS 目录下,其他 Linux 存放位置大同小异,我在这里不一一列举;

另外,因为要修复的硬盘系统的根目录在 /mnt/sysimage 下,需要使用——root 选项指定其位置。

覆盖安装 /etc/inittab 文件所在的 RPM 包:

sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm

其中的 rpm 命令选项“——replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。

如果想只提取 RPM 包中的 /etc/inittab 文件进行恢复,可以在进入救援模式后,执行命令:

sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittab sh-3.1# cp etc/inittab /mnt/sysimage/etc

注意此命令执行时不能将文件直接恢复至 /etc 目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的 /mnt/sysimage 目录下相应位置即可。

救援模式是维护 Linux 的有力武器,本文以上述两个例子讲解了它的应用方法,希望能够给读者一点启示。解决 Linux 系统启动的故障,必须充分理解 Linux 的引导过程,才能够对故障进行有效的判断和处理。

以上就是小编今天为大家分享的关于 Linux 系统的故障排查和修复的文章,希望本篇文章能够对正在从事 Linux 相关工作的小伙伴们有所帮助,想要了解更多 Linux 相关知识记得关注 马哥教育 的官网。最后祝愿小伙伴们工作顺利!

来源:csghjnbj

blog.chinaunix.net/uid-26567710-id-3050269.html

【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计5263字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7974336
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...