qemu

kvm错误整理

两盒软妹~` 提交于 2020-01-25 05:21:51
一、启动虚拟机​Connection reset by peer # virsh start vmhost1 error: Failed to start domain vmhost1 error: Unable to read from monitor: Connection reset by peer 在虚拟机运行过程中关闭宿主服务器就有可能导致这种情况出现,由于宿主服务器中的kvm虚拟机控制器与安装在kvm中的虚拟机会话被异常重置,所以我们可以如下解决: # virsh managedsave-remove vmhost1 # virsh start vmhost1 如果启动查看/var/log/libvirt/qemu/vmhost1.log下log还报如下错误: Cannot set up guest memory 'pc.ram': Cannot allocate memory 这个问题可能是分配给vmhost1分配的内存过大(甚至超过的物理主机的内存大小),或者可能是宿主机没有足够的内存分配给此虚拟机,导致无法启动! 二、重Define虚拟机时无/usr/bin/kvm error: Failed to define domain from hostname.xml error: Cannot find QEMU binary /usr/bin/kvm: No

Remote debugging HiFive Unleashed in QEMU

丶灬走出姿态 提交于 2020-01-24 19:31:08
问题 I'm trying to get remote debugging working in QEMU for the sifive_u machine. All tools are from the Arch Linux repositories: ➜ qemu-system-riscv64 --version QEMU emulator version 4.2.0 Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers ➜ riscv64-linux-gnu-gdb --version GNU gdb (GDB) 8.3.1 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and

first time running qemu, vnc viewer not open automatically

纵然是瞬间 提交于 2020-01-24 13:53:07
问题 Recently I downloaded qemu, and ran configure, make and make install. when I run qemu-system-sparc linux-0.2.img I just see a message below VNC server running on `::1:5900' At this state, when I open vncviewer window by typing vncviewer :5900 , then I see the window. The window shows the emulated screen Welcome to OpenBIOS v1.1 build on Mar 10 2014 08:41 Type 'help' for detailed information Trying disk... No valid state has been set by load or init-program 0> How can I make the vnc window

assembly x86 qemu: fatal: Trying to execute code outside RAM or ROM

て烟熏妆下的殇ゞ 提交于 2020-01-24 11:23:36
问题 I'm working on a very basic shell where the only command currently is 'help'. If you type something wrong, you're informed that the command isnt recognized. Somewhere in the segment and stack setup I have a bug that causes the shell to spit out some nonsense after I type anything and then freeze completely. Error I get in terminal qemu: fatal: Trying to execute code outside RAM or ROM at 0xff0fe990 EAX=0000ffe0 EBX=0000ffff ECX=ff00e990 EDX=0000e000 ESI=000001a4 EDI=0000011e EBP=00000019 ESP

assembly x86 qemu: fatal: Trying to execute code outside RAM or ROM

故事扮演 提交于 2020-01-24 11:23:26
问题 I'm working on a very basic shell where the only command currently is 'help'. If you type something wrong, you're informed that the command isnt recognized. Somewhere in the segment and stack setup I have a bug that causes the shell to spit out some nonsense after I type anything and then freeze completely. Error I get in terminal qemu: fatal: Trying to execute code outside RAM or ROM at 0xff0fe990 EAX=0000ffe0 EBX=0000ffff ECX=ff00e990 EDX=0000e000 ESI=000001a4 EDI=0000011e EBP=00000019 ESP

0x02 设备漏洞---模拟处理器(QEMU)

纵然是瞬间 提交于 2020-01-23 16:12:23
QEMU是由Fabrice Bellard编写的模拟处理器自由软件。他与Bochs和PearPC近似,但具有后两者所不具备的一些特性,如高速度及跨平台的特性。经由KQEMU这个闭源的加速器,QEMU能模拟近似真实计算机的速度。 1.获取QEMU资源 git clone git://git.qemu-project.org/qemu.git /opt/qemu$ git submodule update --init pixman /opt/qemu$ git submodule update --init dtc 2.按照依赖文件 sudo apt-get install libglib2.0 libglib2.0-dev sudo apt-get install autoconf automake libtool 3.修改QEMU源文件 如果使用的是低版本的QEMU,那么在运行一个MIPS程序时,可能会遇到不论是使用大端格式的qemu-mips还是小端格式都会报错(Invalid ELF image for this architecture) 这时候需要修改QEMU源文件 /opt/qemu/linux-user$ sudo nano elfload.c 将如下行注释掉 //&& ehdr->e_shentsize == sizeof(struct elf_shdr) 4

qemu-guest-agent---介绍及安装

本秂侑毒 提交于 2020-01-20 16:59:48
qemu guest agent简称qga, 是在虚拟机中运行的守护进程,他可以管理应用程序,执行宿主机发出的命令。例如冻结或解冻文件系统,使系统进入挂起状态等。但是 guest agent(GA)并没有良好的安全保护,恶意的虚拟机可能发送虚假的回复 Setting QEMU GA up 目前QEMU通过串口发布GA。可以尝试的允许应用程序通过qume监视器与 GA进行通讯,但是需要virtio串口提供支持. 使用GA需要创建特别的串口,名为 org.qemu.guest_agent.0. 换句话说,需要在domain xml中的<devices>下添加如下内容: <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel> 如果使用libvirt1.0.6或者更新的的版本,可以省略<source>元素的path=" "属性。libvirt会进行自动配置。 Usage Libvirt 不提供直接使用guest agent的任何支持,如果您不介意使用libvirt-qemu,则可以使用virDomainQemuAgentCommand API

Qemu/KVM虚拟机网卡TC双向限速

不打扰是莪最后的温柔 提交于 2020-01-17 00:39:04
本文档由成都征天科技有限公司天极云团队原创出品,转载请注明出处,征天科技致力于为企业和个人提供专业的云计算IaaS和PaaS层产品和服务,官网地址:www.tjiyun.com 欢迎访问。 本文档主要介绍Qemu/KVM虚拟机使用TC做网卡流量双向限速的原理和操作。 一.TC限速相关介绍 1.TC限速原理介绍 Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。 接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择,如果接收包的目的主机是本主机,那么将该包送给上层处理,否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。转发块同时也接收本主机上层(TCP、UDP等)产生的包,通过查看路由表,决定所处理包的下一跳。然后,对包进行排列以便将它们送到输出接口。 从以上介绍可以看出,TC只能对网卡发出的数据包做分类限制,不能对网卡接收的数据包做分类限制,但是可以对网卡接收的数据包流量做一个整体限制。因为我们项目中只需要对网卡接收的流量做整体限制,所以TC刚好可以满足我们对网卡流量双向限制的要求。 2.TC限速基本概念介绍 TC对流量的处理由三种对象控制,它们是: 队列规则 qdisc(queueing discipline) 类

Unable to run linux 3.10(mips) on qemu 2.5

我是研究僧i 提交于 2020-01-16 11:38:28
问题 I want to run linux 3.10 with mips64r2 on qemu. But it fails, the boot log as follows, I compile the kernel with the gcc 4.9.3 which is modified by loongson. The kernel config file is the malta_defconfig and i change it to mips64r2 cpu and 64 bit kernel. The qemu 2.5 is the default application on the ubuntu 16.04. zlp@lab302i-ES:~/projs/linux-3.10$ qemu-system-mips64el -M malta -m 1G -cpu 5KEf -kernel vmlinux -nographic Linux version 3.10.0 (zlp@lab302i-ES) (gcc version 4.9.3 20150626 (Red

通过QEMU-GuestAgent实现从外部注入写文件到KVM虚拟机内部

怎甘沉沦 提交于 2020-01-16 08:32:57
本文将以宿主上直接写文件到VM内部为例讲解为何要注入以及如何实现 目录 ▪ 为什么要“注入”到VM内部 ▪ 如何实现“注入” ▪ Step1. 为VM配置channel ▪ Step2. 部署qemu-ga ▪ Step3. 注入操作说明 ▪ Step4. Base64计算 ▪ Step5. 开始注入 ▪ 附1. qemu-ga支持的所有指令 ▪ 附2. 配置多个channel ▪ 参考文档 为什么要“注入”到VM内部 原因很简单:在VM外部无法实现,只能进入到VM内来实现 KVM不像Docker(container)只是对进程进行cgroup隔离,KVM是全封闭的环境。 对于基于KVM的虚拟机来说,通常存在如下需求: ▷ 在线修改密码 ▷ 在线增加公钥 ▷ 在线采集性能 (如cpu使用率、负载、内存使用量等性能指标) ▷ 其他各种在线功能 上述这些场景的共性:仅在VM外部是无法实现的。因此就有了多种解决方案,但无论哪种解决方案都要同时满足以下2点才能实现: ▷ 通道 :在VM内部与外部(宿主)之间打开一个通道,可以进行数据交互 ▷ agent :在VM内部种下一个agent,用于接收外部的指令并反馈结果 在VM内部种下agent的做法可以形象地称之为 "inject 注入" 如何实现“注入” 第一步,打开通道 有2类方法: ▷ 走网络 :会复杂一些,需要提前预插入一张管理网卡