avatar
@bangbang93

服务器不断重启,无法进入grub

7/3/2014, 10:42:42 PM

一句话总结的话,还是光盘好啊

IBM X3550
CentOS 6.5

本来是打算更换CPU并且加一块硬盘的,所以关机了,结果换好东西之后开不开了,机房的人搞不定,于是我只好溜去机房

情况很简单,自检一切正常,然后开始引导,连Grub界面都没出来就直接重启了,换回旧的硬件也没用,用U盘写了个DVD1的镜像,准备重新安装Grub。

选择Install or upgrade an existing system后安装程序能够检测到已经安装的系统,并且提示可以升级,虽然实际上是平级,进入升级状态提示找不到引导,于是直接安装Grub,重启后还是跪着。

再进升级模式看了一下安装路径是/dev/sda4,硬盘是第一块,但是我没有四个分区,点开看发现硬盘被U盘挤到sdb去了于是这下就蛋疼了,我不可能把这U盘一直插在服务器上啊,拔下来后回到sda,Grub也会从hd (1,0)回到hd (0,0)肯定要出问题。没查到啥好办法,于是继续尝试其他修复方式,直到不得不回程,没地方过夜。

将机器扛回来之后先做了LiveDVD,配合SSH远程把服务器文件备份下来了,但是我实在不愿意重做系统,要重新安装的东西太多了,于是开始了折腾

首先为了解决sda被U盘抢走的问题,我自己刻了BinDVD和LiveDVD,用BinDVD引导进安装模式,重新安装Grub后,终于能看到Grub的界面了,但是引导出了

uncompress error
   --system halt

的错误

网上说内存错误,我把八条内存拆到只剩一条,随机试了其中三条,还是这样。

再进恢复模式,发现硬盘里的kernel文件和光盘里的kernel文件的md5值不同,于是用光盘里的Kernel文件覆盖硬盘里的文件,重启,终于看到CentOS的进度条了

但是进度条跑到一半,又出了Kernel panic

Kernel Panic-not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

百度到http://zhidao.baidu.com/link?url=BnTcLYXtm7wGjBO0E1ylYXmRFZbfBj6aJ7C3-KmZX71J76Tbc1LM9BjTYKmqHM7zJ0_pcwzlacuxw3C6KaM_Ma,前两条检查无误,第三条也加载了initrd。不过考虑到Kernel文件有错,我怀疑initrd也跪了,于是用mkinitrd命令重新生成文件并且覆盖硬盘上的文件。

重启,继续Kernel panic,但是内容变了

Kernel panic - not syncing: Attempted to kill init !

这信息其实没啥用……不过我们可以把CentOS的进度条禁用掉,直接看文本界面的日志,那是非常有用的

禁用的方法是删掉grub的kernel行里的rhgb和quiet。

看日志是在mount root和swap的时候找不到分区检查了一下fstab一切正常,grub.conf里路径写错了。改好后终于能够正常开机了。省去了重做系统的痛苦