zoukankan      html  css  js  c++  java
  • KVM命令使用

    convirt 的创建虚拟机命令:

    kvm -hda /nfs/rhel_150.disk.xm -cdrom /nfs/rhel-server-6.0-x86_64-dvd.iso -net nic,vlan=0,macaddr=00:16:3e:11:64:7f,model=rtl8139 -net tap,vlan=0,script=/etc/kvm/qemu-ifup-br0 -net nic,vlan=1,macaddr=00:16:3e:4a:3b:b0,model=rtl8139 -net tap,vlan=1,script=/etc/kvm/qemu-ifup-br0 -usb -boot c -m 2048 -vnc :20 -name rhel_150 -usbdevice tablet -smp 4 -monitor unix:/var/run/kvm/monitors/rhel_150,server,nowait -pidfile /var/run/kvm/pids/rhel_150 -daemonize

    -hda /nfs/rhel_150.disk.xm 使用的硬盘镜像

    -cdrom  /nfs/rhel-server-6.0-x86_64-dvd.iso 挂载的光盘镜像

    -net nic,vlan=0,macaddr=00:16:3e:11:64:7f,model=rtl8139  虚拟网卡0的网卡选项

    创建一个新的网卡并与VLAN n(在默认的情况下n=0)进行连接.在PC机上,NIC当前为NE2000.作为可选项的项目,MAC地址可以进行改变.如果没有指定-net选项,则会创建一个单一的NIC.

    -net tap,vlan=0,script=/etc/kvm/qemu-ifup-br0

     将TAP网络接口name与VLAN n进行连接,并使用网络配置脚本file进行配置.默认的网络配置脚本为/etc/qemu-ifup.如果没有指定name,OS 将会自动指定一个.fd=h可以用来指定一个已经打开的TAP主机接口的句柄.

    tap类型网络,相当于“桥模式”

    -net nic,vlan=1,macaddr=00:16:3e:4a:3b:b0,model=rtl8139 虚拟网卡1的网卡选项

    -net tap,vlan=1,script=/etc/kvm/qemu-ifup-br0

    -usb 支持usb设备 很快将变成默认的选项

    -boot c 启动顺序 c表示 光盘硬盘

    -m 2048 内存2048M

    -vnc :20  这里是在5920端口。client可用IP:20连接??

    -name rhel_150 虚拟机的别名,便于识别

    -usb -usbdevice tablet 启用usb设备中的tablet功能。开启该功能可使虚拟机内外的鼠标同步。

    -smp 4 vcpu个数为4个

    -monitor unix:/var/run/kvm/monitors/rhel_150,server,nowait

    重定向临视器到主机的设备dev(与串口相同的设备)。在图形模式下的默认设备为vc,而在非图形模式下为stdio

    -pidfile /var/run/kvm/pids/rhel_150

    在file文件中存许Qemu的进程PID.如果我们是由脚本启动的,这个选项是相当有用的.

    -daemonize

    守护进程化

    创建一个Win7的虚拟主机

    # qemu-kvm -m 1024 -localtime -M pc -smp 1 -drive file=Windows7_x86.img,cache=writeback,boot=on -net nic,macaddr=52:54:00:12:34:80 -net tap -cdrom Windows7.iso -boot d -name kvm-win7,process=kvm-win7 -vnc :2 -usb -usbdevice tablet

    s

    使用vnc

    # qemu-kvm -m 512 -hda xp.img -net nic,macaddr=00:00:11:33:02:02 /
    -net tap,ifname=tap2,script=/etc/init.d/qemu-ifup /
    -localtime -vnc 172.16.70.30:2 --daemonize

    上面让kvm虚拟机在后台运行,并启动vnc服务器,这样我们可以用vnc客户端链接172.16.70.30:5092这个地址。

    QEMU选项:

    一般选项

    -M machine
    选择模拟的机器(我们可以输入-M?提到一个模拟的机器列表)
    -fda file
    -fdb file
    使用file作为软盘镜像.我们也可以通过将/dev/fd0作为文件名来使用主机软盘.
    -hda file
    -hdb file
    -hdc file
    -hdd file
    使用file作为硬盘0,1,2,3的镜像.
    -cdrom file
    使用文件作为CD-ROM镜像(但是我们不可以同时使用'-hdc'和'-cdrom').我们可以通过使用'/dev/cdrom'作为文件名来使用主机的CD-ROM.
    -boot [a|c|d]
    由软盘(a),硬盘(c)或是CD-ROM(d).在默认的情况下由硬盘启动.
    -snapshot
    写入临时文件而不是写入磁盘镜像文件.在这样的情况下,并没有写回我们所使用的磁盘镜像文件.然而我们却可以通过按下C-a s来强制写回磁盘镜像文件.
    -m megs
    设置虚拟内存尺寸为megs M字节.在默认的情况下为128M.
    -smp n
    模拟一个有n个CPU的SMP系统.为PC机为目标,最多可以支持255个CPU.
    -nographic
    在通常情况下,Qemu使用SDL来显示VGA输出.使用这个选项,我们可以禁止所有的图形输出,这样Qemu只是一个简单的命令行程序.模拟的串口将会重定向到命令行.所以,我们仍然可以在Qemu平台上使用串口命令来调试Linux内核.
    -k language
    使用键盘布局语言(例如fr为法语).这个选项只有在不易得到PC键盘的情况下使用.我们在PC/Linux或是PC/Windows主机不需要使用这个选项.默认的为en-us,可用的布局如下:
    ar de-ch es fo fr-ca hu ja mk no pt-br sv
    da en-gb et fr fr-ch is lt nl pl ru th
    de en-us fi fr-be hr it lv nl-be pt sl tr
    -audio-help
    这个选项将会显示声音子系统的帮助:驱动列表以及可调用的参数.
    -soundhw card1,card2 .... or -soundhw all
    允许声音并选择声音硬件.使用?可以列出所有可用的声音硬件
    qemu -soundhw sb16,adlib hda
    qemu -soundhw es1370 hda
    qemu -soundhw all hda
    qemu -soundhw ?
    -localtime
    设置时钟为本地时间(默认为UTC时间).如果在MS-DOS或是Windows上这个选项则需要正确的日期.
    -full-screen
    以全屏方式启动.
    -pidfile file
    在file文件中存许Qemu的进程PID.如果我们是由脚本启动的,这个选项是相当有用的.
    -win2k-hack
    当安装Windows 2000时可以使用这个选项来避免磁盘错误.在安装上 Windows 2000系统,我们就不再需要这个选项(这个选项降低IDE的传输速度).

    USB选项

    -usb
    允许USB驱动(很快就将成为默认的选项)
    -usbdevice devname
    添加USB设备名.我们可以查看监视器命令usb_add来得到更为详细的信息.

    网络选项

    -net nic[,vlan=n][,macaddr=addr]
    创建一个新的网卡并与VLAN n(在默认的情况下n=0)进行连接.在PC机上,NIC当前为NE2000.作为可选项的项目,MAC地址可以进行改变.如果没有指定-net选项,则会创建一个单一的NIC.
    -net user[,vlan=n]
    使用用户模式网络堆栈,这样就不需要管理员权限来运行.如果没有指定-net选项,这将是默认的情况.
    -net tap[,vlan=n][,fd=h][,ifname=name][,script=file]
    将TAP网络接口name与VLAN n进行连接,并使用网络配置脚本file进行配置.默认的网络配置脚本为/etc/qemu-ifup.如果没有指定name,OS 将会自动指定一个.fd=h可以用来指定一个已经打开的TAP主机接口的句柄.例如:
    qemu linux.img -net nic -net tap

    下面的是一个更为复杂的例子(两个NIC,每一个连接到一个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 socket 将VLAN n与远程的另一个Qemu虚拟机的VLAN进行连接.如果指定了listen,Qemu将在port端口监听连入请求(host是可选的), connect可以用来使用listen选项与另一个Qemu实例进行连接.fd=h指定了一个已经打开的TCP socket.例如:
    # launch a first QEMU instance
    qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234
    # connect the VLAN 0 of this instance to the VLAN 0 of the first instance
    qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net
    socket,connect=127.0.0.1:1234
    -net socket[,vlan=n][,fd=h][,mcast=maddr:port]
    创建一个VLAN n,并使用UDP 多址通信套掊口与其他的QEMU虚拟机进行共享,尤其是对于每一个使用多址通信地址和端口的QEMU使用同一个总线. 在这里我们要注意以下几点:
    • 几个QEMU可以运行在不同的主机上但却使用同一个总线(在这里假设为这些主机设置了正确的多址通信)
    • mcast支持是与用户模式Linux相兼容的.
    • 使用fd=h指定一个已经打开的UDP 多址通信套接口.

      例如:

    # launch one QEMU instance
    qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net
    socket,mcast=230.0.0.1:1234
    # launch another QEMU instance on same "bus"
    qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net
    socket,mcast=230.0.0.1:1234
    # launch yet another QEMU instance on same "bus"
    qemu linux.img -net nic,macaddr=52:54:00:12:34:58 -net
    socket,mcast=230.0.0.1:1234

    下面的为用户模式Linux的例子:

    # launch QEMU instance (note mcast address selected is UML's default)
    qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net
    socket,mcast=239.192.168.1:1102
    # launch UML
    /path/to/linux ubd0=/path/to/root_fs eth0=mcast
    -net none
    表明没有网络设备需要进行配置.如果没有指定-net选项,则会用来覆盖活跃的默认配置.
    -tftp prefix
    当使用用户模式网络堆栈,激活一个内置的TFTP服务器.所有的以 prefix开始的文件将会使用一个TFTP客户端从主机下载到本地.在本地的TFTP客户端必须以二进制模式进行配置(使用Unix的TFTP客户端的bin命令).在客户机上的主机IP地址如通常的10.0.2.2.
    -smb dir
    -redir [tcp|udp]:host-port:[guest-host]:guest-port
    当使用用户模式网格栈,将连接到主机端口host-port的TCP或是UDP 连接重定向到客户机端口guest-port上。如果没有指定客户机端口,他的值为10.0.2.15(由内建的DHCP服务器指定默认地址)。例如:要重定向从screen 1到客户机screen 0的X11连接,我们可以使用下面的方法:
    # on the host
    qemu -redir tcp:6001::6000 [...]
    # this host xterm should open in the guest X11 server
    xterm -display :1
    To redirect telnet connections from host port 5555 to telnet port on
    the guest, use the following:

    # on the host
    qemu -redir tcp:5555::23 [...]
    telnet localhost 5555

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

    http://www.xtgly.com/2011/07/14/kvm%E4%B9%8Bqemu-kvm%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B8%B8%E7%94%A8%E5%8F%82%E6%95%B0.htm

    http://blog.csdn.net/ustc_dylan/article/details/5385691

  • 相关阅读:
    使用tcmalloc编译启动时宕机
    使用tcmalloc编译出现undefined reference to `sem_init'
    使用AddressSanitizer做内存分析(一)——入门篇
    VIM-美化你的标签栏
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
    Entity Framework Code First (一)Conventions
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2341588.html
Copyright © 2011-2022 走看看