Pages

Monday, July 18, 2011

UEFI/GPT + Linux

这两天尝试了一下用UEFI/GPT模式安装和启动Arch Linux。尝试了几种方式都失败了,但是还是有些收获的。
首先尝试通过VBox挂载安装ISO,在移动硬盘上安装。问题很多:
  • 官方的安装盘不支持EFI启动
  • 安装程序似乎不支持GPT分区,但是可以挂载
  • 安装程序不支持安装grub2-efi,需要手动安装(wiki)
经过各种努力,装上了一个不完美的版本,但是在Latitude E6420中,无法启动。可以进入Grub2,在装载内核时无响应。搜了一下,发现有人提了相似的问题:
应该是2.6.39的kernel以及本机的UEFI都有bug,导致安装失败。去DELL官网搜了一下BIOS更新,从A04升级到A05,还是不行,看来要等3.0的kernel了。目前本人对于Arch还是个新手,不懂AUR安装kernel,此事暂缓,继续观察。

再次尝试直接在VBox中安装。这次用了非官方支持的archboot(估计也是官方做的,只是不提供官方支持),可以UEFI启动,启动后一段时间是黑屏的,一度认为不行,直到出现企鹅图标,发现还是可以的。archboot用part分区,可支持创建GPT格式以及分区,需要手工建立GPT系统分区(见wiki),可支持安装grub2-efi(貌似有bug,反复安装了几次),略去N次尝试后,终于可以启动了。有个问题是无法设置成默认启动,用efibootmgr设置不报错(wiki),但是无效。必须从EFI Shell找到grub.efi,手工启动。虽然不完美,总算有了一个可以启动的。

在新系统中折腾好了Xorg,GnomeShell,GDM后,悲催的发现无法启动,貌似是vboxvideo驱动依赖与BIOS。也就是说vbox-guest-addtions不支持UEFI下的图形。

折腾到这里还是没有一个能用的Linux桌面。不过收获还是不小的。现在对EFI的启动过程有点明白了,原来的MBR扇区+stage2文件都存在GPT那个系统分区中(200M,fat32格式,设置boot=on),可以存一堆不同的,大家互不干扰。启动程序需要在UEFI的启动管理器中设置(似乎叫NVRAM,Mac中常见这个东西),如果没配置,也可以通过EFI Shell去找到那个efi文件并加载。EFI Shell内置在VBox中,但是实体机器是没有的,也是需要安装的。

后面,就是期待3.0的kernel的发布,会再次尝试。

No comments:

Post a Comment