精华内容
下载资源
问答
  • qemu虚拟机

    2011-12-23 22:05:06
    一个可以在windows下跑的qemu虚拟机, 包含完整的已经编译的dll和exe.
  • 易语言控制qemu虚拟机源码,控制qemu虚拟机
  • qemu 虚拟机

    2008-07-28 02:59:17
    qemu 0.5.3 虚拟机
  • 控制qemu虚拟机
  • 易语言源码控制qemu虚拟机.rar
  • QEMU虚拟机

    2008-01-09 20:03:20
    一个非常好的CPU虚拟软件。谁用谁知道~ 包含QEMU0.8和一个GUI的图形化界面。
  • 从源码编译安装QEMU2.1 获取QEMU 5.1.0的源码2.2 创建build目录+配置2.3 编译QEMU3 创建QEMU虚拟机镜像4 启动QEMU虚拟机 1. 主机环境/软件版本 Host: Ubuntu 16.04 QEMU v5.1.0 Guest: Ubuntu 16.04 2. 从源码编译...

    1 主机环境/软件版本

    Host: Ubuntu 16.04
    QEMU v5.1.0
    Guest: Ubuntu 16.04

    2 从源码编译安装QEMU

    2.1 获取QEMU 5.1.0的源码

    ~/workspace$ wget https://download.qemu.org/qemu-5.1.0.tar.xz
    ~/workspace$ tar xvJf qemu-5.1.0.tar.xz
    

    2.2 创建build目录+配置

    ~/workspace$ mkdir build && cd build
    ~/workspace/build$ ../qemu-5.1.0/configure --enable-kvm  --target-list=x86_64-softmmu
    

    其中,配置选项--enable-kvm 表示让QEMU支持kvm;
    选项--target-list=<架构名> 表示准备编译哪一种CPU架构的QEMU,‘x86_64-softmmu’表示目标为x86 64位的CPU;
    选项--enable-debug 用来使能debug QEMU;

    在配置QEMU时,若运行~/workspace/build$ ../qemu-5.1.0/configure 不带任何选项的话会很慢,因为它会配置所有支持的CPU架构,且编译时也会把所有配置了的架构都编译一遍。

    2.3 编译QEMU源码

    ~/workspace/build$ make -j4
    

    此时QEMU编译完成,并在‘build/x86_64-softmmu/’ 目录下生成了可执行文件qemu-system-x86_64

    若要将QEMU安装到host系统环境中,还需要执行make install 命令。

    3 创建QEMU虚拟机镜像

    首先使用qemu-img 创建一个虚拟机镜像文件;然后利用guest操作系统的ISO文件将guest OS安装到虚拟机镜像文件中。
    参考命令如下:

    ~/workspace$ ./build/qemu-img create -f qcow2 test.qcow2 16G
    ~/workspace$ ./build/x86_64-softmmu/qemu-system-x86_64 -m 2G -drive format=qcow2,file=test.qcow2 -cdrom ubuntu16.04-Desktop-x86_64.iso
    

    第一个命令qemu-img创建了一个大小为16G、格式为qcow2的虚拟机镜像文件“test.qcow2”,其中选项-f 用于指定镜像文件的格式;
    第二个命令则是通过"ubuntu16.04-Desktop-x86_64.iso"文件启动并安装guest操作系统(即Ubuntu16.04);其中选项
    -m用于指定内存大小,
    -drive用于指定镜像文件(可理解为硬盘),
    -cdrom用于指定要载入的外部文件。

    4 启动QEMU虚拟机

    ~/workspace$ ./build/x86_64-softmmu/qemu-system-x86_64 -m 2G -drive format=qcow2,file=test.qcow2
    

    终端会显示“VNC server running on 127.0.0.1:5900”,
    此时打开系统软件“Remmina Remote Desktop Client”即可连接QEMU虚拟机的UI进入Guest OS桌面环境。
    在这里插入图片描述
    在启动QEMU虚拟机时,还可以添加选项-enable-kvm 来启用kvm模式:

    ~/workspace$ ./build/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 2G -drive format=qcow2,file=test.qcow2
    

    若主机是AMD的CPU,使用该命令可能会报如下错误:

    qemu-system-x86_64: error: failed to set MSR 0xe1 to 0x0
    qemu-system-x86_64: ~/workspace/qemu-5.1.0/target/i386/kvm.c:2713: kvm_buf_set_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed.
    Aborted (Core Dump)
    

    解决办法 [1]:
    创建配置文件/etc/modprobe.d/qemu-system-x86.conf 后重启主机,具体命令如下:

    $ sudo tee /etc/modprobe.d/qemu-system-x86.conf << EOF
    >options kvm ignore_msrs=1
    >EOF
    $ sudo reboot
    

    5 以命令行模式(非图形化界面)登陆虚拟机

    首先通过上面的VNC连接模式进入虚拟机,然后修改Guest OS中的grub启动配置,具体为/etc/default/grub文件中的GRUB_CMDLINE_LINUX="" 这一行[2]:

    $ sudo vim /etc/default/grub
    将 GRUB_CMDLINE_LINUX="" 修改为 GRUB_CMDLINE_LINUX="console=ttyS0"
    然后保存并退出
    $ sudo update-grub
    

    记得修改完后要运行sudo update-grub 命令更新grub来使得上述修改生效。

    此时关闭Guest OS虚拟机,运行QEMU启动命令(带上选项-nographic)来启动即可在当前终端下显示并登陆Guest OS:

    ~/workspace$ ./build/x86_64-softmmu/qemu-system-x86_64 -nographic -enable-kvm -m 2G -drive format=qcow2,file=test.qcow2
    
    Ubuntu 16.04.6 LTS test-PC ttyS0
    test-PC login: test
    Password: 
    Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-45-generic x86_64)
    387 packages can be updated.
    332 updates are security updates.  ...
    test@test-PC:~$ 
    

    这里有一个不足:所有类型的文件没有颜色高亮的区分,比如ls /显示的文件夹和文件是相同颜色。

    5.1 以ssh方式连接Guest虚拟机

    解决terminal下Guest OS中的不同类型文件没有颜色高亮,办法就是在Guest OS中启用SSH server,然后在Host中ssh连接Guest。

    首先,确保Guest OS中安装好ssh server。

    test@test-PC:~$ dpkg -l openssh-server 
    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
    ||/ Name           Version      Architecture Description
    +++-==============-============-============-=================================
    un  openssh-server <none>       <none>       (no description available)
    test@test-PC:~$ sudo apt-get install openssh-server 
    

    然后,在Host中另外开启一个终端并ssh连接Guest:

    test@ubuntu:~/workspace$ ssh -p 2222 localhost
    The authenticity of host '[localhost]:2222 ([127.0.0.1]:2222)' can't be establi.
    ECDSA key fingerprint is SHA256:o/93oB5KHutDf3D2BEvKUjMlkaZSwGe7+zles3e5VL8.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '[localhost]:2222' (ECDSA) to the list of known host.
    test@localhost's password: 
    Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-45-generic x86_64)
    

    6 强制退出QEMU虚拟机的快捷键:

    先按ctrl + a 放开后,再按下 x。

    这个在运行启动虚拟机的命令后发生卡死现象时特别有用!!


    参考文章

    1. 解决 AMD CPU 使用 VMWare 在嵌套虚拟化中用 qemu 启动虚拟机提示 Assertion ret == cpu-kvm_msr_buf-nmsrs failed
    1. How to start qemu directly in the console (not in curses or SDL)

    2. QEMU Standard Options (master branch version)

    展开全文
  • Qemu虚拟机安装教程

    2008-11-21 20:01:30
    Qemu虚拟机安装 我们先装Qemu虚拟机吧..先安装这个软件QemuInstall-0.7.2安装.我这里安装完了.就不安了! 具体步骤自己看喽. 装QEMU虚拟机的时候可卡.QEMU虚拟机是命令试的.具体命令你自己看我设置吧. 按我的设置...
  • qemu虚拟机 bios源码

    2012-07-22 17:46:12
    用于qemu虚拟机的BIOS源代码。
  • qemu虚拟机The question is as follows. 问题如下。 harry@debian:~/workshop1/qemu_test/version1/test$ qemu-system-x86_64 -hda qcow2.img -cdrom domU-x86_64-FS.img -boot d -m 1024 VNC server running on `:...

    qemu虚拟机

    The question is as follows.

    问题如下。

    harry@debian:~/workshop1/qemu_test/version1/test$ qemu-system-x86_64 -hda qcow2.img -cdrom domU-x86_64-FS.img -boot d -m 1024
    VNC server running on `::1:5900'
    
    harry@debian:~/workshop1/qemu_test/version1/test$ vncviewer 127.0.0.1:1
    vncviewer: ConnectToTcpAddr: connect: Connection refused
    Unable to connect to VNC server
    

    Solution (add -vnc parameter for qemu-system-x86_64):

    解决方案(为qemu-system-x86_64添加-vnc参数):

    harry@debian:~/workshop1/qemu_test/version1/test$ qemu-system-x86_64 -hda qcow2.img -cdrom domU-x86_64-FS.img -boot d -m 1024 -vnc 127.0.0.1:2
    
    harry@debian:~/workshop1/qemu_test/version1/test$ vncviewer 127.0.0.1:2
    Connected to RFB server, using protocol version 3.8
    No authentication needed
    Authentication successful
    Desktop name "QEMU"
    VNC server default format:
      32 bits per pixel.
      Least significant byte first in each pixel.
      True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
    Using default colormap which is TrueColor.  Pixel format:
      32 bits per pixel.
      Least significant byte first in each pixel.
      True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
    Same machine: preferring raw encoding

    -vnc display[,option[,option[,…]]]

    -vnc display [,option [,option [,…]]]

    Normally, QEMU uses SDL to display the VGA output. With this option, you can have QEMU listen on VNC display display and redirect the VGA display over the VNC session.

    通常,QEMU使用SDL显示VGA输出。 使用此选项,您可以让QEMU在VNC显示器上监听,并通过VNC会话重定向VGA显示。

    https://www.systutorials.com/docs/linux/man/1-qemu/

    -https://www.systutorials.com/docs/linux/man/1-qemu/

    I guess this is the reason.

    我想这就是原因。

    Answered by Eric Z Ma.
    埃里克·马(Eric Z Ma)回答。

    翻译自: https://www.systutorials.com/cannot-connect-qemu-guest-os-with-vncviewer/

    qemu虚拟机

    展开全文
  • qemu虚拟机的关机方式

    千次阅读 2020-01-31 11:19:08
    qemu虚拟机的关闭方式主要包括如下几种方式: 通过qemu monitor的system_powerdown命令进行关闭, 在libvirt对qemu进行管理的情况下,通过virsh shutdown命令进行关闭。 在虚拟机内使用Guest OS自带的关机按钮...

    qemu虚拟机的关闭方式主要包括如下几种方式:

    1. 通过qemu monitor的system_powerdown命令进行关闭,
    2. 在libvirt对qemu进行管理的情况下,通过virsh shutdown命令进行关闭。
    3. 在虚拟机内使用Guest OS自带的关机按钮进行关闭。
    4. 通过qemu monitor的quit命令进行关闭。
    5. 在libvirt对qemu进行管理的情况下,通过virsh destroy命令进行关闭。
    6. 在主机端通过Ctrl+C强制关闭qemu进程关闭虚拟机。
    7. kill/pkill命令结束进程

    1. qemu monitor的system_powerdown命令

    system_powerdown是qemu monitor中支持的一个命令。

    qemu进程的主循环位于vl.c:main_loop(),在主循环会循环调用main_loop_should_exit()判断是否结束主循环。

    main_loog_should_exit()函数中会通过qemu_powerdown_requested()函数判断qemu虚拟机是否接收到了powerdown的请求,如果有该请求,则调用qemu_system_powerdown(),该函数先发出POWERDOWN的事件,然后通知注册到powerdown的notifier函数

    不同的主板,会注册不同的powerdown notifier

    以piix4为例,在piix4_pm_realize函数中,会将piix4_pm_powerdwon_req()这个notify handler注册到qemu虚拟机的powerdown notifier中。

    该notifier handler主要是调用acpi_pm1_evt_power_down()函数,在该函数中,会检测在该虚拟机主板上,电源键(Power Button)是否被使能,如果被使能了,则模拟该电源键被按下,发送SCI(System Control Interrupt)中断,触发Guest OS进行关机。

    所以qemu monitor的system_powerdown命令本质上是模拟电源键被按下触发SCI中断的动作。至于Guest OS是否会关机,则由Guest OS的行为配置决定的,如在Windows中,如果在电源设置中,将Windows的电源按键设置为不响应,则发送system_powrdown命令后,Windows将不做响应,无法实现虚拟机关机,除非Windows中将电源键功能设置为关机。

    2. virsh shutdown命令

    virsh shutdown命令会调用到libvirt的virDomainShutdown()函数,该函数会继续调用不同类型hypervisor的shutdown函数,如对于qemu而言,它会调用到qemu dirver对应的domainShutdown,即qemuDomainShutdown(),在该函数中,会执行如下操作:

    1. 检测Qemu Guest Agent是否存在,如果存在并且可用,则通过Qemu Guest Agent告知Guest OS进行关机操作。
    2. 如果Qemu Guest Agent不存在,则检测qemu虚拟机是否支持ACPI Power Button,如果支持,则调用qemuMonitorSystemPowerdown()函数,即在qemu monitor中,发送system_powerdown命令,模拟电源键被按下并出发SCI的动作,触发Guest OS进行关机。

    所以,在不用Qemu Guest Agent的情况下,virsh shutdown命令其实就对应到qemu monitor中的system_powerdown命令,只是该命令由libvirt发送。

     

    3. Guest OS关机接口

    在虚拟机内使用Guest OS自带的关机按钮/功能进行关机,以Ubuntu为例,通过systemctl poweroff命令对Ubuntu进行关机,该命令会调用到kernel/power/poweroff.c文件中定义个poweroff_work对应的工作,该工作主要是执行do_poweroff()对系统进行关机。

    kernel/power/poweroff.c:do_poweroff() -> kernel_power_off() ,该函数关闭所有的用户程序和设备,最后调用machine_power_off()函数。

    machine_power_off() -> power_off() -> native_machine_poweroff() -> pm_power_off() 若该Ubuntu运行的虚拟机支持ACPI标准,则pm_power_off将指向acpi_power_off()函数。

    acpi_power_off() -> acpi_enter_sleep_state()

    该函数将会往ACPI标准中规定的寄存器PM1 Control Registers Fixed Hardware Feature Control Bits中的SLP_TYPE和SLP_EN域写相应的数据,让虚拟机主板进入到指定的睡眠状态,即ACPI标准中定义的S0 ~ S5状态。

    而在qemu模拟器方面,在hw/acpi/core.c中会对PM1 Control Registers Fixed Hardware Feature Control Bits的写进行监控,当向SLY_TYP和SLY_EN写特定值的时候,会触发qemu调用qemu_system_shutdown_request()发出shutdown的请求。

    qemu进程的主要循环函数main_loop()中,会循环调用main_loop_should_exit()函数,该函数会检测系统中是否有shutdown的请求发出。若有shutdown的请求,则qemu进程退出主循环,结束并退出qemu虚拟机。

    4. qemu monitor的quit命令

    qemu monitor的quit命令让qemu进程直接退出。

    直接在qemu monitor中输入quit命令,将触发qemu虚拟机直接退出,Guest OS完全不知道虚拟机即将关闭,所以对Guest OS来说,将会直接闪退,类似物理机的直接掉电。

    quit命令将调度到qemu的hmp_quit()函数,该函数将会告知qemu进程在虚拟机关闭的时候退出,同时发出shutdown的请求,qemu进程的主循环main_loop()在执行main_loop_should_exit()检查是否需要退出主循环的时候,将检测到该事件,然后直接退出。

     

    5. virsh destroy命令

    libvirt提供的virsh destroy命令,将调用到qemu driver的qemuDomainDestroy() -> qemuDomainDestroyFlags() -> qemuProcessStop() -> qemuProcessKill()接口,将qemu进程关掉。

    qemuProcessKill()中,将会向qemu进程发送SIGKILL或SIGTERM信号,让qemu进程退出。

     

    在qemu这边,qemu的主进程中,会通过os_setup_signal_handling()设置对信号的响应。

    termsig_handler() -> qemu_system_killed(),在qemu_system_killed()中,将会生成shutdown的请求,并且shutdown请求的原因是host signal。该请求将会让qemu进程的主循环退出,不等Guest OS准备好关机。

     

    6. Ctrl+C组合键

    在主机端通过Ctrl+C组合键,让qemu进程退出,其实是向qemu进程发送SIGINT信号,该信号的处理方式和SIGTERM是一样的,也就是最后调用到qemu_system_killed()函数,发出shutdown请求,让qemu主进程退出,同时记录下shutdown的原因为host signal。

     

    7. kill/pkill命令

    在主机端使用kill -9 pid或者pkill -9 pname的方式,也是向主机进程发送SIGKILL信号,让进程退出的。

    展开全文
  • 介绍了多种QEMU虚拟机的网卡虚拟化技术和具体实现方法,同时给出了相应的网络配置步骤
  • XP下使用QEMU虚拟机实战 PDF格式 详细说明
  • qemu虚拟机运行UEFI

    2021-03-14 22:57:01
    qemu虚拟机运行UEFI 软件版本 edk2-edk2-stable202011 编译 Ovfm build -p OvmfPkg/OvmfPkgX64.dsc //生成ovfm固件 qemu启动并使用该固件: qemu-system-x86_64 -bios Build/OvmfX64/DEBUG_GCC5/FV/OVMF....

    qemu虚拟机运行UEFI

    软件版本

    edk2-edk2-stable202011

     

    编译 Ovfm

    build -p OvmfPkg/OvmfPkgX64.dsc  //生成ovfm固件

     

    qemu启动并使用该固件:

    qemu-system-x86_64 -bios Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd

     

    qemu 创建硬盘

    qemu-img.exe create myimage.img 67108864

     

    //如何格式化硬盘FAT32格式 并添加UEFI EFI/boot/bootX64.efi ???

    qemu-system-x86_64.exe -bios OVMF.fd -m 1024 -hda \\.\PhysicalDrive1   ;启动U盘

     

    展开全文
  • qemu虚拟机与主机共享文件(FTP服务器) 联系作者qq 843230304 PC主机 : 主机参数 描述 芯片/指令集架构 x86_64 系统 ubuntu16.04LTS cpu Intel® Core™ i7-8700 qemu 虚拟机 : qemu 虚拟机...
  • qemu虚拟机ping不通网关

    千次阅读 2019-05-05 16:12:38
    qemu虚拟机配置网络 ping不通网关,但是可以ping通宿主机 解决问题: 查看宿主机网关 看见一条不相关的路由 删除这条路由 route del -net 169.254.0.0 netmask 255.255.0.0 再ping宿主机,通了! ...
  • VENOM cve-2015-3456 Qemu 虚拟机逃逸漏洞POC,可以实行堆溢出攻击。
  • 预装linux系统的QEMU虚拟机,包含有GCC、vi和常见的shell工具,一个非常精简的linux,可以用于学习linux
  • 安装QEMU虚拟机并运行标准系统一.安装QEMU虚拟机二.Debian Aarch64 虚拟机镜像 使用说明三.登录虚拟机并开启远程登录 简单的几步让你的树莓派也可以跑虚拟机!!! 本教程适用我们的全系1.0版本系统!2.0版本系统...
  • ubuntu下SSH登录qemu虚拟机

    千次阅读 2017-03-10 10:53:59
    ubuntu下SSH登录qemu虚拟机 宿主机需要用ssh登入访问虚拟机,可以采取两种方式  一种是端口映射:把虚拟机的22端口映射到宿主机的其他还未使用的端口(ex:2223),方法就是在虚拟机启动命令中添加参数-:redir ...
  • CentOS7环境下使用kvm在虚拟机内部安装qemu虚拟机 实验目的及要求: 熟练掌握VMWare虚拟机的使用方法 能够通过虚拟机完成Linux CentOS7环境下使用kvm安装虚拟机 掌握VMWare中安装虚拟机的基本方法 搭建可以创建...
  • UEFI QEMU虚拟机下运行第一个APP HelloWorld图解 1 搭建UEFI QEMU 虚拟机运行环境 点击我进行搭建图解 2 查看EDK2中的AppPkg的readme 3 更改conf目录下的target.txt 然后进行build,如果build命令无效,记得...
  • 一:安装QEMU虚拟机 QEMU 官网下载安装包https://www.qemu.org/ 本文安装qemu-4.1.1 安装步骤如下: 1):安装库 sudo apt-get install zlib1g-dev sudo apt-get install libglib2.0-0 sudo apt-get install ...
  • 作为一名初级的嵌入式底层开发人员,若想要...很久以前笔者注意到安卓工程中使用到了QEMU虚拟机模拟了安卓硬件设备,可以完整地运行安卓系统(从物理按键和显示、触摸屏,到Linux内核,直至Framework层)。还有QEM...
  • qemu虚拟机通过tun/tap上网

    千次阅读 2014-01-01 23:54:57
    qemu虚拟机通过tun/tap上网 ====================== v0.1 2014.1.1 在学习perf的时候,需要使的qemu虚拟机可以上网,下面是上网的设置过程 参考: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,107
精华内容 10,042
关键字:

qemu虚拟机