CentOS8.2救援模式修复系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CentOS8.2救援模式修复系统
⼀、CentOS8.2 救援模式修复系统丢失⽂件
问题⽰例:系统中的libc.so.6动态库⽂件误删除
描述:glibc是GNU发布的libc库,即c运⾏库。

glibc是linux系统中最底层的api,⼏乎其它任何运⾏库都会依赖于glibc。

glibc除了封装linux 操作系统所提供的系统服务外,它本⾝也提供了许多其它⼀些必要功能服务的实现。

由于 glibc 囊括了⼏乎所有的 UNIX 通⾏的标准,可以想见其内容包罗万象。

⽽就像其他的 UNIX 系统⼀样,其内含的档案群分散于系统的树状⽬录结构中,像⼀个⽀架⼀般撑起整个作业系统。

在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的⼏个重要⾥程碑,⽤ glibc 作为系统的C函式库,是GNU/Linux演进的⼀个重要⾥程碑。

Linux的很多命令都是依赖libc.so.6的动态链接库,如果您不⼩⼼把它给删除了,基本上所有命令都不能使⽤了,之前很多同学都通过重装操作系统来解决,今天介绍⼀种⼀条命令可以解决的办法:
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
注:⽬前centos 6.x 64位的glibc的版本是 v2.12 ;
故障现象:
第⼀种:⽂件存在,系统找不到
第⼆种:⽂件被删除,不存在了
造成系统找不到libc.so.6库的原因有三种:
*)⽂件的名字被更改了,即重命名。

*)⽂件被移动到别的⽬录了。

*)⽂件被删除了。

针对以上三种情况,前两种情况可以看作⼀种情况处理,⽂件还在,就是路径系统找不到了,这种情况相对来说要好办⼀点,对于第三种情况,⽂件整个都不存在了,这个时候我们就得借助外部的⽂件进⾏修复。

我们⾸先来看⼀下系统加载libc.so.6的路径信息:
从系统上看,libc.so.6 的路径指向/lib64/libc.so.6,如果这个路径发送变化,系统找不到这个共享⽂件,导致系统出现异常。

第⼀种:⽂件存在,系统找不到
模拟故障⼀、移动libc.so.6⽂件
mv /lib64/libc.so.6 /tmp/libc.so.6
系统执⾏命令异常
系统⽇志如下:
重启机器⽆法进⼊系统
恢复⽅法:
# LD_PRELOAD=/tmp/libc.so.6 mv /tmp/libc.so.6 /lib64/libc.so.6
这个时候我们就⽤到LD_PRELOAD这个环境变量了,经过上⾯的知识补充,我们知道,通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚⾄覆盖正常的函数库。

现在我们可以使⽤这个环境变量来临时加载还存在但是不在原⽬录或是名字被篡改了的库⽂件,在临时添加环境变量的后⾯接上我们要执⾏的命令就可以将libc.so.6库恢复到原来的样⼦,让⼩编带你进⾏实验验证:
第⼆种:⽂件被删除,不存在了
对于这种情况⽐较复杂,我们不能通过本地直接进⾏恢复,我们必须借助外⾯的⽂件进⾏恢复,具体的思路就是通过加载光盘系统⽂件,将该函数库重新拷贝到本地系统中来,达到恢复的⽬的,让⼩编画图来说明:
⽬的:我们要借助光盘系统将光盘系统中的/lib64/libc.so.6拷贝到本地系统的/lib64/中,达到恢复的⽬的。

系统挂载光盘,开机。

(1)选择完成后进⼊安装界⾯,选择troubleshooting。

(2)进⼊后选择rescue a CentOS system(使⽤光盘制作⼀个⼩型的系统)。

(3)跳出4个选项,选择1继续。

3. 退出救援模式,重启系统
(1)修复完成后使⽤exit命令退出救援模式,正常重启系统即可。

这个界⾯可能会卡⼀段时间,因为没有关闭SELinux,等⼏分钟就OK。

修复完成,正常进⼊系统。

⼆、CentOS8.2 救援模式修复⽂件系统和磁盘故障
故障现象:
1、⽂件系统分区变成只读⽂件系统,⽆法写⼊⽂件
2、磁盘使⽤过长,机房断电,导致磁盘故障或者有坏块,系统⽆法启动。

Linux救援模式
修复命令:
chroot /mnt/sysimage
umount /dev/sda1
fsck -y /dev/sda1
三、CentOS8.2 救援模式grub启动⽂件和fstab⽂件异常
Centos8救援模式--误删/usr/bin/恢复
模拟场景
Centos8误删/usr/bin/等系统内置⽂件夹, 导致⼏百个内置命令丢失。

参考⽂献:。

相关文档
最新文档