本文主要介绍Linux升级glibc后如何无法进入系统。文章很详细,有一定的参考价值。感兴趣的朋友一定要看完!
从源安装升级glibc对于旧系统来说是非常危险的。我通过编译源代码把glibc从2.3升级到了2.9,解决了system ls等各种指令运行不好的问题后,我以为一切都会好的。结果,重启系统发现系统无法访问,马森也做不到。网上尝试了很多方法,但都不能完全解决问题。最后,通过整合各种在线方法,最终解决了问题。
如果网上的方法不能解决你的问题,你可以试试我的方法。要准备的安装包和静态库如下:
安装包
/lib
\usr\lib
这些安装包和静态库放在一个u盘里,u盘插入不能进入系统的服务器。
准备一个与原始系统相同或相近的系统盘(我的原始系统为rhel4.5,光盘为rhel4.6),并将其放入光盘驱动器中。
快速按F2键进入。
顺便调整引导顺序,并将光盘调整到顶部。
按回车键重启系统,进入光盘引导界面。
按F5键进入。
进入linuxrescue
按回车键,稍等片刻,然后输入。
按回车键进入。
按回车键进入。
按回车键进入。
将光标移动到“否”,然后按回车键进入。
按回车键进入。
提示原系统已挂载到/mnt/sysimage,按回车键进入。目前处于光盘救援模式。
mation/20210522/347/673658.png" alt="Linux升级glibc后无法进入系统怎么办">
可以看到原有系统的所有文件在/mnt/sysimage下都是可以看见的。
首先将U盘挂载到光盘系统,mount -t vfat /dev/sdb1/mnt/usb/,拷贝rpm 和静态库到/mnt/sysimage下你能记住的任意目录。(不同环境中U盘的标识符不一定是sdb1,在物理机上可能是sda1, 可以通过fdisk –l 命令看各个目录大小来判定哪个是U盘。如果挂载U盘提示格式不对错误,U盘可能是fat16,执行mount -t msdos /dev/sdb1 /mnt/usb/)
此时,之前准备的文件都在/mnt/usb/目录下, 原系统所有文件都在/mnt/sysimage下。将usb目录下的文件拷贝到/mnt/sysimage下面你能记住的任意目录。
执行chroot /mnt/sysimage ,这个指令使你由当前光盘系统切换到原系统,执行pwd和ls可以看到,你所处的目录就是原系统的根目录,你得身份也变成了原系统的管理员。
然后进入U盘文件拷贝到的目录,参照网上方法安装rpm包。然后手动替换/lib /usr/lib的静态库(*.a文件)。
手动修改动态库的软连接(无论安装rpm包时是否自动修改过软连接,都最好手动修改一遍)。
先rm *2.9*,然后
ln -sf libutil-2.3.4.solibutil.so.1
ln -sf libresolv-2.3.4.solibresolv.so.2
ln -sf libnss_nis-2.3.4.solibnss_nis.so.2
ln -sf libnss_nisplus-2.3.4.solibnss_nisplus.so.2
ln -sf libnss_hesiod-2.3.4.solibnss_hesiod.so.2
ln -sf libnss_files-2.3.4.so libnss_files.so.2
ln -sf libnss_dns-2.3.4.so libnss_dns.so.2
ln -sf libnss_compat-2.3.4.solibnss_compat.so.2
ln -sf libnsl-2.3.4.solibnsl.so.1
ln -sf libdl-2.3.4.solibdl.so.2
ln -sf libcrypt-2.3.4.solibcrypt.so.1
ln -sf libBrokenLocale-2.3.4.solibBrokenLocale.so.1
ln -sf libanl-2.3.4.solibanl.so.1
ln -sf libc-2.3.4.solibc.so.6
ln -sf librt-2.3.4.solibrt.so.1
ln -sf libpthread-0.10.so libpthread.so.0
ln -sf libm-2.3.4.solibm.so.6
执行exit退回到光盘系统,
在上图光标处在输入exit回车 ,系统会重新启动。修改BIOS设置系统从硬盘启动,原系统应该可以正常开机进入了。
以上是“Linux升级glibc后无法进入系统怎么办”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/105130.html