如何恢复误删除的rpm包命令

如何恢复误删除的rpm包命令

linux学习过程中,我们会遇到各种各样的问题,当然,如果能够将遇到的问题一一解决也是非常开心的,因为在解决问题的过程中我们的专业技能也得到了很大的提升。最近的测试中遇到了一个平时很少接触的问题:如何恢复误删除的rpm包命令。所以觉得有必要写下来,以防止下次出现类似的问题而不会解决。

首先模拟卸载rpm

rpm -e –nodeps rpm

 如何恢复误删除的rpm包命令

由于yum依赖于rpm,所以yum也无法正常使用

 yum list

 error: Unable to open /usr/lib/rpm/rpmrc for reading:
No such
file or directory.

error: no dbpath has been set

 error: cannot open Packages database in /%{_dbpath}

 CRITICAL:yum.main:

 Error: rpmdb open failed

 出现这样的情况就需要进入救援模式,重新为当前系统安装rpm命令包。不同的环境进入救援模式的方法也不尽相同,这里参考了部分资料。进入救援模式的四种方法如下:

 适用场景:

 当误操作修改系统启动文件/etc/fstab, /etc/rc.d/rc.sysinit时,就会造成系统启动时读取磁盘或初始化环境失败,导致Linux无法正常启动,此时就可以借助linux的救援模式临时进入系统,进行文件修改,纠正错误

 救援(rescue)模式的本质:

 只是一个带shellLinux运行环境,借助它可以通过mountchroot进入要修复的系统

 解决方法:

<

p style=”text-indent:2em”>

  1. Linux启动盘(或iso文件),系统是RHEL系统的:
    1. 用安装光盘或者硬盘安装的方式进入安装界面:在shell 中输入 Linux rescue
    2. 然后根据提示选择语言和键盘格式
    3. 选择是否配置网卡:一般系统到了要rescue了,网络也就不需要了,所以可以选择跳过网卡配置,当然你如果需要也可以选择是,具体设置过程和安装时一样
    4. 选择是否让系统查找硬盘上的RHEL系统,选择继续。
    5. 硬盘上的系统已经被找到并挂载在/mnt/sysimage
    6. 按提示chroot
      /mnt/sysimage
      ,之后你就可以已经在你的要被拯救的系统下了
      1. grub挂了的:grub-install /dev/hdxx
      2. 配置文件改错的:vi
        /etc/fstab vi /etc/inittab
      3. 软件包被毁的:rpm
        -F xxx.rpm

    7. 完成修复工作后,exit命令退出chrootexit退出rescue
      shell
      系统重启

  2. Linux启动盘(或iso文件),系统是非RHEL系统(如Debian)的:
    1. 3步与上述方法1一致
    2. 4步时,rescue程序会找不到硬盘上的系统,所以我们选择跳过,直接进入shell
    3. 新建文件系统挂载点,进入系统磁盘分区
      1.  



        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        假设要拯救的为debian 系统,系统分区部署为:

        /dev/hda1 /boot分区

        /dev/hda5 /分区

        /dev/hda6 swap分区

        ==================================================

        # fdisk -l (查看分区情况)

        # mkdir /mnt/Linux

        # mkdir /mnt/Linux/boot (根据fdisk -l 得到的信息创建目录)

        # mount -t ext3 /dev/hda5
        /mnt/Linux

        # mount -t ext3 /dev/hda1
        /mnt/Linux/boot
        (挂载硬盘上的文件系统)

        # chroot /mnt/Linux chroot 改变工作系统)

    1. 继续方法1的第6-7步,做相应操作即可

  3. Linux启动盘(或iso文件):
    1. 系统启动时,按任意键进入grub选择界面
    2. 选择需要启动的Linux系统,按“e”进入编辑界面
    3. 选择kernel行,按“e”进入核心启动模式编辑界面
    4. kernel行的最后加上“init=/bin/bash”,按回车键(Enter),然后按“b”进行重新引导
    5. 引导系统会得到一个bash
      shell
      ,但进入的系统是read-only的,需使用fsck检查系统
      1.  



1

2

fsck -a/dev/hdaX

# 处理根分区,X是根分区号,如hda2

    1. 将系统挂载成read-write的:mount / -o remount,rw
    2. 进行系统文件修改,或其他操作
    3. 在修复好系统后将系统重新挂载成ro的,就可以安全重启了:mount / -o remount,ro

4、进入单用户模式(适用于忘记root密码的):

    1. 3步与方法3一致
    2. 4步,需在kernel行的最后加上“single”“s”,按回车键(Enter),然后按“b”进行重新引导
    3. 输入passwd修改root密码
    4. 输入init 6重新启动系统即可

(参考资料:http://blog.csdn.net/zhubinqiang/article/details/38331417

下面将具体演示rpm安装过程,稍复杂:

 1.  重启虚拟机进入救援模式(本人使用的是虚拟机)

 如何恢复误删除的rpm包命令        如何恢复误删除的rpm包命令如何恢复误删除的rpm包命令如何恢复误删除的rpm包命令如何恢复误删除的rpm包命令如何恢复误删除的rpm包命令

 

2.进入救援模式后df看下光盘有没有挂载,没有挂载则手动挂载

 mkdir /mnt/cdrom

mount  /dev/sr0 /mnt/cdrom

 如何恢复误删除的rpm包命令

3.安装rpm

#进入光盘的Packages目录执行

rpm -ivh
/mnt/cdrom/Packages/rpm.XXX.rpm –root=/mnt/sysimage

如何恢复误删除的rpm包命令

#切换到原系统的根目录下

 cdroot /mnt/sysimage

 #测试rpm是否成功安装

rpm

    如何恢复误删除的rpm包命令

#重启

reboot

注意:

1、救援模式原系统挂载在/mnt/sysimage,安装时须制定参考的根目录 
   2、基本命令不要随便卸载,否则服务器重启可能带来不可预知的问题

 

原创文章,作者:poetic snow,如若转载,请注明出处:http://www.178linux.com/85409

(2)
poetic snowpoetic snow
上一篇 2017-08-26 16:23
下一篇 2017-08-26 16:51

相关推荐

  • Second

    1、 linux 上的文件管理类命令都有哪些, 其常用的使用方法及相关示例演示 cat     concatenate file and print ont the standard output cat [OPTION]…[FILE]…      &nbsp…

    Linux干货 2016-12-13
  • 马哥教育网络班21期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限; [root@localhost /]# cp -r /etc/skel /home/tuser1 [root@localhost /]# chmod&nb…

    Linux干货 2016-07-22
  • OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

    一、OpenSSH     OpenSSH与SSH协议是远程登录的首选连接工具。它加密所有流量,以消除窃听,连接劫持和其它攻击。OpenSSH常常被误认以为与OpenSSL有关系,但实际上这两个项目的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。  &…

    Linux干货 2016-04-24
  • ☞卸载kernel玩一玩

    卸载kernel玩一玩 废话不多说,下面开始卸载内核这一惊险之旅,特别提醒在开始之前做好虚拟机的快照,也许会造成系统无法启动,也许会出现各种错误,也许会笑着删数据库跑路,也许会从入门到放弃,,请系好安全带。  练习 冒泡排序法 #!/bin/bash##Author:jasonmc#Date:2016-08-24#Description:buble…

    Linux干货 2016-08-26
  • rsyslog应用举例

    rsyslog+mysql+loganalyzer 1、yum install mariadb-server php-gd rsyslog-mysql ##连接到mysql需要的驱动程序,用来保存信息 2、登录数据库并给rsyslog赋权,设置密码,重读授权表 3、以rsyslog用户身份登录数据库,此时创建Syslog库,注意此处数据库名称要与rsyslo…

    Linux干货 2016-10-23
  • 用户管理简述

    组内用户管理汇总 基于组来管理用户 相关命令:gpasswd groupmems 添加用户 gpasswd -a wangcai group :向group里添加用户 wangcai gpasswd -M wangcai,xiaoqiang group :向group里批量添加xiaoqiang wangcai ,不过这个方式会覆盖之前的组员 groupme…

    2017-02-23