我已经使用 virt-manager 创建了一台在 kvm/qemu 上运行的虚拟机。通过 virt-manager 启动时,该机器运行良好。但是,我希望能够通过 init.d 中的脚本启动和停止虚拟机,以便它与主机一起启动和关闭。我需要让 virt-manager 显示机器正在运行,并能够通过那里连接到它的控制台。
当我使用通过 virt-manager 启动虚拟机后运行生成的命令行时ps -eaf | grep kvm
,我收到一些有关重定向字符设备的控制台消息,但机器确实启动并正常运行。但是,我没有从 virt-manager 收到它已启动的任何指示。我如何修改命令行以使 virt-manager 接收正在运行的虚拟机?在 virt-manager 之外启动时,命令行还有什么需要更改的吗?
命令行是(为了便于阅读,稍微重新格式化):
/usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1 -name BORON \
-uuid fa7e5fbd-7d8e-43c4-ebd9-1504a4383eb1 \
-chardev socket,id=monitor,path=/var/lib/libvirt/qemu/BORON.monitor,server,nowait \
-monitor chardev:monitor -localtime -boot c \
-drive file=/dev/FS1/BORON,if=ide,index=0,boot=on,format=raw \
-net nic,macaddr=52:54:00:20:0b:fd,vlan=0,name=nic.0 \
-net tap,fd=41,vlan=0,name=tap.0 -chardev pty,id=serial0 -serial chardev:serial0 \
-parallel none -usb -usbdevice tablet -vnc 127.0.0.1:1 -k en-us -vga cirrus
答案1
至于自动启动/停止,并且您正在使用 virsh,您可以这样做(作为特权用户)
virsh autostart Domain
我不确定为什么 virt manager 没有给你任何输出。它确实与机器托管机器有连接,对吧?如果已连接,它应该显示域列表。
答案2
打开虚拟机显示,点击查看->详细信息
选择启动选项,勾选在主机启动时启动虚拟机
答案3
蒂姆的回答是正确的,并且
virsh
还能让你做很多有用的事情。
要将虚拟机设置为自动启动,您可以使用:
# virsh autostart <domain-id>
是<domain-id>
虚拟机的编号、UUID 或您在 中输入的“友好名称”,如“debian1” virt-manager
。
要获取虚拟机列表(编号和名称),请使用:
# virsh list --all
就我而言,我得到:
Id Name State
----------------------------------
1 other running
2 other-clone running
所以我用过:
# virsh autostart other
答案4
您还可以在以下位置放置指向客户机 domxml 的符号链接/etc/libvirt/qemu/autostart
:
对于名为“test”的虚拟机来说,它将如下所示:
test.xml -> /etc/libvirt/qemu/test.xml