新手处理事故之误删boot目录以及更严重的删除操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手处理事故之误删boot目录以及更严重的删除操作相关的知识,希望对你有一定的参考价值。

新人来看撒,包教包会,又涨知识又教套路咯

实验环境:VMware虚拟机,CentOS-6.9操作系统

实验详情:分区情况下删除boot目录以及删除fstab文件的修复

误删除boot目录,不要慌张,跟随博主一起一步一步使其重生

首先我们模拟删除boot目录

[[email protected] ~]# rm -rf /boot/*     #删除boot目录下所有文件
[[email protected] ~]# reboot             #重启电脑

铛铛铛:成功破坏,电脑启动不了,提示信息:

技术分享

勿慌勿慌,能拆就能砌,能破就能立。紧跟步伐

修复过程:

进入救援模式

不知道救援模式怎么进?简单,看好了,首先确保光盘已经挂载上去,然后没有了技术分享,(别打脸,别打脸)还有还有...系统启动时会进入以下界面:

技术分享

接着就考验你的手速了,在读条还没进行到底时以迅雷不及掩耳盗铃之势按下Esc键(注意:一下,就一下,不听劝告,后果自负),接着便会弹出一个少见的界面:

技术分享

(上下键移动选项,Enter键确定)

选3,选3,选3!从光盘启动系统,

技术分享

看见没,看见没,一个熟悉的单词Rescue,对对对,它就是那啥,选它,选它。然后然后就不懂了...,耐心耐心,之后你就知道了

技术分享技术分享

左面选择语言--》English

右面选键盘格式--》us(美式键盘)

接着让你选择网络连接,为方便起见,在此我们就不选择它了,这一项选No,No,No

技术分享

胜利就在眼前,提示你即将进入救援模式,之前的根目录会移动到/mnt/sysimage(记住,记住,记住)

技术分享技术分享

成功进入救援模式,选择shell Start shell

技术分享

你会发现会进入一个bash界面,可以敲击命令,但是,但是,但是,这不是你原来系统的根目录,想要修复误删除的bootmul,你要先进去你的根目录:

sh-4.1#chroot /mnt/sysimages         #切换家目录,之后便会发现,目录还是从前的模样
sh-4.1#ls /boot/                     #ls boot目录发现boot目录已被删除干净

接下来大刀阔斧地向boot目录中添加文件

sh-4.1#mount /dev/sr0 /mnt/          #将光盘挂载,我们需要里面的部分文件
sh-4.1#cp /mnt/isolinux/vmlinuz /boot    #拷贝光盘下的这个文件到boot目录下,此文件为内核文件
sh-4.1#mkinitrd /boot/initramfs-`uname -r`.img `uname -r`     #此命令会生成伪根文件,负责文件系统的驱动,以挂载根目录
sh-4.1#ls /boot/                     #可以查看boot目录下已经生成的文件
sh-4.1#grub-install /dev/sda         #重装grub,负责系统的引导启动。注意如果你的虚拟机装了好几个磁盘,可能会报一定的错误:Unknown partition table signature 没关系的,不影响修复
sh-4.1##########基本文件已经装配齐全,最后一步,编辑配置文件
sh-4.1#nano /boot/grub/grub.conf        #我的救援模式里面没有vim编辑命令,使用nano编辑grub配置文件
###键入以下内容###
default=0         #启动时会有一个菜单,0时为默认启动文件里面第一个内核
timeout=5         #等待时间5秒,不做选择时
title mozart-centos        #菜单标题
kernel /vmlinuz root=/dev/sda2    #启动的内核,文件名注意保持一致。root后写原来根目录的挂载设备
initrd /initramfs-xxxxx.img xxxxx    #伪根系统,注意文件名的一致 ,同boot下的伪根文件保持同名

大功告成,boot目录修复完成,

键入exit退出原来根目录,再exit退出bash,选择reboot Reboot重启系统

系统复活(烟花烟花)

技术分享

嘚瑟中.........

(没眼色的路人甲):倘若更严重的输出呢??删除etc下的fstab文件,使你进入救援模式,但却无法将原来的根目录挂载,无法找到boot目录,怎么破??

呃......这个......

简单!既然没有了fstab文件,那么我们就进救援模式写一个,老套路,进入救援模式。

这是删除fstab文件时的救援模式提示:

技术分享

不管它,我们依旧进入bash界面,由于缺少fstab文件,磁盘不知道挂载到哪里,我们也不知道哪个磁盘分区中保存我们的根目录,不怕,简单,一个一个分区去挂载下查看就好了(嘿嘿)

sh-4.1#mkdir test       #创建测试分区的目录
sh-4.1#mount /dev/sda1 test/   
sh-4.1#ls test/         #挂载分区,并查看分区内容判断...
######此处省略测试环节###########
sh-4.1#mount /dev/sda2 test/
sh-4.1#ls test/         #最终我们发现,挂载了/dev/sda2分区我们可以找到了原来的根目录(欢呼欢呼)
######接下来我们自己人工智能(手写)fstab文件,之前若有备份拷过去即可#######
sh-4.1#nano test/etc/fstab
######根据分区情况键入以下内容#####3
/dev/sda1    /boot    ext4    defaults    0  0
/dev/sda2    /        ext4    defaults    0  0
/dev/sda3    /app     ext4    defaults    0  0
............
sh-4.1#exit    #退出bash,选择reboot Reboot 重启系统,

重启系统,完成啦(开心开心)........怎么可能,你只是解决了一个问题(修复fstab文件),可以正常进入救援模式,并将根目录默认挂载在/mnt/sysyimage.还有boot目录要修复....

路人甲:上面不是有详细的修复boot目录的教程么,你是不是傻...

呃.....也对,剩下的就和上面的一样了,进入救援模式,修复boot目录。

不过,嘿嘿,还留了一手:

在生成内核文件和伪根的时候,可以不用那么麻烦一个个命令生成,这些文件都来自于kernel包,只需重装kernel包即可,切换根目录后,挂载光盘

rpm -ivh /mnt/cdrom/Packages/kernel.xxx.rpm  --force        #--force,强制重装kernel包,即可生成内核文件伪根文件等boot下的文件

然后重装grub,编辑grub配置文件即可(注意:配置文件内的文件名的一致问题),重启,结束

结束了,真的结束了,骗人不好.......



本文出自 “Mozart” 博客,请务必保留此出处http://mozart.blog.51cto.com/13286673/1968048

以上是关于新手处理事故之误删boot目录以及更严重的删除操作的主要内容,如果未能解决你的问题,请参考以下文章

win10 蓝牙图标消失之蓝牙已关闭之误删蓝牙驱动之进BIOS重新扫描硬件

生产事故:误删/lib64,移走/lib64目录

生产事故:误删/lib64,移走/lib64目录

误删/boot目录和/etc/fstab文件的恢复方法

每一次严重事故都是可以预测的

每一次严重事故都是可以预测的