CentOS下glibc库卸载恢复

CentOS glibc

在yum update或是手动更新glibc过程中,手残卸载glibc之后系统将缺失一些核心函数如cd/ls/cp等等,几乎废掉。 在保持ssh连接未断开的情况下,仍然可以通过printf '\xa\xb\xc' > /bin/cp 类似的方法重建函数,但是会比较麻烦,要注意重建的命令必须有可执行权限。

由于运维在之前安装服务器系统时,采用了最小化安装,集群上缺gcc,因此通过rpmfind.net和yum keepcache配合,获得了最新的rpm包,其中包括glibc最新版。在进行集群机器维护时,使用了pssh命令进行分发维护,执行'rpm -e --nodeps glibc-2.x'后,再度执行pssh命令,各机器不再响应,ssh失败,同时CDH监控报“找不到JDK”错误(CDH的HBase、HDFS等服务仍然维持读写正常)

通过USB启动盘,引导进入rescue模式,进行恢复

直接进入 Rescue CentOS

已经挂载了系统盘到/mnt/sysimage下,直接拷贝lib64/下的文件到/mnt/sysimage/lib64/下,然后chroot /mnt/sysimage, 使用rpm命令重装glibc (之前已经将glibc准备到硬盘里)。此时rpm安装可能会报错,强制安装glibc再重启重新安装即可。

Trouble-shooting -> Rescue CentOS

首先需要挂载系统原/挂载点。本身是逻辑分区(LVM),因此需要开启逻辑分区再挂载。

# 开启所有逻辑分区

lvm vgchange-a y

# 创建挂载点(当前PE,内存中)

mkdir/mnt

# 挂载

# mount /dev/vggroup/vgvolume /mnt

mount/dev/centos/root/mnt

# 拷贝lib64

cp lib64/*/mnt/lib64/

# 改变根位置

chroot/mnt

# 重新安装glibc

rpm-ivh--nodeps....

Logo

更多推荐