在 USB 或 SD 卡上安装 Xen Dom0

来自 Alpine Linux

本指南将向您展示如何在 USB 设备或 SD 卡上执行 Xen Dom0 安装,以便您的 Dom0 可以从 tmpfs 运行。 这有一些好处,但您需要一个地方来存储您的 guest(虚拟机)和一个 syslog 服务器来重定向日志。

第一步是设置基本的 USB 或 SD 安装。 为此,请从 Alpine 安装 CD(minimal 版本即可)启动,并按照以下指南之一进行操作
创建可启动 USB创建可启动 Compact Flash

在您的设备上完成 Alpine Linux 安装后,从中启动并配置您新安装的系统

设置网络接口

# setup-interfaces
# ifup eth0
注意: 您可能需要将 eth0 更改为您的接口名称

继续设置 apk 仓库

# setup-apkrepos
[...]
# apk update
注意: 您可能需要编辑 /etc/apk/repositories 并更改第一行,使其指向 /media/usb/apks。

现在您已经正确配置了系统,是时候安装 Xen 了

# Should this not be apk add xen xen-hypervisor ?
# apk add xen

现在我们已经安装了 Xen,我们需要修改 usb 启动加载程序,以便加载 Xen 内核。 第一步是以写入权限重新挂载 /media/usb

# mount -o remount,rw /media/usb

然后,将 Xen 内核和 mboot.c32 复制到 usb 启动分区

# cp /boot/xen.gz /media/usb/boot/
# cp /boot/mboot.c32 /media/usb/boot/

现在我们有了从 usb 设备启动 Xen 所需的文件,是时候更改启动加载程序并添加 Xen 条目了。
为此,请使用您喜欢的编辑器打开 /media/usb/syslinux.cfg 并添加以下条目之一

正常启动

LABEL xen
  KERNEL /boot/mboot.c32
  APPEND /boot/xen.gz --- /boot/vmlinuz-hardened alpine_dev=usbdisk:vfat modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/modloop-hardened --- /boot/initramfs-hardened
注意: 您可能需要使用 alpine_dev=UUID=XXXX-XXXX:vfat。 UUID 可以使用 blkid 读取。
注意: 或者,要使用 /media/UUID=XXX-XXXX 而不是 /media/usb,请查看 /proc/mounts 以检测您的 usb/cf 卡的挂载位置。

串口控制台启动

LABEL xen
  KERNEL /boot/mboot.c32
  APPEND /boot/xen.gz com1=115200,8n1 console=com1 --- /boot/vmlinuz-hardened alpine_dev=usbdisk:vfat modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/modloop-hardened --- /boot/initramfs-hardened

将 UUID 更改为正确的 UUID,并为您的系统添加必要的模块。
最好也查看 Xen 启动选项 并设置 dom0_mem、dom0_vcpus_pin 和 dom0_max_vcpus。

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

# echo "xen_netback" >> /etc/modules
# echo "xen_blkback" >> /etc/modules
# echo "tun" >> /etc/modules

最后一步是配置启动服务。 我们将需要 udev 和 xencommons 在启动时启动

# rc-update add udev sysinit
# rc-update add udev-postmount
# rc-update add xenstored
# rc-update add xenconsoled

现在您已经拥有一个功能齐全的 Xen 安装。 是时候保存您的更改并启动进入它了。

# lbu commit
# reboot

请记住配置至少一个网络桥接。 请遵循 桥接 指南。

另请参阅