grub2進入穩定分支
今天同步portage的是有受到一封news,標題是GRUB2 migration,告訴我grub2已經進入穩定分支,將安裝到我的gentoo中,並替代grub legacy。提供了一個很好的文檔grub2-igration.xml。以下是我從grub legacy遷移到grub2的過程,希望能提供一些有價值的參考。
1、升級到grub2軟件包
一般在嚴格按照Handbook安裝gentoo的時候,都會安裝一個bootloader,Handbook默認曾經是grub,所以你必然執行過
[plain]
# emerge grub
那麼,在你同步portage後升級時
[plain]
# emerge -uDN world
grub2會安裝到gentoo中,而
[plain]
# emerge --depclean
會卸載grub legacy。然後你就可以手工刪除/boot/grub了,grub.conf和menu.lst也沒什麼價值可以刪了,grub2會重新生成/boot/grub下需要的所有東西。
(現在手冊已經改成了
[plain]
# emerge sys-boot/grub:0
安裝grub legacy。
[plain]
# 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,並生成配置文件
[plain]
# 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
[plain]
# 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,增加
[plain]
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中加入這個參數的方法如下:
[plain]
vim /etc/default/grub
GRUB_CMDLINE_LINUX="dolvm
或者如我這樣的舊版Handbook遵循者完美主義者是這樣寫的:
[plain]
[plain]
GRUB_CMDLINE_LINUX="dolvm real_root=/dev/vg/slash"
GRUB_DEVICE=/dev/ram0