Tuesday, October 25, 2011

archlinux 升级grub2

GRUB2是下一代的多系统引导器,grub即将退位,项目名也改成了grub-legacy。相比grub(目前的版本是0.97)而言,grub2重写了代码以实现模块化和可移植性。

GRUB 2 has replaced what was formerly known as GRUB (i.e. version 0.9x), which has, in turn, become GRUB Legacy. Enhancements to GRUB are still being made, but the current released versions are quite usable for normal operation.
GRUB Legacy is no longer being developed. For the differences between GRUB Legacy and GRUB, see the Grub Legacy Documentation.

Grub2的Logo:

将archlinux的grub升级到grub2是一件很简单的事情,你只需要通过pacman安装新的grub2软件包,转换menu.lst为grub.cfg就可以了。这篇日志的大部分资料来自Archlinux的wiki,命令截图来自我的笔记本电脑。

首先,搜索一下仓库里的grub2软件包: 


你会发现目前仓库里有4个grub2的软件包,做个简单的介绍吧:

grub2-bios             –> 适用于PC BIOS
grub2-commin      –> 文件集合(包含了所有平台相关的文件)
grub2-efi-i386       –> 适用于32位平台的UEFI
grub2-efi-x86_64  –> 适用于64位平台的UEFI

一般情况下,我们选择安装grub2-bios。什么是UEFI呢?这货全称Unified Extensible Firmware Interface,直译叫做“统一的可扩展固件接口”,这种接口用于操作系统自动从预启动的操作环境,加载到某种操作系统上,从而使开机程序化繁为简, 节省时间。UEFI将替代已存在多年的BIOS,目前市场上的主板已经开始采用UEFI 。

 安装和升级过程:

 1) 安装grub2-bios
安装过程中会提示与现有的grub冲突,直接回答y就可以了; 另外如果你喜欢干净,可以把/boot/grub/ 目录备份到别的地方,然后删除grub目录里的内容.

2) 擦除MBR上grub-legacy的痕迹. 这一步很关键,如果你的grub是安装在MBR上,你就需要做这一步操作. of后面跟的是硬盘设备名,可以使用$ sudo fdisk -l 察看.

3) 安装grub2到MBR.
     $sudo cp /usr/share/grub/{unicode.pf2,ascii.pf2} /boot/grub/

4) 生成grub2的配置文件grub.cfg.(可以从 menu.lst 或者 grub.conf 转换过来)


5)重启系统,检验成果


结束语:

这里只是介绍了Archlinux上如何将grub(又名grub-legacy)升级到grub2,至于grub2的命令操作、grub.cfg的配置方式则没有给出说明 (你可以在wiki上获得详细内容,下面有链接)

参考资料:
1. Archlinux上有详细的介绍,包括BIOS和UEFI的安装方式,GPT的延伸阅读。
https://wiki.archlinux.org/index.php/GRUB2#For_BIOS_Systems
https://wiki.archlinux.org/index.php/GRUB2#During_Arch_Linux_installation
2. GRUB项目主页
http://www.gnu.org/software/grub/index.html

No comments: