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

相关推荐

  • N22-第一周作业

    1、描述计算机的组成及其功能    组成:        硬件:            CPU:运算器、控制器、寄存器、缓存     &nb…

    Linux干货 2016-08-15
  • linux软件包安装与管理

    一、RPM包简介     linux之所以那么强大,除了linux强大的内核,还有很大一部分取决于linux的软件包,假想没有软件包,就一个内核在运行,人类需要和内核打交道是多么痛苦,但是聪明的人类发明了bash,通过bash,人就可以使用高级语言,和机器沟通,这其中的bash起始也是一个软件包,当然linux除了ba…

    Linux干货 2016-08-24
  • corosync v2 + pacemaker + crmsh 实现mariadb高可用

    高可用mariadb拓扑图 一、设计前提     1、时间同步 # ntpdate 172.16.0.1 或者 # chronyc sources     2、所有的主机对应的IP地址解析可以正常工作, 主机名要与命令#uname -n 所得的结果一致   &…

    Linux干货 2016-08-28
  • Linux shell之bash特性大全详解(持续更新ing)

    一、shell是什么?     Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中…

    Linux干货 2016-03-09
  • Redis高可用架构(1)—Keepalive+VIP

    最近整理一下Redis高可用架构的文档,也准备分享出来,虽然这些架构也不是很复杂。Redis的高可用方案目前主要尝试过5种方式,其中2种方式已经在线上使用。 1)Redis Master-Slave + Keepalive + VIP。这是很经典的db架构,也可以用与mysql的主从切换。基本原理是:Keepalive通过脚本检测master的存活,然后通过…

    Linux干货 2016-04-13
  • MySQL高可用架构之Galera Cluster

    MySQL高可用架构之Galera Cluster 1、实验准备及拓扑 至少需要三个节点 node1 192.168.150.137 node2 192.168.150.138 node3 192.168.150.139 mariadb版本为mariadb的支持galera cluster的分支版本 MariaDB-Galera-server-5.5.46 …

    Linux干货 2017-03-31