您的位置:首页 > 其它

Grub2 强大的引导程序,智能修复启动

2010-12-12 20:50 1011 查看
偶然间发现ubuntu自9.10来就把grub2当作默认引导程序,而grub2的确功能强大。

一直以来,人们都为安装linux和windows之后怎样修复启动而头疼。

而grub2的出现,或许可以减少很多麻烦,因为比起grub,grub for dos,grub2的确智能很多。



grub2目前中文文档很少,下面是一些英文帮助页面。

ubuntu wiki页面:

https://help.ubuntu.com/community/Grub2

grub2 wiki

http://grub.enbug.org/FrontPage

grub2 命令

http://grub.enbug.org/CommandList



grub2的配置文件主要在下面三个位置



The configuration resides (generally) in three places:

in /etc/default/grub - where a set of general configuration options reside, created by grub-set-default, that you may not want to change much.

in /etc/grub.d - where a set of sh scripts are sequentially used to do useful things that generate the actual bootloader's config file, much like init scripts.

in /boot/grub - where the bootloader itself looks for configuration ( /boot/grub/grub.conf ). This file is written from the /etc/grub.d files, so changes here will be overwritten by some commands.

!!! boot/grub/gurb.conf 可能有误,在ubuntu下是boot/grub/grub.cfg

/etc/default/grub :默认配置
/etc/grub.d :类似shell脚本一样的配置
/boot/grub/grub.cfg :所/etc/grub.d文件夹下的文件生成的配置文件,最重要的配置





下面主要说介绍怎样在ubuntu下修复windows启动

1.使用grub-mkconfig 命令智能生成grub.cfg

把生成的cfg文件覆盖到 /boot/grub/grub.cfg 就行了。

只能说grub-mkconfig命令真是神器,一直很希望能有这样的智能命令。

# grub-mkconfig -o /root/grubtrial/grub.conf_2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-20-generic-pae
Found initrd image: /boot/initrd.img-2.6.31-20-generic-pae
Found linux image: /boot/vmlinuz-2.6.31-17-generic-pae
Found linux image: /boot/vmlinuz-2.6.31-14-generic-pae
Found initrd image: /boot/initrd.img-2.6.31-14-generic-pae
Found memtest86+ image: /boot/memtest86+.bin
Found Windows Vista (loader) on /dev/sda3
Found Debian GNU/Linux (5.0.3) on /dev/sda8
done




2.能过编写grub2脚本来修复启动

首先查看分区的uuid

> sudo blkid


可能是以下的结果

>/dev/sda2: UUID="10AC99D8AC99B8A4" TYPE="ntfs"


参照下面编写脚本,用户的脚本文件是 /etc/grub.d/40_custom

编辑 /etc/grub.d/40_custom 文件如下

如果熟悉grub 或者 grub for dos,很容易明白。

grub2的一大特点就是用uuid来代替了以前的(hd0,0)的写法。

因为硬盘可能增加,移动分区等,但是uuid通常不会改变,这避免了频繁修改配置文件

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows XP" {
insmod chain
insmod ntfs
search --fs-uuid --set 10ac99d8ac99b8a4
chainloader +1
}


执行

>sudo update-grub


可以查看到配置文件更新了。

>cat /boot/grub/grub.cfg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐