参考:http://blog.renren.com/share/333599940/7902189715
http://blog.163.com/liulianyixin@126/blog/static/8548392420118862849100/
http://blog.chinaunix.net/uid-23823046-id-2657030.html
硬件:联想y450
系统环境:ubuntu12.10、win7、centos5.3
先讲一下我的启动环境,MBR中是ubuntu的grub2,由ubuntu的grub2进行引导。centos5.3通过在win7环境下用EasyBCD进行引导。
由于鸟哥的书籍的磁盘与文件系统管理这一章,有格式化、磁盘分区等内容,但是当时我装centos的时候没有预留下空间,这就难办了。通过win7的磁盘管理,找了一个不用的分区删掉了,然后新建卷,但是突然系统崩溃了。这样就进不了系统了,后来一想,其实不能盲目的删除分区。因为删除某个分区,磁盘的分区表就变了,比如本来sda5现在变为sda9,这样系统肯定启动不了啊。因为我猜想MBR中肯定指定了某个磁盘分区进行启动啊,现在磁盘分区编号变了,启动肯定有问题。
如何解决?
1、在rescue模式下修复MBR中的grub2
幸好,虽然启动不了,但是还是grub的救援模式中。grub救援模式只有有限的命令可以使用。
(1)寻找Ubuntu的安装分区
先使用ls命令,找到Ubuntu的安装在哪个分区:
grub rescue>ls
会罗列所有的磁盘分区信息,比方说:
先ls会显示分区的一些信息,我的是msdos1,msdos2等。
再 ls (hd0,msdos1)/ 或者ls (hd0,msdos9)/ ,或者 hd0,msdos3)/
看看boot文件夹在哪个分区,如果出现什么unknown file system错误之类的肯定不是这个分区。
假设找到(hd0,msdos5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
(3) 进ubuntu系统
然后依次调用如下命令: X表示各个分区号码
grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>insmod normal
grub rescue>normal
若出现启动菜单,按c进入命令行模式。在命令行模式下输入以下命令,进入ubnutu系统。
sh:grub>set root=(hd0,5)
sh:grub>set prefix=(hd0,5)/boot/grub
sh:grub>linux /boot/vmlinuz-xxx-xxx(输完字母z后,按Tab键补全xxx-xxx)
sh:grub>initrd /boot/initrd.img-xxx-xxx(输完字母g后,按Tab键补全xxx-xxx)
sh:grub>boot
(3)安装grub2
进入ubuntu系统后,按ctrl+Alt+T探出终端。
输入,sudo grub-install /dev/sda,重新在MBR中安装grub2。输入,sudo update-grub2,更新一下grub2菜单。
(4)重启
(5)注意点
live cd修复(硬盘镜像也可以,但是你得会用easybcd启动硬盘镜像)
如果rescue也进入不了的话,可以用live cd修复。请参考http://blog.chinaunix.net/uid-23823046-id-2657030.html。
2、win7环境下用EasyBCD增加centos引导
(1)确定centos5.3所在的分区
首先确定一下centos5.3所在的分区,比如(hd0,7)
(2)新建NeoGrub引导
添加新条目>NeoGrub>安装>配置
在弹出的menulst,删除其中的内容并输入以下内容
title CentOS (2.6.18-128.el5xen)
root (hd0,7)
kernel /xen.gz-2.6.18-128.el5
module /vmlinuz-2.6.18-128.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-128.el5xen.img
title CentOS-base (2.6.18-128.el5)
root (hd0,7)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-128.el5.img
title Other
rootnoverify (hd0,0)
chainloader +1
这个内容在centos5.3系统的/boot/grub/menu.lst文件夹下,用ubuntu去查看吧。
(3)重启
终于写完了,希望对大家有帮助。