新人来看撒,包教包会,又涨知识又教套路咯
实验环境: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配置文件即可(注意:配置文件内的文件名的一致问题),重启,结束
结束了,真的结束了,骗人不好.......