这里写自定义目录标题

  • 1. 下载并安装qemu
  • 下载 cloud image 并 在 qumu 中进行运行
    • script 一键运行
  • 使用 libvirt 启动虚拟机的常用命令

1. 下载并安装qemu

  1. 下载
git clone https://gitlab.com/qemu-project/qemu.git
  1. 安装
#!/bin/bashrm -rf build
mkdir build
cd buildsudo apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython2-dev python3-pip python-capstone virtualenvgit submodule init
git submodule update --recursive../configure --target-list=x86_64-softmmumake -j`nproc`

下载 cloud image 并 在 qumu 中进行运行

script 一键运行

#!/usr/bin/env bashsudo apt-get install cloud-image-utils qemu# This is already in qcow2 format.
img=ubuntu-18.04-server-cloudimg-amd64.img
if [ ! -f "$img" ]; thenwget "https://cloud-images.ubuntu.com/releases/18.04/release/${img}"# sparse resize: does not use any extra space, just allows the resize to happen later on.# https://superuser.com/questions/1022019/how-to-increase-size-of-an-ubuntu-cloud-imageqemu-img resize "$img" +128G
fiuser_data=user-data.img
# For [ ! -f "$user_data" ] syntax
# https://linuxize.com/post/bash-check-if-file-exists/
if [ ! -f "$user_data" ]; then# For the password.# https://stackoverflow.com/questions/29137679/login-credentials-of-ubuntu-cloud-server-image/53373376#53373376# https://serverfault.com/questions/920117/how-do-i-set-a-password-on-an-ubuntu-cloud-image/940686#940686# https://askubuntu.com/questions/507345/how-to-set-a-password-for-ubuntu-cloud-images-ie-not-use-ssh/1094189#1094189# How does "cat << EOF" work in bash?# https://stackoverflow.com/questions/2500436/how-does-cat-eof-work-in-bashcat >user-data <<EOF
#cloud-config
password: asdfqwer
chpasswd: { expire: False }
ssh_pwauth: True
EOFcloud-localds "$user_data" user-data
fiqemu-system-x86_64 \-drive "file=${img},format=qcow2" \-drive "file=${user_data},format=raw" \-device rtl8139,netdev=net0 \-enable-kvm \-m 2G \-netdev user,id=net0 \-serial mon:stdio \-smp 2 \-vga virtio \
;
qemu-system-x86_64 -enable-kvm -hda /tmp/vm00.qcow2 -kernel /var/tmp/vmlinuz-5.7.0-050700-generic -nographic -m 1024 -object memory-backend-uswap,size=1073741824,id=m0,allocator=hugetlb -numa node,memdev=m0 -append 'console=ttyS0 root=/dev/sda1'

使用 libvirt 启动虚拟机的常用命令

  1. 查看 cloud image 的信息
/usr/bin/qemu-img info ubuntu-20.04-minimal-cloudimg-amd64.img
image: /var/local/uswap-benchmark/ubuntu-20.04-minimal-cloudimg-amd64.img
file format: qcow2
virtual size: 2.2 GiB (2361393152 bytes)
disk size: 1.23 GiB
cluster_size: 65536
Format specific information:compat: 0.10refcount bits: 16
  1. 拷贝 base cloud image ubuntu-20.04-minimal-cloudimg-amd64.img 到其他地方 作为 disk
qemu-img create -f qcow2 -b ubuntu-20.04-minimal-cloudimg-amd64.img -F /path/to/other/place/000-ubuntu-20.04-minimal-cloudimg-amd64.img
  1. 定义一个 虚拟机的 配置文件 vm.xml

  2. define a domain

sudo /usr/local/bin/virsh define vm.xml
  1. start a domain/vm
sudo /usr/local/bin/virsh start {domain_name}
  1. Output a guest’s XML configuration file with virsh:
    This command outputs the guest’s XML configuration file to standard out (stdout).
virsh dumpxml {guest-id, guestname or uuid}

EXAMPLE OUTPUT:

# virsh dumpxml guest1-rhel6-64
<domain type='kvm'><name>guest1-rhel6-64</name><uuid>b8d7388a-bbf2-db3a-e962-b97ca6e514bd</uuid><memory>2097152</memory><currentMemory>2097152</currentMemory><vcpu>2</vcpu><os><type arch='x86_64' machine='rhel6.2.0'>hvm</type><boot dev='hd'/></os><features><acpi/><apic/><pae/></features><clock offset='utc'/><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>restart</on_crash><devices><emulator>/usr/libexec/qemu-kvm</emulator><disk type='file' device='disk'><driver name='qemu' type='raw' cache='none' io='threads'/><source file='/home/guest-images/guest1-rhel6-64.img'/><target dev='vda' bus='virtio'/><shareable/<<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/></disk><interface type='bridge'><mac address='52:54:00:b9:35:a9'/><source bridge='br0'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface><serial type='pty'><target port='0'/></serial><console type='pty'><target type='serial' port='0'/></console><input type='tablet' bus='usb'/><input type='mouse' bus='ps2'/><graphics type='vnc' port='-1' autoport='yes'/><sound model='ich6'><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/></sound><video><model type='cirrus' vram='9216' heads='1'/><address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/></video><memballoon model='virtio'><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/></memballoon></devices>
</domain>
  • Here we can find the mac address of the VM (devices->interface->mac)
  1. 找到 与 mac 对应 的虚拟机 ip 地址
sudo /usr/local/bin/virsh net-dhcp-leases default
  1. 使用ssh 控制虚拟机 执行命令 remot_cmd
ssh -o StrictHostKeyChecking=no user_name_in_vm@vm_ip -i path/to/private_key_on_host  remot_cmd
  1. 显示正在运行的 虚拟机
sudo /usr/local/bin/virsh list
  1. kill 一个虚拟机
sudo /usr/local/bin/virsh destroy {domain_name}
  1. undefine a domain
sudo /usr/local/bin/virsh undefine domain_name

12 copy file into vm disk image

sudo virt-copy-in -a /tmp/vm00.qcow2 /lib/modules/$(uname -r) /lib/modules/

13 copy file out of a vm disk image

virt-copy-out - Copy files and directories out of a virtual machine disk image.

more detail

  1. some more command to resize the disk ,etc.

qemu-img resize vm3.qcow2 100Glsblkdf -hsudo growpart /dev/sda 3sudo resize2fs /dev/sda1 SIZE
  1. libvirt working template
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'><name>qemu-yaoxin</name><memory unit="G">32</memory><vcpu>8</vcpu><cpu mode='host-model'><numa><cell id='0' cpus='0-7' memory='32' unit='G'/></numa></cpu><os><type arch='x86_64' machine='pc'>hvm</type></os><memoryBacking></memoryBacking><devices><emulator>/home/yaoxin/code/local/bin/qemu-system-x86_64</emulator><disk type='file' device='disk'><driver name='qemu' type='qcow2' cache='unsafe'/><source file='/home/yaoxin/memcached-disk-image/vm3.qcow2'/><target dev='vda' bus='ide'/></disk><interface type='bridge'><source bridge='virbr0'/><model type='virtio'/></interface><console type='pty'><target type='serial'/></console><console type='pty'><target type='virtio'/></console><rng model='virtio'><backend model='random'/></rng></devices><on_poweroff>destroy</on_poweroff><on_reboot>destroy</on_reboot><on_crash>destroy</on_crash><features><acpi /></features>
<qemu:commandline><qemu:arg value='-drive'/><qemu:arg value='file=/home/yaoxin/vm-nvme/nvme.qcow2,format=qcow2,if=none,id=NVME1'/><qemu:arg value='-device'/><qemu:arg value='nvme,drive=NVME1,serial=nvme-1'/>
</qemu:commandline></domain>

QEMU 安装与使用相关推荐

  1. Ubuntu下Qemu安装Debian Mipsel

    一.去官网下载最新版本的Debian mipsel 1.Debian镜像下载地址 如果使用此版本,建议从头到尾一步一步跟着做 http://ftp.debian.org/debian/dists/st ...

  2. win10系统下利用QEMU安装ARM架构的银河麒麟桌面操作系统V10

    目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 前言 一.工具准备 二.安装 1.安装QEMU 2.安装虚拟机 3.下次启动虚拟机 4.主机与虚拟机传送文件 总 ...

  3. QEMU零知识学习5 —— QEMU安装

    接前一篇文章<QEMU零知识学习4 -- QEMU编译>,链接如下: QEMU零知识学习4 -- QEMU编译_蓝天居士的博客-CSDN博客 安装QEMU QEMU编译完成之后,运行&qu ...

  4. QEMU安装Ubuntu 20.04的完整过程

    零.环境介绍 宿主机: Ubuntu 22.04.1 LTS Ubuntu 20.04镜像: ubuntu-20.04.5-desktop-amd64.iso QEMU版本: qemu-img ver ...

  5. qemu安装android系统文档整理

    qemu安装android系统文档整理 准备工作 需要安装VMware Workstation Pro,Ubuntu 14.04.5 LTS,qemu开源虚拟机,android-x86-4.0-RC2 ...

  6. Linux学习记录(二)QEMU安装与Linux内核环境搭建

    Linux学习记录(二) 记录本人学习的过程和遇到的问题 QEMU安装与Linux内核环境搭建 Linux学习记录(二) 一.QEMU安装 1.什么是QEMU 2.QEMU安装 二.Linux内核环境 ...

  7. WIndows下使用Qemu安装Arm版Kylin系统

    提示:转载请注明出处 文章目录 前言 一.Qemu是什么? 二.操作步骤 1.环境准备 (1).qemu安装 (2).QEMU_EFI.fd:镜像启动时的BIOS. (3).ARM系统的.iso镜像: ...

  8. iso qemu 安装ubuntu_在 Ubuntu 6.06 上安装 qemu 和 kqemu(zz)

    首先从 http://fabrice.bellard.free.fr/qemu/download.html 下载 qemu-0.8.1-i386.tar.gz (Binary distribution ...

  9. iso qemu 安装ubuntu_基于libvirt 和QEMU在macOS安装Ubuntu

    在流行的虚拟架构体系中,最重要的技术当然要数libvirt和QEMU了.包括Linux虚拟化技术中KVM和xen都使用了QEMU.关于Xen和KVM进行虚拟化,以及在Window下使用Vmware,V ...

  10. KVM之初体验——QEMU安装虚拟机

    QEMU简介 QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor,  VMM).QEMU主要提供两种功能给用户使用.一是作为用户态模拟器,利用动态代码翻译机制来执 ...

最新文章

  1. Android开发笔记1.2
  2. php钩子的作用,php中的钩子理解及应用实例分析
  3. java中Logger.getLogger(Test.class)
  4. android学习笔记九——RatingBar
  5. C++爬虫项目爬取图片
  6. 20135202闫佳歆--week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程--实验及总结...
  7. 比较SynchronizedMap、Hashtable和ConcurrentHashMap的效率
  8. java兔子问题流程图_求龟兔赛跑的流程图 高手进来瞧瞧啊
  9. 选择导入过滤器endnote_EndNote 知网的 Import Filter (滤件制作实例) | 科研动力
  10. 2023福州大学计算机考研信息汇总
  11. 2018 Google 开发者大会.md
  12. idea运行maven无法下载jar并报错work offline
  13. 360浏览器打不开html5文件,360浏览器打不开oa_打不开360浏览器
  14. Java poi读取Excel表格中公式的计算值
  15. 仍是在思过崖攀爬的人
  16. centos8重启网卡服务
  17. RK3399 Android7.1设置fusb302或ET7301的PD协商电压和电流
  18. 大话人机混合智能中深度情境意识
  19. H5的video 在安卓浏览器上层级问题
  20. 在线JSON转YAML工具

热门文章

  1. 搭载TI最强芯片CC2652RB,昇润科技突破技术壁垒给你的电子产品“另一种心跳”
  2. IBM X系列服务器通过sysmgmt接口查看日志
  3. 高通wlan驱动之tgt_mgmt_txrx_rx_frame_handler函数
  4. 揭秘有状态服务上 Kubernetes 的核心技术
  5. clc和clear命令的使用
  6. 奇异值分解(SVD) --- 线性变换几何意义
  7. 计算机和机械类哪个工资高,机械工程师和软件工程师哪个工资高前景好?
  8. 机场安检 matlab实现,机场安检过程改进的方案.doc
  9. 谷歌的天敌竟然是亚马逊:从开放7-Mic阵列授权说起
  10. Directx 10 is not supported方法一