我正在使用以下命令使用 qemu-kvm 实用程序在 Fedora 18 上启动虚拟机。
qemu-kvm -m $MEMORY -net nic -net tap,ifname=tap0,script=no -drive file=ubuntu.img,index=0,media=disk,format=raw
有没有办法在 VM 启动后运行的启动时将脚本传递给 VM。
我已经搜索了 qemu-kvm 的帮助,但它没有提供任何相关信息。
我正在使用以下命令使用 qemu-kvm 实用程序在 Fedora 18 上启动虚拟机。
qemu-kvm -m $MEMORY -net nic -net tap,ifname=tap0,script=no -drive file=ubuntu.img,index=0,media=disk,format=raw
有没有办法在 VM 启动后运行的启动时将脚本传递给 VM。
我已经搜索了 qemu-kvm 的帮助,但它没有提供任何相关信息。
首先,这与 KVM 无关,而是客户操作系统引导程序。使用 KVM 时,它应该对来宾操作系统内部一无所知,例如,操作系统是否已启动。
在这种情况下有2个问题:
根据问题#1,您可以使用磁盘或网络。例如,如果您将额外的磁盘/iso/vfat 文件附加到您的 VM,以便可以在来宾操作系统中找到它。
您可以找到许多在 Linux 启动时运行脚本的方法。
总而言之,您可以使用cloud-init及其配置驱动扩展。
使用已经包含 cloud-init 的ubuntu 云镜像作为您的镜像,而不是您的ubuntu.img。或者通过命令安装 cloud-init 制作自己的镜像sudo apt-get install cloud-init
按照配置驱动器规范准备 vfat 或 iso 文件。然后将此行附加到您的 qemu-kvm 命令中:
qemu-kvm -m $MEMORY -net nic -net tap,ifname=tap0,script=no -drive file=ubuntu.img,index=0,media=disk,format=raw
-cdrom <your-config-drive-iso-file>.iso