Articles of qemu

LibVirt(QEMU)从客人内部closures

我目前在Debian Wheezy上用Qemu运行LibVirt: 版本: libvirtd(libvirt)1.2.4 qemu-x86_64版本2.0.0(Debian 2.0.0 + dfsg-4〜bpo70 + 1),Copyright(c)2003-2008 Fabrice Bellard 这一切都工作完美,包括ACPI:virshclosures客人。 但是,当我从客人发出“暂停”时,客人停下来,但是libvirt认为它仍在运行:(virsh list outputs state:running)。 virsh dominfo做同样的事情:状态:跑步 我相信这是由于传递给qemu的-no-shutdown标志,使其停止CPU而不是完全停止。 这是一个错误,状态没有正确更新?

virt-install完全自动安装

我正在研究如何安装/部署虚拟机完全自动化(无用户交互)。 到目前为止,我已经与QEMU一起尝试了QEMU和virt-install。 qemu的问题是注入kickstart文件必须手动注入。 另一方面使用virt-install注入kickstart文件是小菜一碟,但是我不能在这种情况下使用ISO来安装。 我的要求是使用操作系统的ISO映像创build一个虚拟机镜像,完全自动化。 有没有办法做到这一点,而不会牺牲解决scheme的简单性。 当我发出以下命令安装程序正在从互联网上下载内容。 virt-install –connect=qemu:///system \ –network user \ –name=PathBreaker \ –disk path=/home/h/pathbreaker.img,format=raw \ –ram 256 \ –check-cpu \ –hvm \ –arch x86_64 \ –accelerate \ –graphics none \ –os-type=linux –extra-args='ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8 serial' \ –location=/home/h/ubuntu-14.04.1-server-amd64.iso \ –initrd-inject=/var/tmp/ks.cfg \ 这里是我的ks.cfg文件内容 #System language lang en_US #Language modules to install langsupport en_US #System […]

在USB设备重新连接时强制libvirt将相同的设备编号传递给guest虚拟机

我有一个HP绘图仪通过USB集线器连接到一个debian服务器的USB电缆。 在服务器上有一个虚拟化的Windows XP。 每次我重新启动绘图仪时,udev会将不同的设备编号分配给绘图仪,以便更改由Windows分配给绘图仪的虚拟打印机端口。 看来不可能强迫udev使用相同的devnum ,所以我应该强制libvirth通过一个固定的总线地址。 我目前在libvirt attach-device使用下面的代码: <hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x0123'/> <product id='0x0456'/> </source> </hostdev> 我可以为udev编写一个规则来创build一个固定名称的设备。 如果以这种方式将设备从客户端看到的话,应该很好,因为它总是连接到同一个USB端口。 你知道这有可能吗? 编辑: 我正在努力遵循André的build议。 我不确定要为设备#8添加hostbus和hostport参数。 # lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M |__ Port 2: Dev 3, If 0, Class=HID, […]

如何从主机测量虚拟机的启动时间?

在来宾机和主机上,我使用的是Ubuntu 12.04 。 作为一个pipe理程序,我正在使用KVM 。 我想执行一些与boot-storm相关的实验,并且创build了所有其他脚本来创build虚拟机,删除虚拟机和启动虚拟机。 但我不知道如何衡量每个虚拟机的启动时间。 尽pipe没有必要,但是如果启动时间在某种意义上,按名称或通过MAC地址等,有一对一的映射到虚拟机将是很好的。 启动时间:我想从主机做ssh,当它成功时,我会认为VM已经启动成功。 解决scheme应该是可扩展的,因为我想为100-150个虚拟机执行实验。 问题: 1)如何从主机获取访客虚拟机的IP地址? 2)域名 – > IP的映射 3)IP映射 – >启动时间

qemu-img VHD转换成原始图像转换结果坏几何:

有谁能够重现这一点? 在Windows上使用StarWind V2V图像转换器,我能够得到一个有效的disk.img文件,所以源image.vhd是干净的(从机架空间拉下来)。 这是RHEL / CentOS 7下的qemu-img错误吗? …任何解决方法? $ rpm -qa | grep -i qemu QEMU-IMG-1.5.3-86.el7_1.2.x86_64 #qemu-img convert -p image.vhd disk.img #fdisk -l disk.img 磁盘disk.img:10.2 GB,10200121344字节,19922112个扇区 单位= 1 * 512 = 512字节的扇区 扇区大小(逻辑/物理):512字节/ 512字节 I / O大小(最小/最佳):512字节/ 512字节 磁盘标签types:dos 磁盘标识符:0x0007b3de 设备引导启动结束块Id系统 disk.img1 * 2048 19922943 9960448 83 Linux [2048 x 512 = 1048576] #mount -o […]

从Qemu移除硬件支持

我目前正在使用Qemu 2.4.1试验,我希望能够移除less数硬件的支持。 像USB /鼠标/声卡等 当我修改源代码的时候 ,我可以使用default-configs/x86_64-softmmu.mak取消对less数的支持。 但是,这并不能完全解决我的问题。 那么,这是正确的做法吗? 无论如何,如何有select地从Qemu删除硬件支持? 谢谢。

Libvirt和USB Hub直通

我有一个虚拟机,我希望有一个USB集线器和所有的设备分配给一个虚拟机。 有问题的集线器是一个USB集线器,它本身插在主板/主要Linux集线器上的一个端口上。 我已经尝试了几种不同的方法,并没有find解决scheme。 我在Ubuntu 15.10主机上使用Libvirt。 我尝试过使用hostdev方法,并尝试将一个USB集线器从KVM主机传递给libvirt的guest虚拟机的代码行,但没有成功。 谢谢 – Ryan Walmsley

Qemu打包机ssh失败的连接重置由对等

我试图让打包者创build一个qemu / kvm图像。 我觉得它应该是相当简单的,但我的构build不断在SSH上失败。 这里是相关的文件 template.json: { "builders": [ { "type": "qemu", "iso_url": "/home/username/ubuntu-14.04.4-desktop-amd64.iso", "iso_checksum": "807fa1f246b719d28d0b362fd2f31855", "iso_checksum_type": "md5", "shutdown_command": "/sbin/shutdown -hP now", "ssh_username": "ubuntu", "ssh_password": "test", "ssh_port": 22, "ssh_wait_timeout": "5m", "ssh_host_port_min": 2222, "ssh_host_port_max": 2229, "boot_wait": "30s", "disk_size": 20480, "format": "raw", "headless": true, "accelerator": "kvm", "http_directory": "http", "http_port_min": 10082, "http_port_max": 10089, "vm_name": "ubuntu-test", "net_device": "virtio-net", "disk_interface": […]

从SeaBIOS的基于固件的PCI RAID控制器启动

我有一台运行Windows 2003的服务器,它位于由Promise FastTrak SX4100组成的RAID5arrays上,我认为它是基于硬件的,因为它具有专用的处理器和缓冲存储器以及启动DOS和Windows的能力。 然而事实certificate,这个控制器只是硬件辅助的 ,在主机处理器上运行的x86固件会执行更高级别的逻辑。 现在,老化的主板(或处理器?)已经死亡,我试图迁移到更现代的UEFI导向的硬件,RAID控制器无法初始化,即使在传统(BIOS)模式 – 它挂起时,扫描磁盘, 即 其固件接收来自UEFI / BIOS的控制并在屏幕上显示欢迎消息,但在识别连接的SATA驱动器方面没有任何进展。 因此,我认为在运行Windows的虚拟机上运行Windows可能会比使用PCI卡的虚拟机运行得更好,NT 5.2不太可能与现代芯片组兼容,而Qemu在经典BIOS模式下提供了完全舒适的仿真环境。 但是,问题是SeaBIOS并没有列出RAID控制器作为可启动设备 ,尽pipe能够成功地与它通信。 那是: 在SeaBIOS显示启动菜单之前 ,控制器固件可以接收控制权并能够初始化RAIDarrays,但是该菜单没有提及arrays磁盘。 可以在POST过程中调用的arraysconfiguration实用程序清楚地显示该arrays是健康的。 当Windows安装程序运行并加载RAID驱动程序时,它也清楚地显示磁盘内容,certificate其可用性。 换句话说,这个arrays在虚拟机环境中似乎是完全可以运行的,但是SeaBIOS在某些时候并不认可它作为可启动设备 ,尽pipe后者确实支持用于Boot ROM选项的PCI设备,正如SeaBIOS内置的iPXEnetworking启动ROM本身。 我也有一个想法,GRUB可能在这里有任何帮助,我。 即 从SeaBIOS启动到GRUB(在一个单独的小磁盘上),然后链接到Windows。 然而,我并没有很成功地configuration它,因为Linux环境由于缺less驱动程序而没有看到数组,所以不能帮助创build菜单,但是GRUB本身不是太友好也不是冗长的 – 我甚至不能理解它是否真的将arrays视为磁盘驱动器,或者需要预先加载一些驱动程序或其他任何先决条件。 像RescaTux或PartedMagic这样的救援工具也无济于事,因为他们专注于修复现有的GRUB安装 – 而不是设置新的安装。 作为参考,我尝试了使用上游Qemu 2.6.2与SeaBIOS 1.9.1的Xen 4.7.2,在Linux 4.4.62的openSUSE 42.2之上。 论坛和邮件列表指出,从PCI RAID引导已经可能在十多年前的老版本,所以我认为这是我特别的设置责备。 但是我不明白, SeaBIOS确实能够从我的RAID控制器启动吗? 最终的目标是通过任何可用的手段获取服务器,包括通过购买另一个兼容的旧硬件。 但是我对这个特定的技术感到好奇,因为虚拟机似乎是延长传统系统寿命的更多function和面向未来的方法。

libvirt,qemu,重启挂钩

是否有可能检测到guest虚拟机已经重新启动并使用libvirt / qemu执行操作? 这里的钩子只支持“开始”和“停止”事件。 我想检测我的虚拟机是否重新启动。 HOST运行的是ubuntu 10.04,GUEST运行的是ubuntu 10.04