我在使用 virt-install 安装操作系统后让客户机重新启动时遇到了一点问题。
无论出于什么原因,virt-install 坚持在您创建虚拟机时插入“--no-reboot”:
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -S -M rhel6.2.0 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name centos62test -uuid f4938758-98f1-cda3-5ec9-d91d6cc40596 -nodefconfig -nodefaults
-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/centos62test.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot* -no-shutdown -kernel /var/lib/libvirt/boot/virtinst-vmlinuz.HzY2RZ -initrd
即使你确实不是指定--no-reboot:
virt-install --name centos62test --disk path=/home/vms/centos62test,size=50,bus=virtio --vnc --noautoconsole --vcpus=1 --ram=512 --network bridge=virbr0,mac=52:54:00:75:80:12 --location=http://192.168.15.100/mirrors/centos/6.2/os/x86_64/ -x "ks=http://192.168.15.100/mirrors/ks/6.2/kvm/x86_64.cfg"
这似乎是 virt-install 特有的一个“问题”,因为当你使用 virt-manager 创建虚拟机时,--no-reboot 选项不是插入。
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -S -M rhel6.2.0 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name centos62test -uuid f4938758-98f1-cda3-5ec9-d91d6cc40596 -nodefconfig -nodefaults
-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/centos62test.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -drive file=/home/vms/centos62test,if=none,id=drive-virtio-disk0,format=
它似乎在 CentOS 6.2(这是我上面的输出)和 Ubuntu 10.04 上都发生过:
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1 -name opensuseks -uuid 05ed4424-08ba-e724-a14f-50b76017609c -chardev socket,id=monitor,path=/v
ar/lib/libvirt/qemu/opensuseks.monitor,server,nowait -monitor chardev:monitor -no-reboot -boot c -kernel /var/lib/libvirt/boot/virtinst-linux.SZsBVy
我有点不知所措。如何让 virt-install不是添加--no-reboot,以便我的客人可以在初始操作系统安装后重新启动。
答案1
如果您使用“--noautoconsole”选项,您还需要指定“--wait”。来自 virt-install 手册页:
--wait=WAIT
等待虚拟机完成安装的时间(以分钟为单位)。如果没有此选项,virt-install 将等待控制台关闭(不一定表示客户机已关闭),或者在 --noautoconsole 的情况下,直接启动安装并退出。任何负值都将使 virt-install 无限期等待,0 值将触发与 noautoconsole 相同的结果。如果超过时间限制,virt-install 将直接退出,使虚拟机保持其当前状态。
因此,带有“--noautoconsole --wait=-1”选项的 virt-install 将(永远)等待,直到客户操作系统安装过程完成,然后重新启动虚拟机。
答案2
如果您不想等待域退出,您可以将 --events on_poweroff=preserve 添加到 virt-install cmdline,并且它不会将 -no-reboot 添加到 qemu cmdline。