Kvm-Virtualization

KVM 引導鏡像核心和現有分區

  • July 24, 2019

我正在從 Xen 切換到 qemu-kvm。我目前的 Xen 安裝有許多 LVM 卷,每個卷都有一個分區(而不是完整的磁碟映像)。在 Xen 中,我使用如下配置啟動每個 VM:

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 將現有捲附加為引導/根文件系統。這可能嗎?

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 東西。(可能還需要各種性能參數/調整,我還沒有走那麼遠。)

我也一直在研究這個主題,剛剛發布了一個有點類似的問題,但范圍不同: KVM/qemu - use LVM volumes directly without image file?

對於您的特定問題,這是否有效: https ://wiki.archlinux.org/index.php/QEMU#By_specifying_kernel_and_initrd_manually

特別是,-append root=/dev/sda /dev/sda3。我自己沒有嘗試過,但它似乎應該做你想要的。

引用自:https://serverfault.com/questions/409543