RHEL7/Centos7系统发布这么长时间了,大家都知道这个系统的一个特点就是用systemctl代替了init系统守护进程,系统越来越模块化了。在新版的系统中许多的命令也发生了改变,grub也变为了grub2完全看不懂了,网上也有许多的新版本与老版本对比的教程。一直想试一下7版本的系统修复,今天就手一划把系统干掉了,修复ing

暴力干掉系统---"rm -rf /boot /etc/fstab"

/boot/ 存放着系统的内核和引导文件,在boot下面的“grub2/grub.cfg” 又存放着系统的mbr引导记录信息,"rm -rf /boot "系统肯定是挂了,下面做一个更加绝的— — "rm -rf /etc/fstab" 把分区表给干掉

重启系统,发现系统已经挂了:

修复,进入系统光盘

目前我们的修复就不能进入咱们的linux系统自带的工具进行修复了,因为我们的系统已经挂掉了,已经没有可以进的系统了,接下来需要做的就是:进光盘,从光盘启动— — 修复选项

注意,我们在快速启动项中可以选择:光盘,网络,以及其他引导设备如U盘、硬盘等。在企业环境中我们需要做的应该就是网络pxe进行启动,如果没有pxe网络部署服务器的话,要做到就是插入光盘、U盘启动盘、直接把硬盘挂载在一台另外的linux系统中进行修复。

进入光盘的修复模式进行修复

在RHEL7中的启动盘中,我们 上下移动光标 选择第三项"Troubleshooting"救援模式 回车 进入; 在RHEL7中的启动盘中有三大选项:

1."Install Red Hat Enterprise Linux 7.0"————安装RHEL7.0操作系统

2."Test this media & install Red Hat Eenterprise Linux 7.0"测试启动盘是否完整并安装RHEL7.0

3."Troubleshooting" ————配错模式救援模式
进入光盘修复模式,修复向导

按照向导修复系统的fstab也就是让系统找到磁盘分区

在光盘的救援模式下会有一个类似于windows的pe的伪系统,在这个伪系统中我们使用“df”命令查看系统分区,发现没有挂载的分区。我们用“fdisk”命令工具查看我们的硬盘的分区情况,然后写入"/etc/fstab",就可以让系统找到系统分区。

在伪系统中是没有命令提示符的,这个时候“pwd”的命令就要发挥作用了,我们在当前位置中创建一个挂载点,然后把光盘的分区挂载到挂载点上,然后通过“ls”命令查看分区下面内容来分辨分区的具体位置:

通过分区内容分辨出我们的分区后,我们找到“/”写入"/etc/fstab"。让系统识别系统文件

好的,写入fstab我们的分区就找到了,重启系统,继续从光盘启动,继续修复

修复/boot/ 内核等文件

重启从光盘启动,进入“伪系统”中修复

思路:
1.根据向导提示,我们已经找到系统分区了,而且还把硬盘挂载到了/mnt/sysimage/ 这个目录里面,下面我们需要的就是把环境切换到我们的硬盘系统中也就是/mnt/sysimage 2.在上一步我们发现我们笔误,把home写成了boot。至于怎么发现这个错误,就是要进入目录中进行ls查看,多运用pwd命令,多想象我们当前所在的位置。 3.我们在/boot/ 下面ls查看,发现我们的文件为空,想象:boot里面存放的是我们的内核,RAMDISk文件,以及引导等重要信息,这些东东都是与我们的内核相关的,没有内核我们怎么办?——手动安装内核——怎么安装?——rpm包安装——安装源?——光盘或ftp——光盘挂载——在伪系统中才能挂载——创建挂载点——安装。。。
"cd ..
mkdir 1
mount /dev/sr0 1
cd 1/Packages/
rpm -ivh kernel—3.10XXX  --root=/mnt/sysimage/ --enforce"

在伪系统中安装内核,"--root=/mnt/sysimage --enforce "以root的身份把内核强制安装在硬盘系统下

漫长的等待中我们的内核相关文件都已经安装完成了。

接下来就是修复mbr的grub文件:

"grub2-install /dev/sda"在第一块硬盘上添加引导,修复grub2相关文件 "grub2-mkconfig /boot/grub2/grub.conf "重新生成引导项到文件

ok,我们的“grub2.conf”修复成功

磁盘分区修复成功,内核文件修复成功,引导文件修复成功,系统该有的都有了,ok测试

重启测试

重启我们看到我们的引导项里面就有了linux的启动项

重新刷标签,继续等待,在此过程中可能重启多次

测试成功,rhel7久违了:

系统修复总结

1.当系统丢失了/boot/的文件和fstab文件,这个时候就需要进入RHEL系统光盘进入救援修复模式修复或者在其他linux系统下修复 2.在救援修复模式中按照向导先看分区是否能够找到。然后看内核文件,最后看引导文件 3.内核安装是在伪系统中通过“rpm -ivh”运行的,"--root=/mnt/sysimage --enforce" 以root的身份把内核强制安装在硬盘系统下 4.grub文件的修复中"grub2-install /dev/sda"在第一块硬盘上添加引导"grub2-mkconfig /boot/grub2/grub.conf"重新生成引导项到文件 5.在救援修复模式中,常用的命令就是“pwd”和“ls”,一定注意您当前所在的位置。 6.系统默认把硬盘挂载在“/mnt/sysimage”在挂载的时候一定不能习惯性的把光盘挂载在“/mnt”否则你会删掉硬盘上的所有文件 7.总规划:救援模式——分区文件——内核相关文件——引导grub2文件

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

RHEL7系统修复rm -rf /boot /etc/fstab的更多相关文章

  1. RHEL7 光盘修复

    光盘修复#rm -rf /boot/*#dd if=/dev/zero of=/dev/sda bs=446 count=1#systemctl rebootTroubleshooting(排错模式) ...

  2. rm -rf /*时遇到的趣事

    今天在一个linux群里面闲逛的时候,突然看见一个愤青把自己的linux系统给 rm -rf /* 了 ,感觉很好玩就看了一下,突然我发现了有趣的事情! 我的朋友问我,这个为什么显示没有删除,我看了确 ...

  3. linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复

    XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统.centos7选择xfs格式作为默认文件系统,而且不 ...

  4. Linux小知识:rm -rf/*会将系统全部删除吗

    Linux小知识:rm -rf/*会将系统全部删除吗 本文是学习笔记,视频地址为:https://www.bilibili.com/video/av62839850 执行上面的命令并不会删除所有内容( ...

  5. Linux 系统的常用命令之 rm ,rm -rf , rm -f 以及rm 命令的其他参数命令

    1.rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用. 所删除的文件,一般都不能恢复! 2.rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信息 ...

  6. centOS6.4 extundelete工具恢复rm -rf 删除的目录

    PS:补充下,我在fedora 19上运行的时候遇到的一个问题: [root@localhost extundelete-]# ./configure Configuring extundelete ...

  7. centos rm -rf 恢复删除的文件

    Linux有时候执行了 rm -rf 等操作误删了文件绝对是一件可怕的事情,好在有一些解决的办法可以临时救急.这时我们就要用到一款叫做extundelete的工具了. 目录[-] 依赖 安装 查找要恢 ...

  8. 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件

    高性能Linux服务器 第6章  ext3文件系统反删除利器ext3grep  extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...

  9. centOS6.4 extundelete工具恢复rm -rf 删除的目录[转]

    原文:http://www.cnblogs.com/patf/p/3368765.html PS:补充下,我在fedora 19上运行的时候遇到的一个问题: 1 [root@localhost ext ...

随机推荐

  1. [ 原创 ] git使用技巧

    Git的使用--如何将本地项目上传到Github Git分支图介绍 https://www.cnblogs.com/cheneasternsun/p/5952830.html https://www. ...

  2. leetcode 相交链表 python实现

    这道题 要想解决其实不难, 开两层循环进行遍历就能实现,但是会超时 如果想要O(n) 的时间复杂度, 我考虑用哈希表来存储遍历过的元素,如果发现当前遍历的元素在哈希表里,那说明交叉点就在这 这里利用了 ...

  3. Struts2的概念

    Struts2的概念 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数 ...

  4. codevs 1365 浴火银河星际跳跃

    1365 浴火银河星际跳跃 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小 K 又在玩浴火银河了...不过这次他的目的不是跑运输 ...

  5. 【洛谷】NOIP提高组模拟赛Day1【组合数学】【贪心+背包】【网络流判断是否满流以及流量方案】

    U41568 Agent1 题目背景 2018年11月17日,中国香港将会迎来一场XM大战,是世界各地的ENLIGHTENED与RESISTANCE开战的地点,某地 的ENLIGHTENED总部也想派 ...

  6. python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...

  7. Codeforces Round #361 (Div. 2) E. Mike and Geometry Problem 离散化 排列组合

    E. Mike and Geometry Problem 题目连接: http://www.codeforces.com/contest/689/problem/E Description Mike ...

  8. Chrome DevTools Protocol Viewer

    Chrome DevTools Protocol Viewer     awesome-chrome-devtools

  9. apple developer D-U-N-S® Number

    From:https://developer.apple.com/support/D-U-N-S/ The D-U-N-S Number is a unique nine-digit number t ...

  10. c++中两个类相互包含引用的相关问题

    在构造自己的类时,可能会遇到两个类相互引用的问题. 例如: class A { int i; B b; }; class B { int i; A a; }; 在这种情况下,这样就会出现一个死循环a. ...