grub2进来稳定分支

grub2进入稳定分支

今天同步portage的是有受到一封news,标题是GRUB2 migration,告诉我grub2已经进入稳定分支,将安装到我的gentoo中,并替代grub legacy。提供了一个很好的文档grub2-igration.xml。以下是我从grub legacy迁移到grub2的过程,希望能提供一些有价值的参考。

1、升级到grub2软件包

一般在严格按照Handbook安装gentoo的时候,都会安装一个bootloader,Handbook默认曾经是grub,所以你必然执行过

# emerge grub
那么,在你同步portage后升级时

# emerge -uDN world

grub2会安装到gentoo中,而

# emerge --depclean

会卸载grub legacy。然后你就可以手工删除/boot/grub了,grub.conf和menu.lst也没什么价值可以删了,grub2会重新生成/boot/grub下需要的所有东西。

(现在手册已经改成了

# emerge sys-boot/grub:0
安装grub legacy。
# emerge sys-boot/grub:2
安装grub2。相信grub2替代grub legacy是趋势,我认为Handbook会在未来某一天还原到emerge grub,而emerge sys-boot/grub:0作为一个额外选择。本括号内都是废话希望没有打扰到你。)

2、配置一些配置文件

grub2一切都是自动的。配置文件在/etc/grub.d下,话说这里没有什么可以改动的。还有就是重要的/etc/default/grub。

3、安装grub2到/boot/grub,并生成配置文件

# grub2-install --grub-setup=/bin/true /dev/sda
Installation finished. No error reported.
# grub2-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/kernel-3.2.12-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.2.12-gentoo
done
4、(如果你需要)安装grub2到MBR来作为默认bootloader

# grub2-install /dev/sda
Installation finished. No error reported.
我的选择:由于我是有XP的ntloader作为我的默认bootloader,ntloader启动grub4dos(PE工具箱),grub4dos启动grub2(gentoo中,随gentoo升级)。我需要grub4dos(实质就是grub legacy,命令相同)链式启动grub2(gentoo中)。

我的/boot就是XP的C:盘,grub4dos的配置文件menu.lst就在C:盘根目录下。反正找到grub4dos的menu.lst,增加

title GRUB2 Chainload
root (hd0,0)
kernel /boot/grub/i386-pc/core.img
boot
就可以通过“GRUB2 Chainload”这个启动项从grub4dos链式启动到grub2。

更多选择请参考文档:

[1] http://www.gentoo.org/doc/en/grub2-migration.xml
[2] https://wiki.gentoo.org/wiki/GRUB2_Quick_Start
[3] https://wiki.gentoo.org/wiki/GRUB2

一些问题的答案:

1、你还记得大明湖畔的dolvm么?

如果你是用genkernel编译的内核,而且使用了LVM(LVM2)卷管理。你一定还记得那个内核参数dolvm,全部展开形式是:root=/dev/ram0 dolvm real_root=/dev/vg/slash

在grub2中加入这个参数的方法如下:

vim /etc/default/grub
GRUB_CMDLINE_LINUX="dolvm
或者如我这样的旧版Handbook遵循者完美主义者是这样写的:

GRUB_CMDLINE_LINUX="dolvm real_root=/dev/vg/slash"
GRUB_DEVICE=/dev/ram0