LINUX_救援模式修复

简述

本次故障于下面连接的博文一致,解决方法也是借鉴博文,推荐去下面的博文查看
https://yq.aliyun.com/articles/225837

系统版本:CentOS 6.5 64
故障描述:/bin/sh文件缺失,导致系统启动卡在进度条

处理过程

问题发现及重置密码

由于是问题解决后写的本文档,所以有些没有截图

由研发人员说服务器无法登陆,尝试ssh连接一致提示密码错误,沟通后通过vcenter进行密码重置
通过vcenter打开机器的控制台发现机器在用户登陆界面,输入密码后 提示密码错误 并且输入密码后响应十分缓慢
重启系统进入单用户模式,提示如下错误,并且无法往下进行

1
2
3
4
5
6
init: Failed to spawn readahead-collector main process: unable to execute: No such file or directory  
init: Failed to spawn rcS pre-start process: unable to execute: No such file or directory
init: Failed to spawn readahead main process: unable to execute: No such file or directory
init: Failed to spawn readahead-collector post-stop process: unable to execute: No such file or directory
init: Failed to spawn rcS post-stop process: unable to execute: No such file or directory
init: Failed to spawn readahead-disable-services main process: unable to execute: No such file or directory

救援模式恢复

通过搜索报错信息发现问题于此博文十分相似:https://yq.aliyun.com/articles/225837
Vcenter中打开对应机器的控制台,重启机器按f2或者ESC即可进入bios或者启动项选择

因为系统是CentOS6.5的系统,特地从其他宿主机拷贝了一份6.5镜像到本宿主机,发现进入救援模式最后一步报错,如下

又尝试挂载CentOS7.6的镜像,进入救援模式成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#从救援模式的bash切换到系统的bash
bash-4.2# chroot /mnt/sysimage/
chroot: failed to run command `/bin/sh `: No such file or directory
#切换到bash失败,从救援模式的bash切换到系统的tcsh(另一种sh)
bash-4.1# chroot /mnt/sysimage/ /bin/tcsh
[root@localhost ~]# mkdir /media
#将救援模式镜像挂载到系统中
[root@localhost ~]# mount /dev/cdrom /media
mount: block device /dev/sr0 is write-protected, mounting read-only
#重新安装bash,但我用的Centos7的镜像,bash版本CentOS6.5不支持
> [root@localhost ~]# cd /media/Packages/
> [root@localhost Packages]# rpm -ivh bash-4.1.2-15.el6.x86_64.rpm --replacepkgs
> Preparing... ########################################### [100%]
> 1:bash ########################################### [100%]
> [root@localhost Packages]# exit
> exit
> bash-4.1# reboot

看到版本不符合,就像去网上找对应版本的bash,发现CSDN的下载资源好坑,明明是开源的还要各种限制,还是推荐大家去国内知名的镜像源下载
https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/Packages/bash-4.1.2-15.el6_4.x86_64.rpm\
下载完传到一台服务器上,在救援模式中 配置IP,通过scp 将安装包复制到本地
在执行此步骤:rpm -ivh bash-4.1.2-15.el6.x86_64.rpm –replacepkgs
然后复制一台相同版本机器的/bin/sh文件到本机的/bin/sh(/bin/sh是链接文件,应该做个/bin/bash /bin/sh的软连接就可以,没尝试此方法)
重启机器即可


LINUX_救援模式修复
https://imwang77.github.io/2021/02/04/LINXU_救援模式修复/
作者
imwang77
发布于
2021年2月4日
更新于
2024年1月3日
许可协议