当前位置:首页 » 服务存储 » qemu虚拟存储命令
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

qemu虚拟存储命令

发布时间: 2022-05-15 14:38:25

1. kvm 创建虚拟机qemu-kvm 和virt-install的区别

首先要了解qemu和libvirt。
QEMU(Quick Emulator) 是一个广泛使用的开源计算机 仿真器和虚拟机。是一款免费的、开源的、纯软件实现的、可执行硬件虚拟化的 VMM。
libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API,本质上是一些被提供的库函数(C语言), 它引用了面向驱动的架构设计, 对所有的虚拟化技术都提供了相应的驱动和统一的接口, 用于管理物理机的虚拟机。 Libvirt 具有非常强的可扩展性, 可供本地或远程的 virsh 调用。
qemu-kvm 命令属于QEMU,virt-install命令属于libvirt。libvirt调用qemu-kvm来管理虚拟机。如果Hypervisor是KVM,命令参数不一样而已,没区别。

2. 如何在VMware workstations的虚拟机上运行qemu

虚拟机通常只VMware、MicrosoftVirtualPC等工具,可以用他们来模拟PC,你可以在虚拟机里面装上WindowsXP来研究各种病毒而不必担心会感染真正的系统,也常用来学习Linux。虚拟机的硬盘在你真正的系统上是一个或者几个文件,备份还原转移都很方便。模拟器通常指模拟以前的游戏机的程序,用它们可以玩很多以前经典的游戏,比如红白机模拟器、PS模拟器、GBA模拟器,这样我们就可以在电脑上玩一些经典的游戏了。比如街霸啊超级玛丽啊拳皇啊合金弹头啊宠物小精灵之类的从本质上讲,虚拟机和模拟器没有区别,他们都是用PC的CPU内存和硬盘空间来模拟出一个新的环境,只是他们模拟的环境不一样而已。在实际的使用中,因为模拟器仅仅用于玩游戏,而虚拟机可以很方便的让你在一个WindowsXP中体验诸多其它的系统,所以很多人就觉得虚拟机比模拟器强大。殊不知模拟一个PS2/PSP的环境比模拟一个XP难上千倍,因为要模拟出不同架构的环境,虚拟的效率极低,目前的电脑尚达不到性能上的要求。

3. kvm和qemu的关系 kvm为什么没有做io虚拟化 半虚拟化和全虚拟化的区别 kvm是否在内

不同的基于KVM的虚拟化平台,可能会采用不同的虚拟化组件,目前主流的采用QEMU-KVM组件,但在不同的产品里版本有所不同,功能也有差异,下面就几个概念进行梳理下


KVM:Kernel-Based Virtual Machine 基于内核的虚拟机,是Linux内核的一个可加载模块,通过调用Linux本身内核功能,实现对CPU的底层虚拟化和内存的虚拟化,使Linux内核成为虚拟化层,需要x86架构的,支持虚拟化功能的硬件支持(比如Intel VT,AMD-V),是一种全虚拟化架构。KVM在2007年年2月被导入Linux 2.6.20内核中。从存在形式来看,它包括两个内核模块:kvm.ko 和 kvm_intel.ko(或kvm_amd.ko),本质上,KVM是管理虚拟硬件设备的驱动,该驱动使用字符设备/dev/kvm(由KVM本身创建)作为管理接口,主要负责vCPU的创建,虚拟内存的分配,vCPU寄存器的读写以及vCPU的运行。


QEMU:是一套由Fabrice Bellard编写的模拟处理器的自由软件,它是一个完整的可以单独运行的软件,可以独立模拟出整台计算机,包括CPU,内存,IO设备,通过一个特殊的“重编译器”对特定的处理器的二进制代码进行翻译,从而具有了跨平台的通用性。QEMU有两种工作模式:系统模式,可以模拟出整个电脑系统,另一种是用户模式,可以运行不同与当前硬件平台的其他平台上的程序(比如在x86平台上运行跑在ARM平台上的程序);其代码地址 http://git.qemu.org/qemu.git ,有兴趣的同学可以自己去看看,目前最新的版本是2.7.0,在0.9.1及之前版本还可以使用kqemu加速器(可以理解为QEMU的一个插件,用来提高QEMU的翻译性能,支持Windows平台),但1.0以后版本就只能使用qemu-kvm(只支持Linux)进行加速了,1.3版本后QEMU和QEMU-KVM合二为一了。


QEMU-KVM:从前面对KVM内核模块的介绍知道,它只负责CPU和内存的虚拟化,加载了它以后,用户就可以进一步通过工具创建虚拟机(KVM提供接口),但仅有KVM还是不够的,用户无法直接控制内核去做事情(KVM只提供接口,怎么创建虚拟机,分配vCPU等并不在它上面进行),还必须有个运行在用户空间的工具才行,KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,并对其进行了修改,最后形成了QEMU-KVM。

在QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建,管理各种虚拟硬件,QEMU将KVM整合了进来,通过/ioctl 调用 /dev/kvm,从而将CPU指令的部分交给内核模块来做,KVM实现了CPU和内存的虚拟化,但kvm不能虚拟其他硬件设备,因此qemu还有模拟IO设备(磁盘,网卡,显卡等)的作用,KVM加上QEMU后就是完整意义上的服务器虚拟化

当然,由于qemu模拟io设备效率不高的原因,现在常常采用半虚拟化的virtio方式来虚拟IO设备,另文再谈

综上所述,QEMU-KVM具有两大作用:

1.提供对cpu,内存(KVM负责),IO设备(QEMU负责)的虚拟

2.对各种虚拟设备的创建,调用进行管理(QEMU负责)


libvirt

顺带提一提libvirt,这是RedHat开始支持KVM后,大概是觉得QEMU+KVM方案中的用户空间虚拟机管理工具不太好用或者通用性不强,所以干脆搞了个libvirt出来,一个针对各种虚拟化平台的虚拟机管理的API库,一些常用的虚拟机管理工具如virsh(类似vim编辑器),virt-install,virt-manager等和云计算框架平台(如OpenStack,OpenNebula,Eucalyptus等)都在底层使用libvirt提供的应用程序接口。

libvirt主要由三个部分组成:API库,一个守护进程 libvirtd 和一个默认命令行管理工具 virsh。


总结:

目前来说,QEMU是一个独立的虚拟化解决方案,并不依赖KVM(它本身自己可以做CPU和内存的模拟,只不过效率较低),而KVM是另一套虚拟化解决方案,对CPU进行虚拟效率较高(采用了硬件辅助虚拟化),但本身不提供其他设备的虚拟化,借用了QEMU的代码进行了定制,所以KVM方案一定要依赖QEMU

即使后来RedHat后来开发了libvirt,也只能简单的认为是个虚拟机管理工具,仍然需要通过用户空间QEMU来与KVM进行交互


4. 最新windows版qemu虚拟机使用技巧

RedflagWorkstation下已经带了QEMU
#QEMU-imgcreatewindows.img2G#这个就是创建虚拟机磁盘,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬盘
-cdrom指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径
-m是指定虚拟机使用的内存大小,如512M
-boot指定虚拟机启动用的设备,-boot后可以选择的参数是a,c,d.其中a是指从软盘启动,c就是用硬盘启动,d是光驱启动。
-enable-audio
-localtime使用实际主板bios上的时间。
应该可以顺利的进入虚拟机了,并开始安装了。
RedflagWorkstation下已经带了QEMU
#QEMU-imgcreatewindows.img2G#这个就是创建虚拟机磁盘,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬盘
-cdrom指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径
-m是指定虚拟机使用的内存大小,如512M
-boot指定虚拟机启动用的设备,-boot后可以选择的参数是a,c,d.其中a是指从软盘启动,c就是用硬盘启动,d当然就是光驱启动了。
-enable-audio
-localtime使用实际主板bios上的时间。
应该可以顺利的进入虚拟机了,并开始安装了。
安装过程中,要求换盘:在QEMU中按ctrl alt 2切换到QEMUmonitor模式输入?或help可以查看可用命令及使用说明。(在其他版本的QEMU中,运行QEMU加载OS后,这个shell就会自动变成QEMUmonitor模式)
changedevicefilename—changearemovablemedia
如changecdrom/tmp/xp1.iso
常用的快捷键:
ctrl alt F全屏切换
ctrl alt鼠标在虚拟机和主机间切换
虚拟机上网设置两种方式:
1.usermodenetwork:
这种方式实现虚拟机上网很简单,类似vmware里的nat,QEMU启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
2.tap/tunnetwork:
这种方式要比usermode复杂一些,但是设置好后虚拟机互联网虚拟机主机通信都很容易
这种方式设置上类似vmware的host-only,QEMU使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.

dora 5 下的qemu安装使用qemu是最近出现的一种新的虚拟机,本身小巧的系 统和linux的加速器,使它一经面世就受到了热烈的欢迎,国内也有不少用户,但没有一篇完整的文章介 绍,使许多人走了不少弯路,其实,安装是比较简单的,较为复杂的部分是在网络部分,下面,就以 Fedora 5加kernel 2.6.17.4做为主机详细介绍qemu的安装和使用
一.安装
下载
qemu最新版是0.81,同时下载加速器kmenu,最新版是1.3
http://fabrice.bellard.free.fr/qemu/download.html
先安装Kqemu
$ tar zxvf kqemu-1.3.0pre9.tar.gz
$ cd kqemu-1.3.0pre9
$ su root
# ./configure
# make
# make install

然后安装qemu
# tar zxvf qemu-0.8.1.tar.gz
# cd qemu-0.8.1
#./configure --prefix=/usr/local --enable-kqemu --enable-user --enable-alsa --disable-gcc-check
说明:
--enable-user 可以允许系统下的所有用户使用Qemu
--enable-alas 可以允许系统共享系统的声音系统
--disable-gcc-check 因为wqemu默认是使用gcc3.2,我的系统gcc已经升级到了4.1,所有禁止了qemu对gcc的检查
#make
#make install
经过以上的操作,加速器和qemu都已经安装完成了。

二.创建新的img
用户可以将img文件创建到任意位置,只要有足够的空间就行。
# mkdir win2kp
# cd win2k
# qemu-img create win2k.img 2G
Formating 'win2k.img', fmt=raw, size=2097152 kB
2G是指定虚拟机的硬盘大小的
三.网络的设置
国 内的很多人都讲加参数就如何可以使用网络,但实际远没那么简单,我就是一开始看了网络上某人的贴子,结果是反反复复,网络一直不能正常工作,后来从 qemu的网站上下了所有的doc才搞定(比如有人发的贴都是使用-user-net就可以上网了,不但把语法写错了,而且只有这个参数根本就上不了 网!),在此我只说最复杂的部分,就是主机<->虚拟机<->internet全通的模式。
这种方式是使用tun/tap模式,必须崾内核的支持,主机上会增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.
首先查看你的内核是否支持tun设备:
#ls -l /lib/moles/2.6.17.4/kernel/drivers/net/tun.ko
如果存在,则执行下面的命令,否则重新编译模块。
#modprobe tun

这时检查moles:
#lsmod |grep tun
tun 10240 1
tun 加载成功以后,要手工编辑一个shell.而且必须放在/etc下,文件名必须是qemu-ifup.最后要记得给脚本加上执行权限,如果要允许系 统下的所有用户使用,还必须更改脚本的权限,并在脚本中的命令前加上sudo,下面是是个完整的,给所有用户使用的脚本。

#vi /etc/qemu-ifup :
#!/bin/sh
sudo /sbin/ifconfig $1 192.168.10.1
sudo route add -host 192.168.10.100 dev $1
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

#chmod a+x /etc/qemu-ifup

四.安装虚拟系统
虚拟机的启动有很多选项,下面我就以我安装好的win2k来说明
如果要使用shm,必须进行以下的操作
# umount /dev/shm
# mount -t tmpfs -o size=528m none /dev/shm
别忘了启动加速器
#modprobe kqemu
shm的容量必须比你将要分配给虚拟机的内存大16m,否则无法使用,上面是准备给虚拟机512m的内存,所以,shm被设置成了528,如果你只给虚拟机256m的内存,上面的size应该是272.
好了,下面准备开始给上面创建的win2k.img装入系统
# qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -boot d -m 512 -win2k-hack
对于win2k的安装必须指定-win2k-hack参数,否则安装会中途出错退出,这个参数只需要在安装的时候使用,在运行的时候是不需要的。
-hda是指定将要使用的image文件,也就是windows的C盘
-cdrom 是准备给cdrom的驱动器,也就是windows的D盘,有人说这个参数是-cdrom /dev/cdrom,是指定你的主机的cdrom的位置,这是一个天大的错误,这里指的是启动后的虚拟机,和主机的cdrom在哪里没关系,当然,你的 系统必须有cdrom,如果没有cdrom,我想在linux下虚拟mount一个还是很容易的。
-boot d ,就是指定系统从D启动,各上面一项相关的
-m 512,指定分配组虚拟机的内存
如果一切顺利,安装完成以后,你就可以启动系统了

五.启动虚拟机
首先,按前面的介绍,加载好加速器和tun的模块,如果前面已经加载了,这里就不再需要了,只在主机重启了以后需要,如果经常使用虚拟机,也可以将它们直接添加进/etc/rc.d/rc.local让系统自动加载。
#modprobe kqemu
#modprobe tun
#qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -hdb fat:/home/seabird/work -m 512 -localtime -net nic -net tun
参数:
-hdb fat:/home/seabird/work
这是一个非常有用的参数,它的意思是把主机的/home/seabird/work目录直接以fat的格式加载到虚拟机,当然,它是只读的
-localtime,指定虚拟机使用当前的系统时间
-net nic -net tun
这两个参数必须同时使用,否则,你还是上不了网,它的意思是启动虚拟机的网卡同时和主机以及internet通讯,只有这个参数加载的时候,系统才会去读取/etc/qemu-ifup文件,其它的模式是不会读取这个文件的。
启 动完成以后,将win2k的网卡地址指定为192.168.10.100,网关设为1921.68.10.1还记得/etc/qemu- ifup文件吗,这个文件中的地址和你的虚拟机的地址是相关的,并不像有些人说的你可以像主机一样随便指定地址去上网,它是把主机作为一个NAT设备来使 用的。当然,你别忘记指定一个虚拟机可以到达的DNS服务器
六.后记
1.指定虚拟机的网络地址的时候。千万别指一个和你的主机相同网段的,那样,你是不可能上网的。
2.可以去安装98,但到目前的最新版为止,winxp在大多情况下安装是不成功的,这个在qemu的网站上说的很清楚,只有等以后的版本了,所以,你看到的安装winxp的贴子是没有实践的,我在三台配置不同的机器上安装都以失败告终了。
3.win2k运行的时候,如果用它自己的关机是关不掉虚拟机的,原因是不支持电源管理, 教你一个方法,使用win2k的安装/卸载硬件,一步步往下走, 在windows搜索完硬件后出现的对话窗中选择添加新硬件(白痴的windows,我竟然不能让它跳过搜索), ->下一步,选择“否,我想从列表选择硬件”->下一步->NT Apm/legacy支持->下一步,安装完成后你就可以正常关机了。
4.qemu还有一个最大的优点是可以启动你的硬盘上的双系统,如果现在就是双系统,你可以像下面一样直接启动:
#qemu -hda /dev/hda1 -m 512 -net nic -net tun
/hda1是你的另一个系统的硬盘分区,如果你是grub启动,这里就是你的grub所在的位置,等grub菜单出现后,选择想启动的系统就可以了(天啊,别选你现在正在运行的系统啊). Linux联盟收集整理

5. qemu如何使用

qemu常用网络模式是user、tap。
user使用有局限性,
1) 由于其在QEMU内部实现所有网络协议栈,因此其性能较差。
2) 不支持部分网络功能(如ICMP),所以不能在客户机中使用ping命令测试外网连通性。
3) 不能从宿主机或外部网络直接访问客户机。需要作地址重定向。
tap方式网络没有这些限制。
通过tap又可以实现bridge和nat方式的网络连接。

6. QEMU是什么软件它有什么作用.用来干什么

QEMU是一套可以在Windows操作系统中仿真出另一套操作系统的仿真软件。因为它可以在系统中仿真出一颗虚拟的CPU,然后将要仿真的操作系统交给这颗虚拟CPU去处理,所以能够达到同一平台却能同时执行两种操作系统的目的。

QEMU的使用非常简单,因为它不用安装,只要使用文字指令和参数就可以操作。而它可以仿真的操作系统类型也非常多元,包括Linux系列、Mac OS系列、FreeBSD系列、Windows系列等等操作系统通通都没问题。

一般的操作系统仿真程序的执行速度都非常慢,但是QEMU的速度居然可以达到正常的四分之一以上,在仿真程序中算是快的了。对于有需要在同一台计算机上安装多个操作系统的人来说,QEMU一定可以帮的上很大的忙。

7. 手机如何用qemu模拟windows

QEMU是一套开源的跨平台模拟器,该文主要介绍QEMU的常用命令以及使用QEMU模拟运行Windows98CE的方法和步骤。

关键词:QEMU;模拟器;Windows

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)26-7263-02

计算机模拟器(computersimulator)指的是“用计算机模拟计算机的模拟器”。计算机模拟器已被用于在实际发行前调试微程序或者商业应用程序。由于该计算机上的操作都是模拟的,所有信息都可被程序员获取,而模拟的速度、执行等都可以控制。

在最近为某银行开发软件的过程中,由于客户工作环境比较复杂,需要在不同环境和硬件条件下对项目进行测试和部署,由于在一台电脑上反复安装不同的测试环境是一件非常繁琐费时的工作,所以这里选用QEMU模拟不同的软硬件环境来完成不同环境下软件的部署和调试测试。下面以使用QEMU模拟Windows98CE环境为例,介绍QEMU的使用方法。

1QEMU简介

QEMU是一套由FabriceBellard所编写的开源跨平台模拟器。它具备高速度及跨平台的特性。QEMU有两种主要运作模式:1)Usermode模拟模式,亦即是使用者模式。QEMU能启动那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。

2)Systemmode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。

QEMU可以模拟IA-32(x86)个人电脑,AMD64个人电脑,MIPSR4000,升阳的SPARCsun3与PowerPC等硬件架构,同时在支持硬件虚拟化的x86构架上可以使用KVM加速配合内核ksm大页面备份内存,速度稳定远超过VMwareESX。QEMU增加了模拟速度,某些程序甚至可以实时运行,同时可以在其他平台上运行Linux的程序,可以储存及还原运行状态(如运行中的程序),也可以虚拟网络卡,使虚拟机可以与真实网络及宿主机进行通信。

2使用QEMU模拟运行Windows98CE

首先介绍一些QEMU的常用命令,这些命令在模拟运行Windows的时候经常用到:

-fdbfile,使用file作为软盘镜像.,这里的file可以是软盘镜像文件名也可以是真实的软盘设备,比如/dev/fd0。

-hdafile-hdbfile-hdcfile,这里的file是指硬盘的镜像文件名。

-bootadc,用于指定系统启动优先使用的设备,a指软盘,c指硬盘,d指光驱。

-mmegs,指定虚拟系统的内存大小,这里的单位是MB,QEMU默认的是128M。

-enable-audio,由于sb16的虚拟声卡驱动在Windows下使用有些问题,默认QEMU是关闭这个选项。

-localetime,QEMU默认使用的是UTC时区

-user-net,使用UserMode网络设备来建立网络连接,这是默认的

虚拟网络模式,相当于VMware的NAT。

在安装之前,首先准备好Windows98CE的安装镜像,然后使用

QEMU来制作磁盘镜像,也就是为即将安装的Windows98CE分配磁盘

空间,命令如下:

>cdc:/qemu/qemu-0.9.0-Windows(假设QEMU安装在c:/qemu/qe-

mu-0.9.0-Windows目录下)

>qemu-img.execreatewince.img10G

下面,开始在制作好的磁盘镜像中安装Windows98,步骤如下:

1)运行命令qemu-bootd-cdromWindows98.iso-hdawin98se.img

,用于启动到DOS,分区和格式化,开始安装。在DOS环境下,对磁盘进

行格式化等处理,,然后运行setup命令开始安装windwos98CE,安装过

程不再详细描述

8. qemu如何使用

qemu从某种意义上功能类似于vmware/virtual box之类的软件,可以让你在当前OS中运行其它的操作系统,但是这仅仅是qemu的一种功能

qemu还可以模拟不同的cpu架构下的系统,比如在普通的个人pc上运行 arm linux之类,这个vmware之类的可能没有

关于qemu的使用
先到官网上下载qemu的源代码,目前是 1.2,如果使用的是linux系统,这个好办,直接编译安装,网上有不少说明的文档

使用的过程一般分为三步
1. 创建虚拟机文件系统
qemu-img create /f qcow2 xxx.img 10G

2. 在虚拟机文件系统中安装操作系统
qemu-system-i386 -hda xxx.img -cdrom xxx.iso -boot d 以xxx.img为文件系统,xxx.iso是系统安装ISO文件

3. 运行安装好的操作系统
qemu-system-i386 -hda xxx.img 运行xxx.img中的系统

以上的命令参数都比较简单,实际使用中需根据具体情况自己配置

9. qemu能模拟全部x86指令吗

qemu能模拟全部x86指令。也可以模拟各种ARM板子还可以模拟各种外设,百问网对QEMU做了很多改进支持更多硬件支持更多GUI现实,让用户可以更有真实感地使用QEMU来模拟IMX6ULL板子。

qemu模拟全部x86指令的原理

首先Qemu本身并不是KVM的一部分,而是一整套完整的虚拟化解决方案,它是纯软件实现的,包括处理器虚拟化内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟,所以性能相对比较低,而广义的KVM实际上包含两部分。

一部分是基于LINUX内核支持的KVM内核模块,另一部分就是经过简化和修改Qemu,KVM内核模块模拟处理器和内存以支持虚拟机的运行,Qemu主要处理I或O以及为用户提供一个用户空间工具来进行虚拟机的管理,两者相互结合相辅相成,构成了一个完整的虚拟化平台。

10. ubuntu qemu怎么联网

一、虚拟机的创建: 1.ubuntu下安装好qemu后,使用如下命令创建虚拟机:

qemu-img create -f qcow2 voltdb.img 10g

-f qcow2是指:qemu采取的镜像格式,qcow2是qemu最常使用的格式,该格式下可以采用来写时复制技术来优化性能;

voltdb.img是指:镜像名称

10g是指:镜像文件大小

2.之后需要为该镜像文件安装操作系统:

qemu-system-x86_64-enable-kvm-hdavoltdb.img-bootd-cdrom./ubuntu-16.04-desktop-amd64.iso-m2048-vnc:1

-enable-kvm:使用KVM进行加速(确保在BIOS中开启CPU对虚拟化的支持,若未加此项,则镜像安装会很慢)

-hda: 指定要安装虚拟机要使用的虚拟磁盘

-boot d:指定启动位置,d表示从光盘启动

-cdrom:指定cdrom为iso文件

-m:指定虚拟机内存大小,默认单位是MB

-vnc:1:通过vnc创建虚拟桌面。(笔者在这里未加-vnc:1时,会提示:CouldnotinitializeSDL(Noavailablevideodevice)-exiting)

3.此时,ubuntu的命令行会阻塞,我们可以通过在windows下通过TigerVNC去远程连接

(下载地址:https://github.com/TigerVNC/tigervnc/releases)

在TigerVNC中,我们输入ip:1(注意圆角半角的:)连接即可连接到voltdb.img虚拟镜像的安装界面,在那里完成虚拟机操作系统的安装即可。

二、配置桥接网络

qemu采用两种方式配置上网:

其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送。

其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样。

第一,用户模式
虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。
默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。
第二,桥接模式
这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持

1.配置host

桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。

目的:使得局域网内可以通过ssh登陆虚拟机

1.1首先,安装两个配置网络所需软件包:

apt-get install bridge-utils # 虚拟网桥工具

apt-get install uml-utilities # UML(User-mode linux)工具

1.2创建网桥,并添加端口,如下显示的是/etc/network/interface配置文件下的设置

[plain]view plain


  • source/etc/network/interfaces.d/*

  • #Theloopbacknetworkinterface

  • autolo

  • ifaceloinetloopback

  • #以下是之前未添加网桥时的配置

  • #Theprimarynetworkinterface

  • #autoenp3s0

  • #ifaceenp3s0inetstatic

  • #address192.168.66.149

  • #netmask255.255.255.0

  • #network192.168.66.0

  • #broadcast192.168.66.255

  • #gateway192.168.66.1

  • #dns-nameservers114.114.114.114

  • #dns-searchfoolsky

  • #添加网桥br0

  • autobr0

  • ifacebr0inetstatic#之前上网时采用静态IP,所以这里依然使用此

  • address192.168.66.149#将之前上网的ip地址分配给网桥。

  • network192.168.66.0

  • netmask255.255.255.0

  • broadcast192.168.66.255

  • gateway192.168.66.1

  • bridge_portsenp3s0tap0#为网桥添加两个接口,分别是enp3s0(之前默认的上网网口)和tap0

  • bridge_stpoff

  • bridge_fd0

  • bridge_maxwait0

  • dns-nameservers114.114.114.114

  • #添加接口enp3s0,上网方式采用自动

  • autoenp3s0

  • ifaceeth0inetmanual

  • 此时,查看当前网络配置:注意:enp3s0是未分配ip的。

    1.3使用brctl配置网桥:

    tunctl -t tap0 -u 用户名 # 创建一个tap0接口,只允许指定用户访问

    brctl addif br0 tap0 # 在虚拟网桥中增加一个tap0接口

    ifconfig tap0 0.0.0.0 promisc up # 打开tap0接口

    brctl showstp br0 br0网桥显示如下:

    1.4修改/etc/qemu-ifup虚拟机的启动脚本,替换成如下内容:

    [plain]view plain

  • #!/bin/bash

  • switch=br0

  • if[-n"$1"];then

  • iplinkset$1up

  • sleep1

  • brctladdif${switch}$1

  • exit0

  • else

  • echo“Error:nointerfacespecified”

  • exit1

  • fi

  • 1.5使用如下命令行启动qemu虚拟机

    sudoqemu-system-x86_64-enable-kvm-bootc-drivefile=/usr/local/ubuntu.img,if=virtio-m1024-smp2-netdevtype=tap,script=/etc/qemu-ifup,downscript=no,id=net0-devicevirtio-net-pci,netdev=net0,mac=00:11:22:33:44:AB-vnc:1-daemonize

    file:指定镜像位置

    script:指向启动脚本的位置。

    -daemonize:使得改启动命令 不在阻塞,执行完该命令后依然可以执行其他命令。

    mac:为虚拟机的默认网卡分配指定的虚拟mac地址,可自行设定(MACADDR可以指定一个mac地址,但要注意,第一个字节必须为偶数,如00,52等,不能为奇数(01),否则会有不可预料的问题。因为奇数保留为多播使用。)

    2.配置虚拟机内操作系统的网络

    此时,我们依然需要通过TigerVNC进入虚拟机已安装的操作系统,进入后,修改/etc/network/interfaces如下:

    [plain]view plain

  • #interfaces(5)fileusedbyifup(8)andifdown(8)

  • autolo

  • ifaceloinetloopback

  • autoenp0s3

  • #以下内容是新加入的,之前并未为enp0s3分配ip以及上网方式。

  • ifaceenp0s3inetstatic

  • address192.168.66.155#设置该ip与网桥同一网段,下边的内容相同即可。

  • netmask255.255.255.0

  • network192.168.66.0

  • gateway192.168.66.1

  • brodcast192.168.66.255

  • dns-nameservers114.114.114.114

  • bridge_fd9

  • bridge_hello2

  • bridge_maxage12

  • bridge_stpoff

  • 之后重启虚拟机中操作系统,即可在局域网内通过ssh连接qemu中的操作系统。