如何使用Arch linux下的Gummiboot从Uefi启动Xen Hypervisor

时间:2013-12-31 13:30:57

标签: linux xen uefi

我最近遇到了这个问题,我想使用Gummiboot从Uefi启动Xen Hypervisor。

主要是出于优雅的原因,我不想回到Bios或使用另一个(更笨重)的启动管理器。我没有找到分步指南,所以我不得不从文档中将所有内容拼凑在一起。对于谷歌来说,我会在这里回答我自己的问题。

我之前已将它发布到Arch论坛,经过一些修改后,我想我可以在这里发布。

此致

RTT

1 个答案:

答案 0 :(得分:2)

先决条件:

a)运行使用gummiboot的arch linux系统

b)支持Xen(这是拱门中的标准)efi系统分区中的内核映像(我的/boot安装;大多数发行版安装在/boot/efi

编译Binutils

您需要一个支持x86_64-pep仿真的binutils版本。要获得这个,你需要从源代码构建binutils。

获取一些包

# pacman -S abs base-devel

获取abs树

# abs

将包含PKGBUILD的文件夹复制到工作目录。例如你的家:

$ cp -r /var/abs/core/binutils/ ~/ 

打开~/binutils/PKGBUILD并找到:

${srcdir}/binutils-${pkgver}/configure --prefix=/usr \
  --with-lib-path=/usr/lib:/usr/local/lib \
  --with-bugurl=https://bugs.archlinux.org/ \
  --enable-ld=default --enable-gold \
  --enable-plugins --enable-threads \
  --with-pic --enable-shared \
  --disable-werror --disable-multilib

添加参数--enable-targets=x86_64-pep,以便该行显示

${srcdir}/binutils-${pkgver}/configure --prefix=/usr \
  --with-lib-path=/usr/lib:/usr/local/lib \
  --with-bugurl=https://bugs.archlinux.org/ \
  --enable-ld=default --enable-gold \
  --enable-plugins --enable-threads \
  --with-pic --enable-shared \
  --disable-werror --disable-multilib \
  --enable-targets=x86_64-pep

运行

编译并安装binutils
$ cd ~/binutils
$ makepkg
# pacman -U binutils*.pkg.tar.xz

(如果makepkg需要包,请获取它们)

编译Xen

现在你需要从AUR构建Xen。

这是包裹:https://aur.archlinux.org/packages/xen/

以下是操作方法:https://wiki.archlinux.org/index.php/AUR

(此时您可以切换回普通的binutils包,以便将来升级)

Efi配置

如果Xen按预期编译,您会在xen-*.efi中找到/usr/lib/efi/。实际上有几个,但只有一个是真实的,其余的只是链接。

将其复制到efi分区。

# cp -L /usr/lib/efi/xen.efi /boot/

xen.cfg中生成/boot个文件。我看起来像这样,但我是Xen的新手,所以你可以选择更好的设置。查看Xen wiki以获取建议。请记住将UUID替换为您的根分区文件系统之一。与内核映像和ramdisk一样,如果你有不同的设置。

[global]
default=xen

[xen]
options=console=vga dom0_mem=1024M,max=1024M dom0_max_vcpus=2 loglvl=all noreboot
kernel=vmlinuz-linux root=UUID=d07a95fe-f633-43a4-9996-8c8f76272344 rw ignore_loglevel #earlyprintk=xen
ramdisk=initramfs-linux.img

Gummiboot不需要很多信息。只需在/boot/loader/entries/(例如xen.conf)中创建一个包含以下内容的新文件:

title           Xen Hypervisor
efi             /xen.efi

您可能需要调整gummiboot菜单的超时和/或默认选择。为此修改/boot/loader/loader.conf

完成!

您现在可以配置您的Dom0,您可以通过Arch wiki中的常规指南开始添加DomUs。