写时复制(copy-on-write,缩写COW)技术不会对原始的镜像文件做更改,变化的部分写在另外的镜像文件中,这种特性在qemu中只有QCOW格式支持,多个 COW 文件可以指向同一映像同时测试多个配置, 而不会危及基本系统。

下面以windows2003为例介绍使用过程,首先安装windows2003,然后制作COW镜像,这样用一个基本的windows2003系统,可以用户安装不同的应用环境,避免重复安装操作系统。

环境

宿主机:windows 10 pro
qemu版本:3.1
客户机:windows2003

第一步:创建qcow2磁盘,作为系统盘

qemu-img.exe create -f qcow2 win2003base.qcow2 40G

创建一个 40G的qcow2文件作为系统磁盘,将来是COW的基础镜像。

第二步:安装操作系统

qemu-system-x86_64.exe -L . -m 1024 -machine accel=hax,usb=on -device usb-tablet -cdrom .\Win2003entsp2.iso -hda .\win2003base.qcow2 -boot order=dc,menu=on

临时增加win.img 安装virtio驱动(安装virtio不是必须的,只是为了获得更好的性能)

c:qemu-system-x86_64.exe -L . -m 1024 -machine accel=hax,usb=on -device usb-tablet -hda .\win2003base.qcow2 -boot order=dc,menu=on -drive file=win.img,format=qcow2,if=virtio -cdrom virtio-win-0.1.141.iso

将系统盘改为virtio

qemu-system-x86_64.exe -L . -m 1024 -machine accel=hax,usb=on -device usb-tablet -boot order=dc,menu=on -drive file=win2003base.qcow2,format=qcow2,if=virtio

第三步:创建一个引用镜像win2003_viclient.qcow2

qemu-img create -f qcow2 -b win2003base.qcow2 win2003_viclient.qcow2

-b参数是制定backing_file,即基础镜像或原始镜像。win2003_viclient.qcow2,只有193kb,将win2003base.qcow2修改为只读文件,确保不会被修改。

第四步:将win2003_viclient.qcow2改为系统盘,引导系统,在其中安装vmware-vilient-4.1,系统只会修改COW镜像文件,运行时要确保基础镜像存在

qemu-system-x86_64.exe -L . -m 1024 -machine accel=hax,usb=on -device usb-tablet -boot order=dc,menu=on -drive file=win2003_viclient.qcow2,format=qcow2,if=virtio

 其他命令:
查看COW镜像信息

qemu-img info --backing-chain win2003_viclient.qcow2

重新指定基础镜像

qemu-img rebase -b another.qcow2 win2003_viclient.qcow2

合并镜像,将cow合并到基础镜像(合并前可以先复制基础镜像rebase之后再合并)

qemu-img commit win2003_viclient.qcow2

参考文档:

https://www.unixmen.com/qemu-kvm-using-copy-write-mode/

qemu使用copy-on-write(COW)磁盘的更多相关文章

  1. 8,SSO,,eager copy,COW

    针对字符串不同的长度,“编译器”选择不同的优化策略:SSO, eager copy,COW,分别针对短字符串,中等长度字符串,长字符串.不过,现在(2016)的大多数编译器(gcc 4.9.1,vs2 ...

  2. QEMU简单知识 以及磁盘格式转换的简单命令

    From 百度百科 QEMU,是由 Fabrice Bellard开发的通用.开源机器模拟与虚拟化软件,Fabrice Bellard是另一个著名的C编译器的作者.QEMU可以在不同的机器上运行独自开 ...

  3. QEMU/KVM磁盘在线备份

    QEMU/KVM磁盘的在线完整及增量备份,是"打包"方案的一种具体实现,可实现基于时间点的备份,同时支持本地与远程2种备份方式,并可指定备份文件进行恢复. tag: qemu, k ...

  4. KVM虚拟化技术(六)磁盘管理

    KVM支持的虚拟磁盘类型 raw 这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像:它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案,然而也正因为 它不存储元数据,因此不能支持某些高 ...

  5. KVM(七)使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照

    本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对 QEMU/KVM 虚机做快照的过程. 1. QEMU/KVM 快照 1.1 概念 QE ...

  6. 理解 QEMU/KVM 和 Ceph(2):QEMU 的 RBD 块驱动(block driver)

    本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...

  7. 网络IO和磁盘IO详解

    1. 缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O.在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址 ...

  8. DMA/Zero copy

    DMA: 直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式.在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就 ...

  9. [转帖]QEMU和QEMU-KVM的关系

    QEMU和QEMU-KVM的关系 https://blog.csdn.net/shengxia1999/article/details/52244119   版权声明:本文为博主原创文章,未经博主允许 ...

  10. QEMU,KVM及QEMU-KVM介绍

    What's QEMU QEMU是一个主机上的VMM(virtual machine monitor),通过动态二进制转换来模拟CPU,并提供一系列的硬件模型,使guest os认为自己和硬件直接打交 ...

随机推荐

  1. python3 pygame 坦克自动移动

    让坦克自动跑起来 这里需要一个坦克的图. 放到与脚本同一目录. 好,我们就让这个坦克自动跑. 下面上代码: # !/usr/bin/env python # -*- coding:utf-8 -*- ...

  2. 【Educational Codeforces Round 31 A】Book Reading

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 水模拟 [代码] #include <bits/stdc++.h> using namespace std; const ...

  3. 51NOD——N 1107 斜率小于0的连线数量

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 ...

  4. IQMath是什么 浮点转定点运算,dsp

    [转帖注明出处:blog.csdn.net/lanmanck] 网上搜了一下没发现非常合适的,特写出来与大家分享. 大家都知道嵌入式系统里带浮点运算指令的CPU都比較少,TI的DSP也是定点的廉价. ...

  5. 算法练习--二分搜索哈希表-JS 实现

    1. 以哈希KEY的值建立二叉哈希表 2. 依据传入的哈希值使用二分法搜索 详细实现例如以下: function binarySearchTable(comp){ this.comp = comp; ...

  6. 贝叶斯统计(Bayesian statistics) vs 频率统计(Frequentist statistics):marginal likelihood(边缘似然)

    1. Bayesian statistics 一组独立同分布的数据集 X=(x1,-,xn)(xi∼p(xi|θ)),参数 θ 同时也是被另外分布定义的随机变量 θ∼p(θ|α),此时: p(X|α) ...

  7. Lucene学习总结之一:全文检索的基本原理 2014-06-25 14:11 666人阅读 评论(0) 收藏

    一.总论 根据http://lucene.apache.org/java/docs/index.html 定义: Lucene 是一个高效的,基于Java 的全文检索库. 所以在了解Lucene之前要 ...

  8. 用IBM WebSphere DataStage进行数据整合: 第 1 部分 分类: H2_ORACLE 2013-08-23 11:20 688人阅读 评论(0) 收藏

    转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0602zhoudp/ 引言 传统的数据整合方式需要大量的手工 ...

  9. 学习Numpy基础操作

    # coding:utf-8 import numpy as np from numpy.linalg import * def day1(): ''' ndarray :return: ''' ls ...

  10. dmalloc在嵌入式的开发板上的应用

    下面是我实际在开发环境里面做的dmalloc移植时候的一些随笔 配置PC的dmalloc环境1. 首先把源码包打开,进入dmalloc文件夹2. ./configure 配置Makefile,我是加了 ...