QEMU
QEMU是一款纯软件实现的虚拟化模拟器。通过QEMU模拟出各种硬件,可以让我们能够在这些硬件上运行各种虚拟机,并将虚拟机的指令转译给真正的硬件。
qemu是一个应用程序的集合。我们这里介绍一下会使用的几个应用程序。
qemu-img
qemu-img可以用来创建、转换、修改镜像。可以处理所有qemu支持的镜像格式。
Warning
不要使用qemu-img去修改一个正在运行虚拟机的镜像,可能会造成镜像损坏。另外,请注意,查询正在被另一个进程修改的映像可能会遇到不一致的状态。
其命令格式如下:
qemu-img [standard options] command [command options]我们只根据功能介绍一些用法。
创建映像文件
这里使用create命令来常见影响文件。完整的命令格式如下:
create [--object OBJECTDEF] [-q] [-f FMT] [-b BACKING_FILE [-F BACKING_FMT]] [-u] [-o OPTIONS] FILENAME [SIZE]创建一个新的磁盘影响文件,名为FILENAME,大小为SIZE,格式为FMT。上面的命令可以精简为:
create -f FMT FILENAME SIZE要启用更多的特性可以使用OPTIONS启用,这里就没有必要讲述了。
文件拷贝
使用dd命令来在两个不同格式的文件之间进行拷贝。完整的命令格式如下:
dd [--image-opts] [-U] [-f FMT] [-O OUTPUT_FMT] [bs=BLOCK_SIZE] [count=BLOCKS] [skip=BLOCKS] if=INPUT of=OUTPUT将格式为FMT的INPUT文件拷贝为格式为OUTPUT_FMT的OUTPUT文件中。
默认情况下,以块大小BLOCK_SIZE为512字节为单位来进行拷贝整个文件。但是可以通过参数修改BLOCK_SIZE的大小。如果设置了count=BLOCKS,那么在读取了BLOCKS个块之后就会停止读取了。
所以我们通常的命令格式为
dd -f FMT -O OUTPUT_FMT bs=BLOCK_SIZE count=BLOCKS if=INPUT of=OUTPUTqemu-system-x86_64
这是qemu的核心应用程序,虚拟机就是通过它创建的。
我们利用它来根据磁盘映像来启动一个虚拟机。
启动虚拟机
qemu-system-x86_64 linux.imglinux.img只要是一个安装了操作系统的磁盘映像文件即可。