您的位置:首页 > 运维架构 > Linux

ubuntu、win7、centos5.3三系统的启动修复

2013-10-04 22:36 477 查看
参考: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)重启

终于写完了,希望对大家有帮助。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: