KVM引导脱机映像内核和现有分区

我正在从Xen切换到qemu-kvm。 我目前的Xen安装有多个LVM卷,每个LVM卷都有一个分区(而不是完整的磁盘映像)。 在Xen中,我使用如下configuration来启动每个虚拟机:

kernel = "/boot/vmlinuz-2.6.18-128.4.1.el5xen" ramdisk = "/boot/initrd-xen-2.6.18-128.4.1.el5xen" disk = [ 'phy:/dev/vmdata/vm-standalone,sda1,w' ] 

我现在想要重用这些虚拟机,而是在kvm下启动它们。 看来,virt-install --import会让我这样做,使用--boot kernel=<kernel>,initrd=<initrd> ,但我看不到我可以指示virt-install附加现有的卷为启动/根文件系统。 这可能吗?

我一直在研究这个话题,只是发布了一个类似的问题,但有一个不同的范围: KVM / qemu – 直接使用LVM卷而不使用映像文件?

对于你的特定问题,这是否工作: https : //wiki.archlinux.org/index.php/QEMU#By_specifying_kernel_and_initrd_manually

特别是-append root=/dev/sda /dev/sda3 。 我没有尝试过,但它似乎应该做你想做的事情。

只需在virt-manager创build一个新的虚拟机,或者通过与Xen(内存,CPU等)类似的参数virsh创build一个新的虚拟机,当被要求为它创build虚拟磁盘时,指向现有的Xen磁盘。

你可能需要调整一下fstab,把它指向/ dev / vdX而不是xvdX(或者任何Xen使用的)

如果你想要一个非常好的移动程序来为你处理所有事情,你可以使用virt-v2v

来自dynasy和Jared的答案都指向正确的方向,但留下了一些无法解释的。

我的问题的简短答案是virt-install完全有能力为引导系统提供分区。 实际上,对于块设备,它并不在意,只是把它传递给qemu,就像块设备一样。 然后内核使用/ dev / sda(而不是/ dev / sda1)作为根文件系统。

实现这个的命令行如下所示:

 virt-install --name nic --ram 512 --disk /dev/vg_ext/nic-standalone --disk /dev/vg_ext/nic-swap --network bridge=br0 --boot kernel=/boot/vmlinuz,initrd=/boot/initramfs.img,kernel_args="console=ttyS0 root=/dev/sda" --serial=pty 

为了做到这一点,我必须在nic-standalone上修改/ etc / fstab,以便它指向正确的根文件系统和交换分区(/ dev / sda,/ dev / sdb)。 上面的内核和initrd是标准的CentOS 6的东西。 (也可能有各种性能参数/调整,我只是还没有得到那么多。)