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

标签 linux xen uefi

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

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

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

问候,

RTT

最佳答案

先决条件:

a) 一个运行着 gummiboot 的 arch linux 系统

b) efi 系统分区中的 Xen-capable(这是 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包,以便日后升级)

EFI配置

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

复制到efi分区。

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

/boot 中生成一个xen.cfg 文件。我的看起来像这样,但我是 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。

关于linux - 如何在 Arch linux 下使用 Gummiboot 从 Uefi 启动 Xen Hypervisor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20858175/

相关文章:

使用C计算目录中的文件数

linux - 使 bash 脚本在 Linux 和 FreeBSD 之间可移植的正确方法是什么?

linux - 由于系统中打开的文件太多,Kubernetes 无法启动

linux - 无法在 Linux 上找到 libxlutil.so.1.0

linux - yum更新后Xen CentOS 6 VM无法启动-内核错误

hardware - 哪些虚拟机管理程序允许原始 PCI 访问?

bios - 使用有问题的 BIOS 修改 Asus Z170 主板上的 ia32 功能控制寄存器

c - 如何快速将原始内存转储到结构中?

linux - 自动 Debian UEFI 安装后的黑色控制台

linux - Top 命令显示 cpu 使用率的空百分比