将 xen 内核替换为非 xen 内核

将 xen 内核替换为非 xen 内核

我有一个 Xen 格式 (XVA) 的虚拟设备,我希望在另一个虚拟机管理程序 (MS Hyper-V) 上运行它。到目前为止我做了什么:

我已使用 XenConvert 将 XVA 转换为 OVF,这会生成一个 vhd 文件。我创建了一个新的 VM 并将 vhd 附加到它。

VM 无法启动,我认为发生这种情况是因为它运行的是 xen dom0 内核。这是错误:

Error 13: Invalid or unsupported executable format

我想我需要用非 xen 内核替换 xen 内核。我可以简单地下载一个预编译的内核(在哪里?),使用 live CD 启动,将其放在磁盘上并更改 grub.conf 吗?

编辑:

尝试Doug O'Neal的答案,我需要安装lvm2(apt-get install lvm2)并挂载VolGroup00。之后我用 yum 安装了内核并将其复制到启动分区。我编辑了 grub.conf 并尝试启动。启动内核后系统挂起。有什么建议么?

hanging on boot

编辑2:

更改 grub 以使用 tty0 作为控制台(以前是 xvc0),现在更进一步,将首先解决该问题。编辑3:

我根据 @Nils 的回答更改了对 XEN 广告的几个引用。仍然需要更换内核,我认为这目前是我的问题:当我运行 yum install kernel 时,我观察到以下错误:

打开 /sys/block 时出错:没有这样的文件或目录 打开 /sys/block 时出错:没有这样的文件或目录 警告:找不到内核 2.6.18-348.18.1.el5 的模块 xenblk

我在 CentOS bug tracker 中发现了这个错误:http://bugs.centos.org/view.php?id=2083 正如我尝试的那样: mkiinitrd -v --with=xenblk --omit-scsi-modules --omit-raid-modules /boot/initrd-2.6.18-348.18.1.el5.img 2.6.18-348.18 .1.el5 但失败了:

找不到内核 2.6.18-348.18.1.el5 的模块 xenblk,正在中止

答案1

XEN-Kernel 不是这里的主要问题。您需要将 Hyper-V-disk-module 带入 initrd。

之后,您需要删除所有对 xvda(或类似内容)的引用,并将其替换为“旧”DomU 的 Bootloader、Grub 和 /etc/fstab 中的 sda(或类似内容)。

对于 2.6.32 以上的内核,这是小菜一碟 - 因为 Linux 主流包含这些模块。

在此之前,您必须为您的内核编译这些模块。

这里Microsoft Technet 中关于该主题的一个很好的起点。

答案2

尝试从救援 CD 启动并安装本地磁盘。 chroot 进入已安装的文件系统并运行yum install kernel.这可能适合你。

相关内容