CentOS 救援模式 (rescue installed system)修复损坏系统

    前段时间遇到开发人员更新glibc版本,把/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 这个软连接更改之后导致报错:

    ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

    无法远程登录,终端也无法登录,也无法单用户登录,如图:

远程登录:

wKiom1bQFCeA8SsFAAAemVJRLBY130.png

终端登录:

wKiom1bQFCjT2neQAAAZdjq8ZzE758.png

单用户:

wKioL1bQFJnTxP12AAAr0ulXcao377.png

    其实在执行误操作之后只要不断开远程连接还有挽回的余地,但远程异常断开连接之后很多人就没有辙了,准备抢救数据&文件,重装系统,其实这里咱们先不要着急重装系统,咱们来试试rescue !


一、首先准备好系统安装盘,使用安装盘启动:

wKioL1bQFyiiyx9pAAGi8wcejWs890.png


二、选择语言和键盘(默认的就好):

wKiom1bQFpnQUkFGAABXeZieUXc445.png

三、稍等一会儿会出现要不要设置网络,一般来说网络没问题就不用设置了,我这里选择No:

wKiom1bQFy6SBsq-AAA1PQGe3yE741.png

四、这里就是rescue选项了:

  1. 选择Continue,则救援模式程序会自动查找系统中已有的文件系统,并把他们挂载到/mnt/sysimage目录下。

  2. 选择Read-Only,则会以只读的方式挂载已有的文件系统。

  3. 手动挂载则Skip。

  4. Advanced ,高级选项就不作说明了。

咱们这儿选择Continue:

wKioL1bQGCDDcHoqAACDKFkw2gE957.png

五、原系统挂载路径/mnt/sysimage,如果想获得原系统root环境,执行行命令:chroot /mnt/sysimage 即可。

wKioL1bQGdThFUjbAABWTp9lqv0392.png

六、这里可以执行fakd诊断,当然我们这里直接进入shell 命令行:

wKiom1bQGqeT8qgyAAA-3a6VVso643.png

七、本次重头戏来了,因为/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 问题,执行chroot /mnt/sysinage会报错:

wKiom1bQGzmhzNfRAABQaSlSqbQ574.png

八、不要害怕,执行:

cp /lib64/libc-2.12.so /mnt/sysimage/lib64/libc-2.12.so
cp /lib64/libc.so.6 /mnt/sysimage/lib64/libc.so.6

将光盘文件拷贝到系统文件去,再执行chroot /mnt/sysinage 就正常了:

wKiom1bQHe7TjnaLAABX_O5j2MU011.png

其实到这里我这次rescue 已经完成了,因为系统缺少/usr/lib64/libc-2.12.so文件和 libc.so.6 -> libc-2.12.so软连接 ,复制过去就好了 。

九、退出shell & reboot  

wKiom1bQHuryNHddAAAZAeE9iu0368.png

简单的另一个方法:
那就远程连接还未关闭:
# LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
该命令的含义是:
linux调用so库文件时,先搜索当前路径,然后是系统库目录,提供LD_PRELOAD系统变量可以改变这个顺序,改变后的搜索顺序为 LD_PRELOAD, 当前路径, 系统库目录。
于是,使用LD_PRELOAD指向正常的glibc库文件,然后执行ln等命令,就可以正常执行,执行成功之后, libc.so.6 -> libc-2.12.so就又存在了。

其他系统文件损坏也可以参照同样步骤进行,就不在此赘述了 。

欢迎大家多多指教 ~~~








本文出自 “小陌成长之路” 博客,请务必保留此出处http://309173854.blog.51cto.com/7370240/1745376

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
### 回答1: CentOS 7救援模式是一种紧急情况下修复操作系统模式。在遇到系统故障、引导问题或其他无法启动的情况下,我们可以进入救援模式来进行修复。 首先,我们需要从启动菜单中选择进入救援模式,通常会显示在启动选项列表中。选择该选项后,系统会重新启动,并进入到救援模式。 一旦进入救援模式系统会提示你输入root用户的密码,以便获得root用户权限。在输入正确的密码后,我们可以执行各种救援操作。 常见的救援操作包括修复引导问题,修复文件系统错误,重新安装损坏的软件包等。这些操作可以通过命令行工具来完成,例如fsck命令用于修复文件系统错误,chroot命令用于在救援环境中挂载和操作root文件系统。 在修复完成后,我们可以执行reboot命令来重新启动系统,以确保修复效果生效。 在进行CentOS 7救援模式修复系统时,建议备份重要数据并了解所执行的操作的风险和潜在影响。此外,如果你对救援模式不太熟悉或不确定如何进行修复,请寻求专业人士的帮助。 ### 回答2: CentOS 7救援模式是一种用于修复系统的功能强大的工具。在故障发生时,可以使用这种模式来查找并解决问题。 要进入CentOS 7救援模式,你需要重启计算机并选择从Grub菜单中的相关选项启动。在启动过程中,你将看到一条提示信息,指示你按下某个键进入救援模式。 进入救援模式后,你将被提示选择所需的语言、键盘布局和其他一些配置选项。完成后,你将进入一个命令行界面,可以执行各种系统维护和修复任务。 在救援模式中,你可以执行各种任务,例如修复损坏的启动加载程序、修复损坏的文件系统、恢复被删除的文件、重置用户密码等。你可以使用各种命令和工具,如fsck、chroot、grub-install、passwd等来完成这些任务。 修复系统的具体步骤可能因问题和要解决的情况而异。通常情况下,你首先可以使用fsck命令来检查和修复文件系统错误。如果启动加载程序有问题,你可以使用grub-install命令重新安装引导加载程序。如果你遇到密码问题,你可以使用passwd命令来重置用户密码。 在进行任何操作之前,强烈建议先备份重要数据,以防止意外损坏或丢失。 总之,CentOS 7救援模式是一个非常有用的工具,可以帮助修复各种系统问题。但请谨慎操作,并确保你了解每个命令和操作的影响,以避免进一步损坏系统。如果你对系统修复不确定,建议寻求专业人士的帮助。 ### 回答3: CentOS 7救援模式是一种用于修复系统模式,当系统出现问题无法正常启动或运行时,可以使用救援模式来恢复系统。以下是使用救援模式修复系统的步骤: 1. 首先,启动你的CentOS 7系统。在GRUB启动菜单中选择你要修复CentOS 7版本,并按下"e"键进入编辑模式。 2. 在编辑模式中,找到以"linux16"开头的行,将其替换为"linux16 rescue"。然后按下Ctrl + x键启动救援模式。 3. 系统将提示你输入root密码,输入正确的密码后按下Enter键。如果你没有设置root密码,则直接按下Enter键。 4. 进入救援模式后,系统会自动加载必要的驱动程序和文件系统。一旦加载完成,你将看到一个类似于命令行的提示符。 5. 在这个提示符下,你可以使用各种命令来修复系统。例如,你可以使用"fsck"命令来检查和修复文件系统上的错误,使用"chroot"命令来切换到已安装的系统环境,然后执行其他维护任务,如重新安装引导程序。 6. 修复完成后,你可以输入"exit"命令退出救援模式,并重新启动你的系统。 需要注意的是,在救援模式下进行任何操作都要小心谨慎,确保了解每个命令的作用和影响。如果你不确定某个命令的用法,请参考相关文档或向专业人士寻求帮助。此外,建议在进行任何重要操作之前备份你的数据,以防止意外数据丢失。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹宇飞丶

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值