0

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

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

我之前曾在 Arch 论坛上发布过,经过几次修改后,我想我可以在这里发布。

问候,

RTT

4

1 回答 1

2

先决条件:

a) 一个运行 gummiboot-loaded arch linux 系统

b) efi 系统分区中支持 Xen 的(这是 arch 中的标准)内核映像(我的安装在/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 包,以便将来升级)

电喷配置

如果 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 中的普通指南开始添加 DomU。

于 2014-01-01T14:56:05.980 回答