zoukankan      html  css  js  c++  java
  • 进入Linux救援(rescue)模式的四大法门

    原文:http://blog.51cto.com/xxrenzhe/1272838

    适用场景:

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

    救援(rescue)模式的本质:

       只是一个带shell的Linux运行环境,借助它可以通过mount和chroot进入要修复的系统

    解决方法:

    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命令退出chroot,exit退出rescue shell 系统重启

    2. 有Linux启动盘(或iso文件),系统是非RHEL系统(如Debian)的:

      1. 前3步与上述方法1一致

      2. 第4步时,rescue程序会找不到硬盘上的系统,所以我们选择"跳过",直接进入shell

      3. 新建文件系统挂载点,进入系统磁盘分区

        1. 假设要拯救的为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 改变工作系统)
           
      4. 继续方法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. fsck -a /dev/hdaX
          # 处理根分区,X是根分区号,如hda2
           
      6. 将系统挂载成read-write的:mount / -o remount,rw

      7. 进行系统文件修改,或其他操作

      8. 在修复好系统后将系统重新挂载成ro的,就可以安全重启了:mount / -o remount,ro

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

      1. 前3步与方法3一致

      2. 第4步,需在kernel行的最后加上“single”或“s”,按回车键(Enter),然后按“b”进行重新引导

      3. 输入passwd修改root密码

      4. 输入init 6重新启动系统即可

    参考资料:

    http://os.51cto.com/art/201003/186560.htm

    http://wenku.baidu.com/view/25e286c208a1284ac850433f.html

    http://wenku.baidu.com/view/7325421ec5da50e2524d7f76.html

  • 相关阅读:
    Eclipse查看某个方法被哪些类调用
    ServletContextListener的作用
    ServletContextListener使用详解(监听Tomcat启动、关闭)
    通用测试用例大全
    Spring常用注解汇总
    Spring @Lazy
    Qt 事件处理 快捷键(重写eventFilter的函数,使用Qt::ControlModifier判断)
    Qt之使用setWindowFlags方法遇到的问题(追踪进入QWidget的源码分析原因,最后用WINAPI解决问题)good
    delphi idhttp 实战用法(TIdhttpEx)
    delphi 线程教学第一节:初识多线程(讲的比较浅显),还有三个例子
  • 原文地址:https://www.cnblogs.com/jiftle/p/9993332.html
Copyright © 2011-2022 走看看