> CentOS > CentOS入门 >

grub命令下的centos救援笔记

昨天手残修改了/boot/grub2/grub.cfg,结果引导出错了,开机直接进入grub的命令行模式,捣鼓了半天,还是没恢复过来,只好重装Ubuntu刷掉了原来的centos7.

事情的起因是Firefox不能播放视频和音乐,需要Adobe Flashplayer,于是我就下了一个Flashplayer的.tar.gz包,经过正常的tar -zxvf解压后会出现一个.iso文件和一个usr源码文件夹。按照度娘说的呢,这个.iso文件要加到/usr/lib64/mozilla/plugins文件夹下,顾名思义:mozilla的插件都应该放在这咯。然后再把源码文件/usr/*全都cp到/usr/下面。天地良心,我是一步步循规蹈矩做的,可是重启Firefox后依然显示缺少插件。

然后我想换一种安装方式,于是下了一个Flashplayer的rpm包,用rpm 命令直接安装。这里插一句,这个rpm包与Debian发行版本下的dpkg是同意的,他们都是软件包管理工具,会自动编译、安装、分析软件的依赖关系。而Debian系统下做出个apt-get来简化下载+安装过程,于是Redhat就有了yum。扯回正题,rpm -ivh显示一切正常,但是打开Firefox还是显示缺少插件!握草啊!!!万般无奈下我就yum update了,意思是升级所有软件包、系统配置和版本、内核都升级!注意,连系统也升级了。唯一值得庆幸的是Firefox可以看视频听音乐了。但是当我重启想进入我的win7系统时问题来了。

再次出现Win7启动项丢失,其实这并不是大事,因为安装过Centos的同仁都遇到过这个问题,网上也有很多解决方案,就是修改grub的配置文件,将windows系统的kernel所在分区添加进启动项就好。这个grub.cfg我当初是修改过的,我以为系统升级把它覆盖掉了,抱着试试看的心态打开它,发现原来我添加的那部分启动代码还在那啊,只是Centos的启动项多了一项不知道什么鬼。管不了那么多了,我直接在vim里保存了下,再重启,引导菜单里还是没出现Win7启动项。奇怪了,我就去百度grub.cfg不同的修改方法,看到这个帖子http://www.2cto.com/os/201411/354914.html,(这里不把它设置为超链接是有原因的!)按照他的方案一去做了,然后。。。然后。。。我就挂了,开机进入grub命令行,很明显是grub.cfg被改坏掉了!坑爹啊,这篇博文也走了很多弯路,他最后还是选择用系统盘来解决问题(可我手上并没有系统盘)可能博主就是要将他的弯路写出来释放一下压力,但是我被坑惨了。。。不要根据博主说的把自己添加的win7启动项代码贴到Centos启动项代码之前!大家认真阅读grub.cfg可以看明白它的用意,毕竟一大堆注释。不过博主还是说到了一些重点,那就是 “grub2-mkconfig -o /boot/grub2/grub.cfg”,把grub.cfg重新mkconfig一下应该是能解决问题的,当然我没试过,建议大家谨慎!还有一点就是修改系统重要文件时一定要先备份!鸟哥也天天说。。。

事情已经发展到这个地步了,于是我就来到了grub的命令行。照例百度该如何修复,但是百度上大多是grub的命令,而我的是grub2!还是有很多差别的,比如root命令变成了set root,kernel命令变成了linux。于是就一步步按照百度经验上的那个grub修复centos来输入命令http://jingyan.baidu.com/article/c35dbcb0f020478917fcbc56.html点击打开链接。意思也说的很明白,首先找到引导分区在哪个盘上(/boot当初挂载的那个盘),然后读取内核镜像vmlinuz*.img,然后用initrd命令挂在一个临时根文件系统,用来支持引导的两个阶段。加载的这个文件中包含很多驱动程序和可执行程序,用来挂载真正的文件系统。如果一切顺利的话,在输入 boot 就可以引导进入Centos了,然而我并没有成功,每次 boot 过都进入emergency模式。我想可能是/boot的挂载磁盘分区还没选对,万般无奈下我就重装了Ubuntu。其实网上很多用Centos系统盘来修复成功的案例,可惜我手头没有系统盘。。。

最后跟大家比较下Centos和Ubuntu的优缺点:Ubuntu的界面做的是比较好看,而且很多操作都可以像在Windows下那样做成。Ubuntu自动可以识别ntfs文件系统格式,这一点Centos做不到,必须用软件来手动挂载ntfs文件系统,也可以通过编辑/etc/fstab文件来开机挂载ntfs,其实事情都是两面性的,这样虽然麻烦,但是你学到了更多、理解更深刻!

(责任编辑:IT)