qemu详细教程,qemu入门

  qemu详细教程,qemu入门

  Qemu用户手册

  快速启动

  下载并解压缩linux映像(linux.img)后,我们可以通过输入以下命令来启动它:

  qemu linux.img

  这将启动Linux并向我们显示一个提示。

  转移

  用法:QEMU[选项][磁盘映像]

  Disk_image是IDE硬盘的硬盘映像。

  常规选项:

  -M机器

  选中的机器(我们可以输入-M?提及模拟机器列表)

  -fda文件

  -fdb文件

  使用文件作为软盘映像。我们也可以通过使用/dev/fd0作为文件名来使用主机软盘。

  -hda文件

  -hdb文件

  -hdc文件

  -硬盘文件

  使用文件作为硬盘0,1,2,3的镜像。

  -cdrom文件

  使用文件作为光盘镜像(但是我们不能同时使用-hdc 和-cdrom )。我们可以通过使用“/dev/cdrom”作为文件名来使用主机的光盘。

  -boot

  通过软盘(A)、硬盘(C)或光盘(d)。默认情况下,由硬盘启动。

  -快照

  写入临时文件,而不是磁盘映像文件。在这种情况下,我们使用的磁盘映像文件不会被写回。但是,我们可以通过按C-A S来强制写回磁盘映像文件.

  -米格斯

  将虚拟内存大小设置为megs M bytes,默认为128M。

  -smp n

  模拟一个有N个CPU的SMP系统,最多可以支持255个CPU。

  -无图形

  正常情况下,Qemu使用SDL来显示VGA输出。使用这个选项,我们可以禁用所有图形输出,所以Qemu只是一个简单的命令行程序。模拟的串行端口将被重定向到命令行。因此,我们仍然可以使用串口命令在Qemu平台上调试Linux内核。

  -k语言

  使用键盘布局语言(例如,fr是法语)。这个选项只能在很难得到PC键盘的时候使用。我们不需要在PC/Linux或PC/Windows主机上使用这个选项。可用的布局如下:

  你从法国回来了吗

  从英国到法国是很少的

  我们将永远在一起

  默认为en-us。

  -音频帮助

  该选项将显示声音子系统的帮助:驱动程序列表和可调用参数。

  -声音硬件卡1、卡2.或-soundhw all

  允许声音并选择声音硬件。使用?您可以列出所有可用的声音硬件。

  qemu -soundhw sb16,adlib hda

  qemu -soundhw es1370 hda

  qemu -soundhw all hda

  qemu -soundhw?

  -当地时间

  将时钟设置为本地时间(默认为UTC时间)。此选项需要MS-DOS或Windows上的正确日期。

  -全屏

  以全屏模式启动。

  -pidfile文件

  将Qemu的进程PID保存在文件中。如果我们从一个脚本开始,这个选项非常有用。

  -win2k-hack

  安装Windows 2000时,可以使用该选项来避免磁盘错误。在安装Windows 2000的时候,我们已经不需要这个选项了(这个选项拖慢了IDE的传输速度)。

  USB选项:

  -usb

  允许USB驱动器(将很快成为默认选项)

  -USB设备设备名称

  添加USB设备名称。我们可以查看监视器命令usb_add以了解更多详细信息。

  网络选项:

  -net nic[,vlan=n][,macaddr=addr]

  创建一个新的网卡,并将其连接到VLAN n(默认情况下,n=0)。在PC上,当前的网卡是NE2000。作为可选项目,可以更改MAC地址。如果未指定-net选项,将创建单个NIC。

  -网络用户[,vlan=n]

  使用用户模式的网络堆栈,因此不需要管理员权限就可以运行它。如果不指定-net选项,这将是默认选项。

  -net tap[,vlan=n][,fd=h][,ifname=name][,script=file]

  将TAP网络接口名称连接到VLAN n,并使用网络配置脚本文件进行配置。默认的网络配置脚本是/etc/qemu-ifup。如果未指定名称OS,OS将自动指定一个. fd=h,用于指定开放TAP主机接口的句柄。例如:

  qemu linux.img -net nic -net tap

  下面是一个更复杂的例子(两个网卡,每个都连接到一个TAP设备):

  qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 /

  -net nic,vlan=1 -net tap,vlan=1,ifname=tap1

  -net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]

  使用TCP套接字连接VLAN和另一个远程Qemu虚拟机的VLAN。如果指定了listen,QEMU将在端口port monitor (host是可选的)上连接请求,通过使用listen选项,可以使用connect连接另一个Qemu实例。fd=h指定一个开放的TCP套接字。例如:

  #启动第一个QEMU实例

  qemu linux.img -net nic,MAC addr=52:54:00:12:34:56-net socket,listen=:1234

  #将此实例的VLAN 0连接到第一个实例的VLAN 0

  qemu linux.img -net nic,MAC addr=52:54:00:12:34:57-net socket,connect=127.0.0.1:1234

  -net套接字[,vlan=n][,fd=h][,mcast=maddr:port]

  创建一个VLAN n,使用UDP组播socket与其他QEMU虚拟机共享,特别是对于每个使用组播地址和端口使用同一总线的QEMU。

  这里我们要注意以下几点:

  几个QEMU可以运行在不同的主机上,但是使用相同的总线(这里假设为这些主机设置了正确的多路访问通信)。

  2 mcast支持与用户模式Linux兼容。

  使用fd=h来指定一个开放的UDP多播windows套接字。

  例如:

  #启动一个QEMU实例

  qemu linux.img -net nic,MAC addr=52:54:00:12:34:56-net socket,mcast=230.0.0.1:1234

  #在同一“总线”上启动另一个QEMU实例

  qemu linux.img -net nic,MAC addr=52:54:00:12:34:57-net socket,mcast=230.0.0.1:1234

  #在同一“总线”上启动另一个QEMU实例

  qemu linux.img -net nic,MAC addr=52:54:00:12:34:58-net socket,mcast=230.0.0.1:1234

  以下是用户模式Linux的一个示例:

  #启动QEMU实例(注意选择的mcast地址是UML的默认地址)

  qemu linux.img -net nic,MAC addr=52:54:00:12:34:56-net socket,mcast=239.192.168.1:1102

  #启动UML

  /path/to/Linux ubd 0=/path/to/root _ fs eth 0=mcast

  -净无

  表示不需要配置任何网络设备。如果未指定-net选项,它将用于覆盖活动的默认配置。

  -tftp前缀

  使用用户模式网络堆栈时,激活内置的TFTP服务器。使用TFTP客户端将所有以前缀开头的文件从主机下载到本地。本地TFTP客户端必须以二进制模式配置(使用Unix的TFTP客户端的bin命令)。客户端上的主机IP地址通常是10.0.2.2。

  -中小型企业目录

  使用用户模式网络堆栈时,激活内置SMB服务器,以便Windows系统可以透明地访问主机的dir目录中的文件。在客户端的Windows系统中,下面一行:

  服务器

  它必须添加到文件C:/Windows/LMHosts(对于Windows 9X/ME)或C:/win NT/system32/drivers/etc/LMHosts(对于Windows NT/2000)中。然后就可以用//smbserver/qemu的方式访问dir了。这里要注意的是,SAMBA服务器必须安装在主机系统中。

  -redir [tcpudp]:主机端口:[来宾主机]:来宾端口

  使用用户模式网格堆栈时,将连接到主机端口的TCP或UDP连接重定向到来宾端口。如果未指定客户端端口,则其值为10.0.2.15(默认地址由内置DHCP服务器指定)。例如:要将X11连接从屏幕1重定向到客户端屏幕0,我们可以使用以下方法:

  #在主机上

  qemu -redir tcp:6001:6000 [.]

  #该主机xterm应在来宾X11服务器中打开

  xterm-显示:1

  要将telnet连接从主机端口5555重定向到guest虚拟机上的telnet端口,请使用以下命令:

  #在主机上

  qemu -redir tcp:5555:23 [.]

  telnet本地主机5555

  然后,当我们在主机telnet localhost 5555上使用它时,我们连接到客户机的telnet服务器。

  Linux启动相关:

  当我们使用这些选项时,我们可以使用一个指定的内核,而无需将其安装在磁盘映像中。这对于简单地测试各种内核非常有用。

  `-内核bzImage

  使用bzImage作为内核映像。

  `-追加命令行

  使用cmdline作为内核的命令行。

  -initrd文件

  使用文件作为初始ram磁盘。

  调试选项:

  `-串行开发

  将虚拟字符串重定向到主机的设备dev。可用设备如下:

  风险投资

  虚拟终端

  巴拿马城(Panama City)

  (Linux)伪TTY(自动分配一个新的TTY)

  空

  空设备

  /dev/XXX

  (Linux)使用主机的tty。例如,“/dev/ttys0”。主机的串口参数通过仿真设置。

  /dev/parportN

  (Linux)使用主机的并行端口n。目前,只能使用SPP的并行端口功能。

  文件:文件名

  将输出写入文件filename。没有可读的字符。

  标准输入输出

  (Unix)标准输入/输出

  管道:文件名

  (Unix)已知管道文件名

  在图形模式下,默认设备是vc,而在非图形模式下,默认设备是stdio。该选项可多次使用,最多可模拟4个串行端口。

  “并行开发”

  将虚拟并行端口重定向到主机设备dev(与串行端口相同的设备)。在Linux主机上,`/dev/parportN 可以用来使用连接到相应并行端口的硬件设备。此选项可多次使用,最多可模拟3个并行端口。

  `-监控开发

  将查看器重定向到主机设备dev(与串行端口相同的设备)。图形模式下的默认设备是vc,而非图形模式下是stdio。

  -s

  等待gdb连接到1234端口。

  `-p端口

  更改gdb连接端口。

  `-S

  CPU在启动时不启动(我们必须在监视器中输入‘C ’)

  -迪

  将日志输出到/tmp/qemu.log。

  `-hdachs c,h,s,[,t]

  使硬盘物理参数为0 (1=c=16383,1=h=16,1=s=63),选择强制BIOS转换模式(t=none,lba或auto)。通常QEMU可以检测这些参数。这个选项对于旧的MS-DOS磁盘映像非常有用。

  `-标准vga

  模拟带有Bochs VBE扩展的标准VGA显卡(默认为Cirrus Logic GD5446 PCI VGA)

  `-loadvm文件

  从保存的状态开始。

  组合键

  在图形模拟中,我们可以使用以下组合键:

  Ctrl-Alt-f

  全屏幕

  Ctrl-Alt-n

  切换虚拟终端“n”。标准端子映射如下:

  1目标系统显示

  2视觉设备

  3个串行端口

  Ctrl-Alt

  抓住鼠标和键盘。

  在虚拟控制台中,我们可以使用Ctrl-Up、Ctrl-Down、Ctrl-PageUp和Ctrl-PageDown在屏幕上移动。

  在模拟过程中,如果我们使用`-nographic 选项,我们可以使用Ctrl-a h来获得终端命令:

  Ctrl-a h

  打印帮助信息

  Ctrl-a x

  退出模拟

  Ctrl-a s

  将磁盘信息保存到文件中(如果是-快照)

  Ctrl-a b

  发出中断。

  Ctrl-a c

  在控制台和显示器之间切换。

  Ctrl-a Ctrl-a

  发送Ctrl-a

  磁盘映像

  从0.6.1开始,QEMU支持多种磁盘映像格式,包括增长磁盘映像、压缩和加密磁盘映像。

  我们可以使用以下命令创建磁盘映像:

  QEMU-img create my image . img my size

  这里myimage.img是磁盘镜像的文件名,mysize是k表示的大小,我们可以用m前缀来表示大小,或者用g前缀来表示大小。

  qemu-img的调用方法:

  方法:QEMU-img命令[命令选项]

  可以支持以下一些命令:

  `创建[-e] [-b基本映像] [-f fmt]文件名[大小]

  `提交[-f fmt]文件名

  ` convert [-c] [-e] [-f fmt]文件名[-O output_fmt]输出文件名

  ` info [-f fmt]文件名

  命令参数

  文件名

  磁盘映像文件名。

  基本图像

  只读磁盘映像可以作为拷贝写入映像的基础。写入时拷贝映像仅存储修改过的数据。

  滤波多音

  磁盘格式。大多数情况下可以自动检测到。可以支持以下格式:

  生的

  原始磁盘格式(默认)。这种格式简单,易于移植到其他模拟器上。如果我们的文件系统支持漏洞(比如Linux上的ext2或ext3),那么只有写入的部分会保持空白。使用qemu-img info获取映像的实际大小,或者在Unix/Linux上使用ls -ls。

  格式

  QEMU图像格式。最常见的格式。你可以通过使用它得到一个更小的图像(如果我们的文件系统不支持孔,例如,在Windows上,这是相当有用的)。可以选择基于zlib的AES加密或压缩。

  母牛

  写映像格式的用户模式的Linux副本。它在QEMU中被用作一种增强的图像格式。此选项只是为了与以前的版本兼容,不能在Win32上使用。

  虚拟机磁盘文件

  VMware 3或4兼容的图像格式。

  砰声

  Linux压缩的圆形镜像,直接复用压缩的光盘镜像。

  大小

  k表示的磁盘镜像的大小,同时可以支持M或G作为前缀。

  输出文件名

  目标磁盘映像文件名

  输出_fmt

  目标格式

  -丙

  表示目标图像必须压缩(仅限qcow格式)

  -e

  表示目标映像必须加密(仅采用qcow格式)

qemu详细教程,qemu入门