Xen Dom0

来自 Alpine Linux

本指南将向您展示如何将 Alpine 的 'sys' 安装设置为 Xen Dom0。您可以从现有的标准安装开始,或者使用 Alpine Xen ISO 安装新的 Alpine 副本。

安装 Xen

全新安装

写入介质

警告:这将擦除您指向的驱动器上的所有内容。 使用 lsblkblkid 命令检查并仔细核对 /dev/sdx 是否是您要写入的正确 USB 设备。


首先,下载 Alpine 的 Xen 安装 ISO,并将 ISO 刻录到 CD/DVD 或使用以下命令将其写入 USB 存储设备,其中 3.12.0 应替换为您下载的 ISO 的版本号。 将 /dev/sdx 替换为您的 USB 设备的驱动器盘符

dd if=alpine-xen-3.12.0-x86_64.iso of=/dev/sdx

安装

从 CD 或 USB 设备启动,并在提示输入用户名时键入 'root'。 登录后,运行 setup-xen-dom0,然后继续进行标准的 Alpine 安装,直到出现提示要求您选择网卡。 选择将成为您面向互联网的接口,并在被询问是否桥接时键入 'yes'。 然后您可以配置您的桥接设备 br0 的网络设置,就像您配置面向互联网的接口一样。

注意:由于协议不兼容,您无法在自动安装脚本中桥接 WiFi 接口。 请确保您为此选择以太网接口。

继续安装到磁盘,直到您到达 'reboot' 提示符。 在您可以无错误启动之前,还需要做一些事情

# xen-hypervisor isn't installed by default with Xen so we must install it manually
apk add xen-hypervisor
apk add bridge

现在您可以安全地重启,拔下安装介质,并确保在 GRUB 菜单中选择 Alpine Linux v3.12, with Xen 4.13.1 and Linux lts 启动选项。 将 3.12 和 4.13.1 分别替换为您的 Linux 和 Xen 版本号。

在此之后,启用 Alpine 社区仓库 并安装用于 Xen 虚拟机的固件

apk add seabios ovmf

现在您可以配置 GRUB 了。

现有安装

首先,您必须启用 Alpine 社区仓库,然后为其虚拟机安装 Xen 以及 seabios (BIOS) 和 ovmf (UEFI) 固件。

# apk add xen xen-hypervisor seabios ovmf

这将安装 Xen Hypervisor、xl 命令行工具以及所有必需的软件包。 下一步是修改您的 GRUB 配置以正确启动 Xen。

下一步是加载 Xen 所需的内核模块。 我们将它们添加到 /etc/modules,以便它们在启动时自动加载

echo "xen-netback" >> /etc/modules
echo "xen-blkback" >> /etc/modules
echo "tun" >> /etc/modules

最后,我们将 Xen 守护程序添加到默认运行级别。

rc-update add xenconsoled
rc-update add xendomains
rc-update add xenqemu
rc-update add xenstored

重启。

GRUB 配置

一旦运行 Xen 内核,您将需要编辑其命令行选项,并通过在 /etc/default/grub 底部插入此内容来启用设置默认 GRUB 条目的功能

/etc/default/grub 的内容

# 您需要设置分配给 Dom0 Alpine 安装的 RAM 量,以便 # 我们未来的虚拟机有足够的内存。 GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=1024M,max:1024M" GRUB_DEFAULT="saved" GRUB_SAVEDEFAULT="true"

您可以将 1024M 替换为您要分配给 Dom0 操作系统的内存量。 之后,您需要运行以下命令

grub-mkconfig -o /boot/grub/grub.cfg
grub-set-default "$(grep ^menuentry /boot/grub/grub.cfg | grep Xen | cut -d \' -f 2 | head -1)"

这会将 GRUB 中的默认条目设置为第一个包含 'Xen' 的条目。 每次升级 Alpine 或 Xen 时都运行此命令。

循环设备

如果您计划使用超过 8 个 DomU,您可能需要在 Dom0 中增加循环设备的数量。

在 Alpine Linux 中,您将需要将 max_loop 选项添加到 loop 模块,然后将 loop 模块添加到您的 initramfs。

首先用模块选项填充 /etc/modprobe.d/loop.conf

# touch /etc/modprobe.d/loop.conf
# echo "options loop max_loop=32" > /etc/modprobe.d/loop.conf

更新 initramfs 以反映模块选项

# mkinitfs
# reboot

参见