我正在尝试将内核参数传递给虚拟 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
两点。
- 如果没有 KVM 指定内核,您的 VM 是否可以启动?
- 我不确定,但是如果使用 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"