引导Xen DomU Linux的问题

问题描述 投票:2回答:1

我正在尝试将Mainline linux v5.4.0-rc3作为DomU运行。我的设置详细信息如下。

Target hw: Pine64+
Architecture: aarch64 (arm64)
Xen version: 4.6.5
Dom0: Mainline linux Kernel v5.4.0-rc3

DomU配置文件:

kernel = "path to kernel image"
memory = "128"
name = "domU"
vcpus = 1
disk = [ 'phy:/dev/loop0,xvda,w' ]
extra = "earlyprintk=xenboot console=hvc0 root=/dev/xvda debug rw init=/bin/sh"

我按如下方式加载了DomU。

ubuntu@LXC_NAME:~/workspace/domu$ sudo losetup /dev/loop0 rootfs.ext4
ubuntu@LXC_NAME:~/workspace/domu$ sudo xl -vvv create -d domu.config

但是DomU引导失败,并显示以下消息。

libxl: debug: libxl_device.c:337:libxl__device_disk_set_backend: Disk vdev=xvda spec.backend=phy
libxl: debug: libxl_event.c:639:libxl__ev_xswatch_register: watch w=0x238e0bd0 wpath=/local/domain/0/backend/vbd/1/51712/state token=3/0: register slotnum=3
libxl: debug: libxl_create.c:1586:do_domain_create: ao 0x238de720: inprogress: poller=0x238de7b0, flags=i
libxl: debug: libxl_event.c:576:watchfd_callback: watch w=0x238e0bd0 wpath=/local/domain/0/backend/vbd/1/51712/state token=3/0: event epath=/local/domain/0/backend/vbd/1/51712/state
libxl: debug: libxl_event.c:884:devstate_callback: backend /local/domain/0/backend/vbd/1/51712/state wanted state 2 still waiting state 1
libxl: debug: libxl_event.c:576:watchfd_callback: watch w=0x238e0bd0 wpath=/local/domain/0/backend/vbd/1/51712/state token=3/0: event epath=/local/domain/0/backend/vbd/1/51712/state
libxl: debug: libxl_event.c:880:devstate_callback: backend /local/domain/0/backend/vbd/1/51712/state wanted state 2 ok
libxl: debug: libxl_event.c:677:libxl__ev_xswatch_deregister: watch w=0x238e0bd0 wpath=/local/domain/0/backend/vbd/1/51712/state token=3/0: deregister slotnum=3
libxl: debug: libxl_device.c:991:device_backend_callback: calling device_backend_cleanup
libxl: debug: libxl_event.c:691:libxl__ev_xswatch_deregister: watch w=0x238e0bd0: deregister unregistered
libxl: error: libxl.c:1991:libxl__get_domid: failed to get own domid (domid)
libxl: error: libxl_device.c:1041:device_hotplug: Failed to get domid
libxl: debug: libxl_event.c:691:libxl__ev_xswatch_deregister: watch w=0x238e0cd0: deregister unregistered
libxl: error: libxl_create.c:1176:domcreate_launch_dm: unable to add disk devices
libxl: error: libxl.c:1991:libxl__get_domid: failed to get own domid (domid)
libxl: error: libxl_device.c:849:libxl__initiate_device_remove: unable to get my domid
libxl: debug: libxl_event.c:691:libxl__ev_xswatch_deregister: watch w=0x238d9210: deregister unregistered
libxl: error: libxl.c:1991:libxl__get_domid: failed to get own domid (domid)
libxl: error: libxl.c:1684:devices_destroy_cb: libxl__devices_destroy failed for 1
libxl: debug: libxl.c:1738:devices_destroy_cb: forked pid 679 for destroy of domain 1
libxl: debug: libxl_event.c:1874:libxl__ao_complete: ao 0x238de720: complete, rc=-3
libxl: debug: libxl_event.c:1843:libxl__ao__destroy: ao 0x238de720: destroy
libxl: debug: libxl.c:1477:libxl_domain_destroy: ao 0x238d8a90: create: how=(nil) callback=(nil) poller=0x238de7b0
libxl: error: libxl.c:1610:libxl__destroy_domid: non-existant domain 1
libxl: error: libxl.c:1568:domain_destroy_callback: unable to destroy guest with domid 1
libxl: error: libxl.c:1495:domain_destroy_cb: destruction of domain 1 failed
libxl: debug: libxl_event.c:1874:libxl__ao_complete: ao 0x238d8a90: complete, rc=-21
libxl: debug: libxl.c:1486:libxl_domain_destroy: ao 0x238d8a90: inprogress: poller=0x238de7b0, flags=ic
libxl: debug: libxl_event.c:1843:libxl__ao__destroy: ao 0x238d8a90: destroy
xc: debug: hypercall buffer: total allocations:97 total releases:97
xc: debug: hypercall buffer: current allocations:0 maximum allocations:3
xc: debug: hypercall buffer: cache current size:3
xc: debug: hypercall buffer: cache hits:87 misses:3 toobig:7

DomU Complete boot log

xl列表确认未创建domU。

ubuntu@LXC_NAME:~/workspace/domu$ sudo xl list
Name                                        ID   Mem VCPUs  State   Time(s)
(null)                                       0   256     2     r-----       9.8

我发现很难理解此问题的根本原因。谁能弄清楚出了什么问题?

Xen boot log

linux linux-kernel arm virtualization xen
1个回答
0
投票

虽然在创建时加载驱动器和访问实例时是相同的? ,如果可以的话,您可以将另一个磁盘连接到该域并尝试访问相同的域。

例如,使用以下方法将其附加到域上:

xm block-attach Domain-0 file:/home/xen/vmdisk0 xvda w

然后在配置文件中进行修改,然后运行:

disk=['file:/home/xen/vmdisk0,xvda,w']

[文件“ builder”(域构建功能),device_model中还有一些其他参数,如果您使用的是物理磁盘驱动器,则应提及/dev/sdb

如果您如上所述使用物理图像进行加载,则必须使用如下所示的内容:disk = [ 'file:/home/XEN_MI.img,hda,w']

© www.soinside.com 2019 - 2024. All rights reserved.