Linux下解决glibc库缺失导致的系统命令不能使用的问题
公司8.5机器因为升级glibc不成功,将老版本的glibc删除,导致系统大部分
命令都不能使用,系统不能正常启动。
系统:Red Hat Enterprise Linux Server release 6.0
内核:2.6.32-71.el6.x86_64
解决办法如下:
一、制作linux系统U盘启动盘;
(如果提示更新ISO的开机引导文件,则点击进行更新。)
二、启动时按DEL进入BIOS,设置U盘为第一启动盘,保存退出;
三、插入U盘,机器重启时会自动进入引导界面,按下列说明进行相应的选择;
(1)选择系统救援模式:
(2)选择Hard drive:
(3)选择U盘对应的分区目录:
(这里是/dev/sda1,如果不确定U盘对应哪一个分区目录,可以把U盘拨下观
察分区列表的变化)
(4)选择No跳过network:
(5)选择Continue:
(6)原机器的系统默认挂载到/mnt/sysimage目录:
四、进入shell命令行界面,进行glibc库的安装操作;
(原操作系统已经挂在到/mnt/sysimage目录下)
(1)创建光驱挂载目录,并挂载光驱(U盘)
#mkdir /mnt/cdrom
#mount /dev/sda1 /mnt/cdrom
注意:这里的/dev/sda1在系统引导界面中进行image的Hard drive选择时
已经知道。
(2)将glibct和libgcc的rpm包复制到/mnt/sysimage/root目录下
#cd /mnt/cdrom/Packeges
#cp glibc* /mnt/sysimage/root
#cp libgcc-4.4.4-13.el6.x86_64.rpm /mnt/sysimage/root
(3)切换到原操作系统
#chroot /mnt/sysimage
注意:
a、如果提示“chroot: failed to run command `/bin/sh': No such file or
directory”,通常是缺少某些so文件,执行:
cp -av /lib64/ld-linux-x86-64.so.2 /lib64/ld-2.12.so /lib64/libc.so.6
/lib64/libc-2.12.so /lib64/libdl.so.2 /lib64/libdl-2.12.so
/lib64/libtinfo.so.5 /lib64/libtinfo.so.5.7 /mnt/sysimage/lib64
详细参考:https://www.zhukun.net/archives/6831
b、这一步执行成功后,将不能访问/mnt/sysimage目录
(/mnt/sysimage/目录变成了/目录),下列步骤的/mnt/sysimage/root
应该用/root替换。
c、在chroot状态下,如果提示缺少某些so文件,可以执行exit退出chroot
状态,从急救盘的/lib64目录拷贝到/mnt/sysimage/lib64目录。
(在chroot /mnt/sysimage状态下,/mnt/sysimage/应该用/替换)
(4)将glibc-2.12-1.132.el6.x86_64.rpm包制作成repo格式的文件(如果root
目录下原来有util.repo文件或util目录则删除掉)
#cd /root
#rpm2cpio glibc-2.12-1.132.el6.x86_64.rpm > util.repo
(5)解压缩util.repo,并复制解压后的文件到/lib64目录
#mkdir util //在/root目录下创建util目录
#cd util
#cpio -idcuv < ../util.repo
#cp -r /root/util/lib64 /lib64
(6)依次安装root目录下glibc和libgcc的rpm包
#cd /root
#rpm -ivh glibc-common-2.12-1.132.el6.x86_64.rpm
#rpm -ivh glibc-2.12-1.132.el6.x86_64.rpm
#rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm
#rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm
#rpm -ivh glibc-utils-2.12-1.132.el6.x86_64.rpm
#rpm -ivh libgcc-4.4.4-13.el6.x86_64.rpm
注意:如果在安装过程中提示有其他的依赖关系错误,可以加上如下参数强
制安装:
--force --nodeps
以下三个rpm包必须安装:
glibc-common-2.12-1.132.el6.x86_64.rpm
glibc-2.12-1.132.el6.x86_64.rpm
libgcc-4.7.0-1.fc17.x86_64.rpm
五、重启系统,系统恢复正常,重启过程中有可能多次重启。
(李秀海,2019年9月2日,31830347@qq.com)