RHEL6误使用了RHEL7的光盘源,安装了某个RPM包之后,导致glibc被升级,进而导致系统崩溃。
[root@rhel65 ~]# yum install ftp
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ftp.x86_64 :0.17-.el7 will be installed
--> Processing Dependency: libc.so.(GLIBC_2.)(64bit) for package: ftp-0.17-.el7.x86_64
--> Running transaction check
---> Package glibc.x86_64 :2.12-1.132.el6 will be updated
--> Processing Dependency: glibc = 2.12-1.132.el6 for package: glibc-headers-2.12-1.132.el6.x86_64
--> Processing Dependency: glibc = 2.12-1.132.el6 for package: glibc-common-2.12-1.132.el6.x86_64
--> Processing Dependency: glibc = 2.12-1.132.el6 for package: glibc-devel-2.12-1.132.el6.x86_64
---> Package glibc.x86_64 :2.17-.el7 will be an update
--> Running transaction check
---> Package glibc-common.x86_64 :2.12-1.132.el6 will be updated
---> Package glibc-common.x86_64 :2.17-.el7 will be an update
--> Processing Dependency: /usr/bin/bash for package: glibc-common-2.17-.el7.x86_64
---> Package glibc-devel.x86_64 :2.12-1.132.el6 will be updated
---> Package glibc-devel.x86_64 :2.17-.el7 will be an update
---> Package glibc-headers.x86_64 :2.12-1.132.el6 will be updated
---> Package glibc-headers.x86_64 :2.17-.el7 will be an update
--> Running transaction check
---> Package bash.x86_64 :4.1.-.el6_4 will be updated
---> Package bash.x86_64 :4.2.-.el7_2 will be an update
--> Processing Conflict: bash-4.2.-.el7_2.x86_64 conflicts filesystem <
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package filesystem.x86_64 :2.4.-.el6 will be updated
---> Package filesystem.x86_64 :3.2-.el7 will be an update
--> Finished Dependency Resolution Dependencies Resolved ===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Installing:
ftp x86_64 0.17-.el7 rhel73-iso k
Updating:
filesystem x86_64 3.2-.el7 rhel73-iso 1.0 M
Updating for dependencies:
bash x86_64 4.2.-.el7_2 rhel73-iso 1.0 M
glibc x86_64 2.17-.el7 rhel73-iso 3.6 M
glibc-common x86_64 2.17-.el7 rhel73-iso M
glibc-devel x86_64 2.17-.el7 rhel73-iso 1.1 M
glibc-headers x86_64 2.17-.el7 rhel73-iso k Transaction Summary
===========================================================================================================
Install Package(s)
Upgrade Package(s) Total download size: M
Is this ok [y/N]: y
Downloading Packages:
-----------------------------------------------------------------------------------------------------------
Total MB/s | MB :
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : glibc-2.17-.el7.x86_64 /
Updating : bash-4.2.-.el7_2.x86_64 /
Updating : glibc-common-2.17-.el7.x86_64 /
Updating : glibc-headers-2.17-.el7.x86_64 /
Updating : glibc-devel-2.17-.el7.x86_64 /
Updating : filesystem-3.2-.el7.x86_64 /
Error unpacking rpm package filesystem-3.2-.el7.x86_64
error: unpacking of archive failed on file /bin: cpio: rename
Installing : ftp-0.17-.el7.x86_64 /
Cleanup : glibc-devel-2.12-1.132.el6.x86_64 /
Cleanup : glibc-headers-2.12-1.132.el6.x86_64 /
Cleanup : bash-4.1.-.el6_4.x86_64 /
Non-fatal POSTUN scriptlet failure in rpm package bash
Cleanup : glibc-common-2.12-1.132.el6.x86_64 /
warning: %postun(bash-4.1.-.el6_4.x86_64) scriptlet failed, exit status
Cleanup : glibc-2.12-1.132.el6.x86_64 /
warning: /etc/localtime saved as /etc/localtime.rpmsave
Non-fatal <unknown> scriptlet failure in rpm package glibc
rhel65-iso/productid | 1.7 kB : ...
rhel73-iso/productid | 1.6 kB : ...
Verifying : glibc-devel-2.17-.el7.x86_64 /
Verifying : bash-4.2.-.el7_2.x86_64 /
Verifying : glibc-2.17-.el7.x86_64 /
Verifying : glibc-common-2.17-.el7.x86_64 /
Verifying : ftp-0.17-.el7.x86_64 /
Verifying : glibc-headers-2.17-.el7.x86_64 /
Verifying : glibc-2.12-1.132.el6.x86_64 /
Verifying : glibc-devel-2.12-1.132.el6.x86_64 /
Verifying : bash-4.1.-.el6_4.x86_64 /
filesystem-2.4.-.el6.x86_64 was supposed to be removed but is not!
Verifying : filesystem-2.4.-.el6.x86_64 /
Verifying : glibc-common-2.12-1.132.el6.x86_64 /
Verifying : glibc-headers-2.12-1.132.el6.x86_64 /
Verifying : filesystem-3.2-.el7.x86_64 / Installed:
ftp.x86_64 :0.17-.el7 Dependency Updated:
bash.x86_64 :4.2.-.el7_2 glibc.x86_64 :2.17-.el7 glibc-common.x86_64 :2.17-.el7
glibc-devel.x86_64 :2.17-.el7 glibc-headers.x86_64 :2.17-.el7 Failed:
filesystem.x86_64 :2.4.-.el6 filesystem.x86_64 :3.2-.el7 Complete!

查看yum install升级记录日志

 
 
此时系统已经不能正常执行reboot命令重启了,只能强制按电源重启机器。重启之后,原系统已经崩溃,进不去系统了,停在下面的界面:
 

 
然后使用RHEL6的光盘引导机器,选择rescue,进入到shell之后提示无法chroot到/mnt/sysimage,无解。
 
然后重启,用RHEL6安装光盘引导机器,选择Install or Update系统,进入图形后选择update已有系统,失败,如下图。
 

 
然后按ctrl+alt+F2切换到第2个console,发现原系统已经被自动挂载到/mnt/sysimage目录,尝试chroot到/mnt/sysimage,由于bash被上面依赖更新了,所以会提示找不到/bin/sh,手动把/mnt/sysimage/usr/bin/sh 拷到 /mnt/sysimage/bin/sh,再次chroot成功。
 

 
手工挂载RHEL6的ISO到/mnt/rhel65并cd到Packages目录,强制将上面更新过的几个包更新回到RHEL6的版本:
# rpm --force --nodeps -Uvh  [RPM包名]
分别把bash/glibc/glibc-common/glibc-devel/glibc-headers这几个包装回去。
 
重启系统,发现已经可以正常进入到原系统了,最后使用yum remove把最开始安装的RHEL7的包给remove掉,问题全部解决。
 

RHEL6误安装RHEL7的包导致glibc被升级后系统崩溃处理方法的更多相关文章

  1. glibc CVE-2015-7547漏洞的分析和修复方法【转】

    本文转载自:http://blog.csdn.net/tengxy_cloud/article/details/50764370 漏洞概述 glibc中处理DNS查询的代码中存在栈溢出漏洞,远端攻击者 ...

  2. 第七天 Linux用户管理、RHEL6.5及RHEL7.2 root密码破解、RHEL6.5安装vmware tools

    1.Linux用户管理 Linux系统中,存在三种用户 A.超级用户:root 最高权限,至高无上 在windows中 administrator是可以登录的最高权限,但是,system权限最高,不能 ...

  3. RHEL6.1 安装 Oracle10gr2 (图文、解析)

    目录 目录 软件环境 前言 初始化RHEL61 硬件检测 预安装软件包 安装oratoolkit 创建Oracle用户 修改配置文件 系统版本伪装 解压并运行Oracle10gr2安装包 安装rlwr ...

  4. rhel6.4 安装nodejs和Mysql DB服务

    rhel6.4 安装nodejs和Mysql DB服务 安装好redhat6.4虚拟机后, 安装软件: # yum install gcc-c++ openssl-devel Loaded plugi ...

  5. linux和windows下安装python拓展包及requirement.txt安装类库

    python拓展包安装 直接安装拓展包默认路径: Unix(Linux)默认路径:/usr/local/lib/pythonX.Y/site-packagesWindows默认路径:C:\Python ...

  6. Android导包导致java.lang.NoClassDefFoundError

    摘要: SDK方法总数是不能超过65k的.是否也引入其他的三方库,导致总数超过限制.超出限制会导致部分class找不到,引发java.lang.NoClassDefFoundError.解决方法:近日 ...

  7. Red Hat Enterprise Server 6.0 安装Sendmail相关包

    由于需要在Linux服务器(Red Hat Enterprise Linux Server release 6.0)上配置邮件服务,需要安装Sendmail包,一般Sendmail的安装有两种方式:R ...

  8. (转载)Linux如何编译安装源码包软件

    一.什么是源码包软件: 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见:在国内源可见的软件几乎绝迹:大多开源软件都是国外出品:在国内较为出名的开源软件有fcitx;l ...

  9. 安装 RPM 包或者安装源码包

    安装 RPM 包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下. ...

随机推荐

  1. Python3.6.1的安装

    Python 3.61的下载和安装,下载地址:https://www.python.org/downloads/ 选择最近的版本,目前为Python3.6.1,下载后直接安装即可 下载包为: 双击安装 ...

  2. cpp - 编译过程

    预处理 E:\CppSpace\hello>g++ -o main.i -E main.cpp E:\CppSpace\hello>dir /p 驱动器 E 中的卷是 固盘-项目 卷的序列 ...

  3. SpringMvc4.x---快捷的ViewController

    @RequestMapping("/index") public String hello(){ return "index"; } 此处无任何的业务处理,只是 ...

  4. Linux安装mysql 在/etc下没有my.cnf 解决办法

    进入 /usr/share/mysql  将my-medium.cnf 移动到etc 并且改名为my.cnf

  5. python_如何获取文件状态

    案例: 在某项目中,需要获取文件状态,如: 文件的类型(普通文件.目录.符合连接.设备文件) 文件的访问权限 文件最后 访问.修改.节点状态 时间 普通文件大小 -- 如何解决? 方法1:通过os原始 ...

  6. MySQL模糊查询中通配符的转义

    sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符.如果我们想要模糊查询带有通配符的字符串,如“60%”,“us ...

  7. 2018-02-02-解决IDE中无法忽略的非代码文件

    layout: post title: 2018-02-02-解决IDE中无法忽略的非代码文件 key: 20180202 tags: GIT 版本管理 modify_date: 2018-02-02 ...

  8. 关于MyEclipse启动报错:Error starting static Resources;下面伴随Failed to start component [StandardServer[8005]]; A child container failed during start.的错误提示解决办法.

    最后才发现原因是Tomcat的server.xml配置文件有问题:apache-tomcat-7.0.67\conf的service.xml下边多了类似与 <Host appBase=" ...

  9. JavaSE基础篇—数据类型和运算符

       本章知识点内容概括 数据类型:  1.基本数据类型 数值型 整数类型 byte(128~127),占1个字节的储存间 short(-2^15~2^15-1),占2个字节 int(默认类型-2^3 ...

  10. 换行符\n和回车符\r

    问题始于社区的一个帖子,楼主的问题如下: “在c语言中,对一个不知道大小的文件进行读操作,我用fread()将文件的内容先放到一个缓存区,然后将缓存区中的内容打印出来, 缓存区中的内容和文件中的内容不 ...