linux 卸载glibc,CentOS下glibc库卸载恢复
CentOS下glibc库卸载恢复CentOS glibc在yum update或是手动更新glibc过程中,手残卸载glibc之后系统将缺失一些核心函数如cd/ls/cp等等,几乎废掉。 在保持ssh连接未断开的情况下,仍然可以通过printf '\xa\xb\xc' > /bin/cp 类似的方法重建函数,但是会比较麻烦,要注意重建的命令必须有可执行权限。由于运维在之前安装服务器系统时,
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....
更多推荐
所有评论(0)