[关闭]
@huyl08 2016-07-08T12:08:48.000000Z 字数 828 阅读 4201

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),因此需要开启逻辑分区再挂载。

  1. # 开启所有逻辑分区
  2. lvm vgchange -a y
  3. # 创建挂载点(当前PE,内存中)
  4. mkdir /mnt
  5. # 挂载
  6. # mount /dev/vggroup/vgvolume /mnt
  7. mount /dev/centos/root /mnt
  8. # 拷贝lib64
  9. cp lib64/* /mnt/lib64/
  10. # 改变根位置
  11. chroot /mnt
  12. # 重新安装glibc
  13. rpm -ivh --nodeps ....
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注