当前位置: 首页 > news >正文

进入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

相关文章:

  • Android开发12——Andorid中操作数据库的insert的两种方法以及nullColumnHack
  • 黑客系列-以彼之道还施彼身
  • [web前端] yarn和npm命令使用
  • 在windows上搭建镜像yum站的方法(附bat脚本)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • Price Tag | INTERVIEW 03 | 独立开发者 Tolecen
  • GitHub上优秀的Go开源项目
  • 51CTO试一下
  • 《从零开始学Swift》学习笔记(Day 10)——运算符是“ +、-、*、/ ”吗?
  • 从7个骨架项目启动你的rails开发
  • 宿主机为linux、windows分别实现VMware三种方式上网
  • DELPHI存储过程调用
  • Java集合源码分析之LinkedList
  • 消息总线重构之EventBus
  • XLSReadWriteII5导入excel数据
  • 【技术性】Search知识
  • Android Studio:GIT提交项目到远程仓库
  • Angular 响应式表单 基础例子
  • angular学习第一篇-----环境搭建
  • Django 博客开发教程 16 - 统计文章阅读量
  • django开发-定时任务的使用
  • ES6--对象的扩展
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • js 实现textarea输入字数提示
  • js中的正则表达式入门
  • laravel5.5 视图共享数据
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Terraform入门 - 3. 变更基础设施
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue2.x学习三:事件处理生命周期钩子
  • 解析带emoji和链接的聊天系统消息
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 开源SQL-on-Hadoop系统一览
  • 深入浅出webpack学习(1)--核心概念
  • 正则学习笔记
  • elasticsearch-head插件安装
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​一些不规范的GTID使用场景
  • #AngularJS#$sce.trustAsResourceUrl
  • #预处理和函数的对比以及条件编译
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (一)VirtualBox安装增强功能
  • (已解决)什么是vue导航守卫
  • (转)Mysql的优化设置
  • (转载)OpenStack Hacker养成指南
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .net Application的目录
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 调用php,php 调用.net com组件 --
  • .NET 反射的使用
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET开源项目介绍及资源推荐:数据持久层