使用 QEmu-KVM 作为引导加载程序在 QEmu-KVM 中启动 OpenSuSE 安装

使用 QEmu-KVM 作为引导加载程序在 QEmu-KVM 中启动 OpenSuSE 安装

我正在尝试将内核参数传递给虚拟 OpenSuSE 安装,而无需在启动提示符下输入它们,而是使用 KVM 直接加载内核的功能。

首先,我像这样安装安装 DVD(以便启动文件在主机上可用):

fuseiso openSUSE-12.3-NET-x86_64.iso ~/mnt/cdrom

然后我像这样生成虚拟机(还有更多选项,但我认为它们与此无关):

kvm \
 -drive file=./openSUSE-12.3-NET-x86_64.iso,index=1,media=cdrom \
 -kernel ~/mnt/cdrom/boot/x86_64/vmlinuz-xen \
 -initrd ~/mnt/cdrom/boot/x86_64/initrd-xen

这会导致出现以下错误消息:

Direct floppy boot is not supported. Use a boot loader program instead.
Remove disk and press any key to reboot ...

如果初始 ramdisk (initrd) 无效,我也会收到同样的消息。使用 CentOS 6.3 安装程序的类似设置可以正常工作。我使用的是 QEmu-KVM 版本 1.0(以 Ubuntu Precise 12.04 作为主机)。

有人使这个工作了吗?在这种情况下你使用了哪个 initrd?

答案1

两点。

  1. 如果没有 KVM 指定内核,您的 VM 是否可以启动?
  2. 我不确定,但是如果使用 KVM 指定内核,您是否尝试过使用相对于 VM 根目录的路径,而不是使用 VM 外部的路径?

答案2

我 (偶然) 自己弄清楚了这一点;内核和初始 RAM 磁盘位于loader/子目录中。因此,启动命令应该是:

kvm \
 -drive file=./openSUSE-12.3-NET-x86_64.iso,index=1,media=cdrom \
 -nographic -vga none \
 -kernel ~/mnt/cdrom/boot/x86_64/loader/linux \
 -initrd ~/mnt/cdrom/boot/x86_64/loader/initrd \
 -append "serial console=ttyS0"

相关内容