今天同步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。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-10/91607p2.htm
相关阅读:
Linux启动引导过程 grub和mbr http://www.linuxidc.com/Linux/2013-07/87923.htm
grub 的安装与使用 http://www.linuxidc.com/Linux/2013-07/87682.htm
grub引导程序配置文件分析 http://www.linuxidc.com/Linux/2013-07/87547.htm
CentOS 6.4 grub加密码 http://www.linuxidc.com/Linux/2013-07/87124.htm
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、你还记得大明湖畔的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