Linux rescue模式解决误删软件依赖
来源:互联网 发布:vb与c#语法区别大吗 编辑:程序博客网 时间:2024/05/02 04:46
最近在解决phantomjs所需zlib类库版本过低问题时,本打算卸载zlib,重新安装高版本zlib,输入yum remove zlib* -y,直接将依赖zlib类库的组件全都删除,连yum、rpm等安装工具也同时删了,这样就导致安装都无法进行。由于很多基础组件类库等也都删除,因此很多服务也无法重启。
当时还好ssh可以连接,仍可以通过lrzsz工具往服务器上传输数据,并且make 等工具还在,傻傻的以为可以通过编译安装,但是由于gcc等工具也一并也删除,这就意味着编译安装也无法进行;服务器重启则直接无法启动。
最后没办法只能通过救援模式下,将误删的软件包重新安装了。具体思路是linux rescue模式挂在本地iso镜像,先将yum、rpm这两个软件安装工具按上,然后再安装其他软件包;系统是老的centos5.6版本,需要磁盘本的iso镜像,因此从网上下载centos5.6 dvd镜像,但是由于iso镜像不同,可能导致在yum安装使出现相关软件的版本不一致,需要解决confict才能安装。
下面是是本次rescue模式下的步骤:
一、进入linux rescue
1.通过U盘启动,输入linux rescue进入
2.按照提示选择ok即可
3.从此步开始需要选择iso镜像源
由于我们通过U盘启动,因此我们的iso源在”hard drive“上
4.选择分区
5.加入我们不知道选择哪个分区,我们可以按照提示按”F2”键,进入分区进行浏览
通过逐个进入分区,我们可以了解到:
/dev/sdb1是我们做的u盘启动目录,里面有很多目录,其中iso目录下包含centos-5.6-dvd.iso镜像,我们要找的就是这个目录
/dev/sdb4是iso镜像中的软件包相关,可通过挂载设置本地安装源
通过确认后我们”4选择分区“那一步,进行配置:
分区选择/dev/sdb1
Directory holding image写/iso
这样就会进入/dev/sdb1分区的/iso目录下找到centos5.6镜像,”OK”后就可以真正进入rescue模式了,按照提示原系统分区挂载在/mnt/sysimage下,通过chroot /mnt/sysimage就可以进行原系统分区了。
二、恢复工作
1.挂在iso镜像
由于我们的
mount /dev/sdb4 /mnt/sysimage/media
2.安装rpm、yum工具
cd /mnt/sysimage/media/Centos#从救援系统向原系统中安装rpm软件/usr/bin/rpm -ivh --replacepkgs --root /mnt/sysimage/media rpm-4.4.2.3-18.el5.x86_64.rpm rpm-libs-4.4.2.3-18.el5.x86_64.rpm#切换到原系统界面chroot /mnt/sysimages/cd /media/Centosrpm -ivh python-iniparse-0.2.3-4.el5.noarch.rpmrpm -ivh yum-metadata-parser-1.1.2-3.el5.centos.i386.rpmrpm -ivh python-elementtree-1.2.6-5.i386.rpmrpm -ivh python-sqlite-1.1.7-1.2.1.i386.rpmrpm -Uvh rpm-python-4.4.2.3-18.el5.i386.rpm安装ptthon-urlgrabber前rpm -Uvh m2crypto-0.16-6.el5.6.i386.rpmrpm -Uvh python-urlgrabber-3.1.0-5.el5.noarch.rpm #提示为urlgrabber依赖#安装YUMrpm -Uvh yum-3.2.22-20.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
至此yum、rpm工具都已安装到原系统中,下面可以通过yum进行本地源安装了。
3..制作本地镜像源
vim /mnt/sysimage/etc/yum.repos.d/local.repo[DVD-media]name=local sourcebaseurl=file:///mediagpgcheck=0enabled=1
注意:
(1).将CentOS-Base.repo等其他repo文件备份,尽量只保留local.repo文件以免出现影响。
(2).将/var/log/下的yum.log yum.log.1 yum.log.2备份,因为里面记录了我们yum remove的软件,yum clean all 会清除相关日志。
#测试本地yum源是否成功yum list#清楚yum缓存yum clean allyum makecache
4.yum安装软件
根据yum.log的备份中内容,对删除的软件进行重新安装。
更改root密码
安装passwd命令
yum install passwd
执行passwd root提示module is unknown,这是由于缺少了pam相关模块,yum install pam即可,安装完成后可修改密码。
总结
以上只是一个大体恢复步骤,具体情况可能有所出入,例如本次恢复过程中,我这面还出现过以下几个状况:
1.本地yum源的软件包,和原系统之前的软件包有冲突
我是修复没有冲突的包后,系统已经能够正常启动,且网络可以通,这样我就可以通过网络进行yum安装,从而避免了包冲突问题。
2.本地源制作完成后,通过yum list测试,出现”segment fault“错误
之前安装过zlib,并且将libz.so.1 软链到其他高版本的类库上了,重新修改后正常,对于这样的错误,由于类库版本导致,如果不清楚的话,则排查起来很麻烦。
- Linux rescue模式解决误删软件依赖
- Linux建立本地源解决软件依赖
- Linux救援模式rescue 拯救被删的系统文件
- ubuntu/linux下解决安装软件依赖关系不足问题
- linux--软件依赖管理工具
- Linux营救模式(rescue)的使用
- linux rescue模式fsck修复根文件系统
- linux修复开机出现grub rescue模式
- linux 软件依赖包问题
- linux援救模式:linux rescue使用详细图解
- linux安装软件(rpm/yum/apt-get/python)等解决依赖问题
- windows7上搭建yum源,解决linux安装软件依赖繁琐的问题
- linux 包依赖解决好办法
- 解决ubuntu软件安装依赖关系
- 树莓派安装软件解决依赖办法
- linux 在 rescue 模式下修复 MBR(转)
- linux 在 rescue 模式下修复 MBR(转)
- 进入Linux救援(rescue)模式的四大法门
- Set up Zend Framework Skeleton Application on Mac Step by Step
- 操作系统之存储管理
- 常用正则表达式大全 (转)
- 蓝牙 电话 HFP 剖析(一) --- 概述
- Android App 测试常用代码
- Linux rescue模式解决误删软件依赖
- 蓝牙HFP 蓝牙电话剖析(二) --- AT command集合
- Docker 会议记录
- JAVA使用继承还是组合
- git 配置身份登陆git
- 深度学习
- 蓝牙电话 HFP 剖析(三) --- flow解析
- "三关" + "一关"
- rtmpdump代码简单分析