Linux救援模式

    学习了Linux的启动流程,为了加深理解,今天做了如下的实验:删除掉Linux系统在启动过程中比较重要的几个文件,查看启动时出现的现象。加深对知识的理解。学习机器因为某些文件的缺失的修复方式。

    一、删除grub.conf

    grnb.conf文件为系统在启动的时候,引导设备找到找到/boot后加载相应的内核和找到为加载根文件系统做准备的initramfs文件的。删除后无法引导系统找到内核。

blob.png

    删除文件后,系统启动是就停在这个画面,无法引导进入载入内核。这个时候可以通过在这个界面输入相应的命令;即grub.conf文件的相关配置进入下面的引导。前提你要记得配置的相关信息,如果不记得就需要其他的方式启动,在这里我们先就假装记得,用比较简单方式修复启动。

blob.png

    

    上面输入的四条命令就是grub.conf文件内的内容,让机器按照输入的命令进行系统的引导从而启动,这种方式在误删该文件后可以很便捷的让系统启动,启动后重新编辑grub.conf文件后就能恢复正常。前提是对系统的分区比较熟悉,能够记得/boot和/的挂载情况。

    二、在没有/boot和/etc/fstab的情况下恢复系统

    破坏之前要看清系统的内核版本以及系统的版本,准备一张相应版本的光盘,破坏后需要用光盘的救援模式进行恢复。当前系统的信息如下:

blob.png

blob.png

    上图为系统磁盘的分区情况。

    删除后启动将无法进行:

blob.png

    由于把/boot目录下的所有文件都删除了,所以无法用上述的方式恢复,这里用光盘的救援模式恢复。

blob.png

    选择第三项救援模式后,在提示选择语种和键盘模式后,跳过网络设置后进入如下的画面,做出相应的选择:

blob.png

blob.png

    由于刚才将系统设备挂载配置文件/etc/fstab删除了,无法识别到Linux的分区。

blob.png

    选择第一个选项,进入救援环境:

blob.png

    由于在救援模式下无法识别高级磁盘设备,而/则是逻辑卷设备,所以通过命令“vgchange -ay”来激活逻辑卷设备(如果是CentOS5,要使用命令lvm scan,然后在使用lvm vgchange -ay才能激活),然后就能查看快设备。通过上面的信息挂载“/”,进入根,重建fstab文件。如下图:

blob.png

    在挂载“/”的时候一定要注意,挂载的目录要为“/mnt/sysimage/”,否则挂载后无法使用命令。编辑fstab如下:然后保存重启。

blob.png

    再次进入救援模式,不同的是能够识别到要救援的系统:

blob.png

      再次进入shell模式,使用“chroot /mnt/sysimage”切换根,然后挂载光盘,安装内核,安装的时候要使用–force强制模式。如图:

blob.png

    安装完成后就可以在看见/boot目录下面有内核和initramfs文件了:

blob.png

    下一步使用命令"grub-install –root-directory= / /dev/sda"(注意:这里后面的路径不是固定的,要看分区挂载情况,”=“后面跟的是/boot目录的父目录,后面的这是所在磁盘。)安装grub,然后创建编辑grub.conf文件:

blob.png 

blob.png

    保存退出重启后:

blob.png

    能够进入grub界面了。默认启动:

blob.png

    最后成功启动,修复完成。

原创文章,作者:王更生,如若转载,请注明出处:http://www.178linux.com/60540

(2)
王更生王更生
上一篇 2016-11-23 22:24
下一篇 2016-11-23 23:08

相关推荐

  • Linux 文件系统上的权限

    文件系统上的权限是指文件系统上的文件和目录的权限,由于Linux是一种多用户的操作系统,而且允许同一时间登录多个用户操作,所以我们就需要一定的管理机制来对限定不同用户对同一文件或目录的操作权限。 文件系统上的权限主要针对三类对象(访问者)进行定义: owner:属主 u; g 属组 group; o: 其它 other 每个文件针对每类访问者都定义了三种权限…

    2017-06-04
  • 计算机组成及Linux基础

    计算机组成及Linux基础

    Linux干货 2018-03-04
  • N28-第二周博客作业

    常用通配符
    *:表示任意长度的任意字符;

    ?:表示任意的单个字符;

    []:表示在指定范围内的单个字符:[a-z];

    [^]:脱字符,是取反的意思,即在指定范围以外的任意字符,如 [^0-9]表示除数字以外的一切字符。

    [:digit:] 表示所有的数字,相当于0-9

    [:lower:] 表示所有的小写字母

    [:upper:] 表示所有的大写字母

    [:alpha:] 表示所有的字母,

    [:alnum:] 相当于[0-9a-z]

    [:space:] 相当于空白字符

    [:punct:] 表示所有的标点符号

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

    3、请使用命令行展开功能来完成以下练习:

    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │?? └── grub
    ├── dev
    ├── etc
    │?? ├── rc.d
    │?? │?? └── init.d
    │?? └── sysconfig
    │?? └── network-scripts
    ├── lib
    │?? └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │?? └── local
    │?? ├── bin
    │?? └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    Linux干货 2017-12-11
  • keepalived +LVS DR 双主互备模型实验

    keepalived +LVS DR 双主互备模型实验  实验环境介绍     操作系统:DR:centos 7.2 两个节点,都安装keepalived             &nbsp…

    Linux干货 2016-03-09
  • 细节决定成败–空格的巨大作用以及正则表达式中元字符的转义

    字符串的条件判定 1.字符串判定 一定要用双[[ ]] 2.字符串判定=~默认支持扩展正则表达式,这里注意双引号的使用 仅仅做是否包含时,有无双引号无区别。 但是利用其他扩展表达式时 双引号一定要去掉 锚定示例 多条件判定时-o -a使用时,不能使用双中括号 空格有无的差别 !的使用细节 !到目前为止 有两种意义 条件判定取反 历史命令的调用 两者的使用却别…

    2017-03-19
  • PHP安全模式详解(PHP5.4安全模式将消失)

    1. 安全模式      一直没有用过php的safe_mode安全模式,以此说明作为日后参考。      PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的。在结构上,试图在 PHP 层上解决这个问题是不合理的,但修改 web 服务器层和操作系统层显得非常不现…

    Linux干货 2015-06-02