CentOS6删除/etc/fstab和/boot后恢复

CentOS6删除/etc/fstab和/boot后恢复

背景:

Linux CentOS系统和启动相关的文件都在/boot目录下,如果我们将/boot目录下所有的文件都删除,然后在恢复系统,那以后在遇到系统启动问题时就都可以解决了。在这基础上,在将/etc/fstab文件删除,这样更加大了修复的难度,不过这都是可以修复的,这里就将介绍如何修复。

实验环境:

Linux版本: CentOS 6.9

网络环境:无网络(如果有网络可以直接从其他机器复制相关文件到机器上)

光盘:需要有CentOS6.9光盘(到时候需要用光盘进救援模式)

机器:VMware虚拟机

实验:

如果是在虚拟机上做实验,请先做好快照再做实验,过程可能出现意外情况(尽管步骤和操作没问题)。

第一步:先删除/etc/fstab和/boot下的所有文件(可以移动到其他分区)

CentOS6删除/etc/fstab和/boot后恢复

当做了第一步都重启虚拟机,会出现一下情况:

CentOS6删除/etc/fstab和/boot后恢复

第二步:重启后直接进入到了grub引导程序,这时我们再重启系统,进入到救援模式,这里就不介绍怎样进救援模式,之前在一个博客(http://www.178linux.com/83078)里有详细介绍如何进入救援模式。

在进入救援模式时,会和之前不一样,因为我们删除了/etc/fstab文件,所以系统无法挂载根和/boot分区

CentOS6删除/etc/fstab和/boot后恢复

不过没关系,直接点击ok进入下一步就可以了,然后开启一个shell

CentOS6删除/etc/fstab和/boot后恢复

第三步:修复/etc/fstab

因为没有/etc/fstab文件,系统无法帮我们挂载分区,所以需要先修复/etc/fstab文件,也就是手写/etc/fstab文件,里面至少需要挂载根和/boot两个分区。在写文件之前我需要先知道哪个分区是根,哪个分区是/boot,可以用fidsk -l查看分区情况

CentOS6删除/etc/fstab和/boot后恢复

CentOS6删除/etc/fstab和/boot后恢复

这里不好判断哪个分区是干什么的,但如果你很清楚的知道哪个分区是干什么的,那可以直接写/etc/fstab文件了,现在我们先建一个目录来临时挂载分区,来看看/dev/sda2和/dev/sda3哪个是根。

CentOS6删除/etc/fstab和/boot后恢复

已找到根、/boot和swap分区,现在可以放心的写/etc/fstab文件了

/dev/sda1 /boot ext4 defaults 0 0
/dev/sda2 / ext4 defaults 0 0
/dev/sda5 swap swap defaults 0 0

写/etc/fstab文件的格式:

分区或者设备名   挂载目录  文件系统  defaults(设置为默认) 0 0(最后两个最好设为0)

CentOS6删除/etc/fstab和/boot后恢复

CentOS6删除/etc/fstab和/boot后恢复

第四步:修复boot

然后重启系统,在进入到救援模式,让系统自动帮我们挂载根,在进行下一步修复

CentOS6删除/etc/fstab和/boot后恢复

当我们进入救援模式时就可以切根了,切根命令:chroot /mnt/sysimage

CentOS6删除/etc/fstab和/boot后恢复

这个时候就可以开始修复/boot目录了,首先我们应该知道启动系统需要的文件:Linux内核(版本得对)、gurb、grub.conf

首先先挂载光盘,然后安装内核(也可以直接将光盘里的内核文件复制过去)

安装内核命令:rpm -ivh /mnt/Package/kernel-版本号(可以tab键补全).rpm

CentOS6删除/etc/fstab和/boot后恢复

内核生成成功后,现在安装grub,命令:grub-install /dev/sda

CentOS6删除/etc/fstab和/boot后恢复

安装gurb需要点时间,要耐心等待,等完成后看看是否有gurb程序

CentOS6删除/etc/fstab和/boot后恢复

到现在就缺个/boot/grub/grub.conf文件,这需要我们手写

default 0 #默认选择第一项
timeout 3 #选择等待3秒,之后进入默认选项
title Linux-CentOS6.9 #菜单选项名字
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2 #内核版本和根的位置
initrd /initramfs-2.6.32-696.el6.x86_64.img #init

写完这个后保存退出,然后重启系统,看是否成功,在重启前先用命令:sync  来确保已写到磁盘保存

如果启动还有什么问题,看看是不是哪个文件写错了,或者目录名没对,还有就是光盘系统版本是否和修复的系统一致。

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

(0)
657188918657188918
上一篇 2017-08-31
下一篇 2017-09-01

相关推荐

  • N25第五周博客作业

    第五周博客作业   1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;   2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;   3、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行; &nbs…

    Linux干货 2016-12-28
  • 网络班第27期第一周作业

    1、         描述计算机的组成及其功能 CPU:主要由控制器和运算器组成,其他还有寄存器和缓存等。 控制器:其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器:功能是对数据进行各种算术运算和逻…

    2017-07-29
  • iptables练习

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; 系统默认策略设定: ~]# iptables -P INPUT DROP ~]# iptables -P OUPUT DROP 网络说明…

    Linux干货 2016-12-27
  • 程序包管理:rpm、yum以及(make)源代码编译安装

    程序包管理:rpm、yum以及(make)源代码编译安装 在Linux上安装程序一般都有三种方法:源代码编译安装,rpm包安装和rpm包的前端安装yum, (rpm,和yum程序包管理器是针对CentOS6平台的) 程序包管理方式都大同小异:  源代码–>目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–&gt…

    Linux干货 2017-01-10
  • 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)

    1.概述 类中的面向对象编程封装应用逻辑。类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态。单独的对象是一种组织代码的有用方法,但通常你会处理一组对象或者集合。 集合不一定是均一的。图形用户界面框架中的 Window 对象可以收集任意数量的控制对象 - Menu、Slider 和 Button。并且,集合的实现可以有多种方式:PHP 数字是一个集…

    Linux干货 2015-07-19
  • 从Linux小白到大牛——与狼共舞的日子9

    马哥教育网络班21期+第9周课程练习 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; [root@localhost ~]# cat shell.sh  #!/bin/bash # declare…

    Linux干货 2016-12-05