KVM 引導鏡像核心和現有分區
我正在從 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
。我自己沒有嘗試過,但它似乎應該做你想要的。