QEMU纯命令⾏虚拟机安装步骤
⼀、QEMU介绍
最近由于需要配置多台虚拟机所以初步学习了qemu虚拟机的安装步骤
QEMU是⼀款⾼效⽽实⽤的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM),主要提供两种功能给⽤户使⽤。⼀是作为⽤户态模拟器,利⽤动态代码翻译机制来执⾏不同于主机架构的代码。⼆是作为虚拟机监管器,模拟全系统,利⽤其他VMM(Xen, KVM, etc)来使⽤硬件提供的虚拟化⽀持,创建接近于主机性能的虚拟机。
⼆、软件安装及系统命令安装
(1)    在远程服务器上安装qemu软件linux操作系统镜像
1.⾸先要确保IntelVT技术勾选(虚拟机中使⽤的话),然后查看cpu是否⽀持,有vmx输出即可
grep vmx /proc/cpuinfo
2.安装相关的依赖包,将KVM安装在Ubuntu
sudo apt-get install qemu-kvm libvirt-binvirtinst bridge-utils (virt-manager kvm qemu virt-viewer)
说明:
必须安装组件是qemu-kvm libvirt-bin
virt-viewer是⼀个⽤于显⽰虚拟机的图形控制台的最⼩⼯具
virt-manager是⼀个虚拟机管理软件,含图形管理界⾯
3.运⾏下⾯这个命令。
sudo virsh -c qemu:///system
输⼊list
如果你看到空空如也的虚拟机列表,这意味着KVM已成功设置完毕。
Id  Name        State
然后检查kvm模块是否已经加载
如果kvm_intel/kvm_amd、kvm模块被显⽰出来,则kvm模块已经加载。最后要确保qemu在编译的时候使能了KVM,即在执⾏configure脚本的时候加⼊了–enable-kvm选项。(如果是通过源代码安装的qemu的话要确保)
4.配置安全策略,关闭apparmor
sudo /etc/init.d/apparmor teardown
sudo update-rc.d -f apparmor remove
Libvirt在做某些事情的时候会被Apparmor阻挡,因此为了确保Libvirt始终有必须的权限,必须禁⽤apparmor。(但从⽹络安全⾓度是不建议这么做)
5.重启libvirtd
sudo systemctl restart libvirt-bin
(可选操作)将⼀个普通的⾮根⽤户(如alice)添加到libvirtd组,那样该⽤户不需要根⽤户权限,就能启动虚拟机。
sudo adduser alice libvirtd
退出,重新以该⽤户⾝份登录,让组成员的变更⽣效。
(2)安装虚拟机
1.  安装好qemu后,⾃带qemu-img命令,创建镜像,15G,名字为test.qcow2的镜像⽂件
qemu-img create test.qcow2 -f qcow2 15G
-f指镜像格式,虚拟机镜像⽤来模拟虚拟机的硬盘,在启动虚拟机之前需要创建镜像⽂件,其中100G是最⼤的容量,在实际中还未安装系统时,只有⼏百kb
2.  查看镜像信息
qemu-img info test.qcow2
3.准备操作系统镜像。
可以从不同Linux发⾏版的官⽅⽹站上获取安装镜像,以fedora20为例:
wget ftp6.sjtu.edu/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso
makefile工具
4.正式安装带有cdrom的虚拟机
a.由于是纯命令⾏安装,没有相应的图形界⾯,所以需要先提取安装包iso中的内核和根⽂件,⾸先挂载iso,注意挂载之后的⽂件只读
mount ubuntu-16.04.1-server-amd64.iso /mnt/temp -o loop
jsp可以代替html吗
然后将挂载的⽂件拷贝到某个⽂件夹,此处我把⽂件拷贝到当前⽂件夹中
root@fat01:~/myapp/os# cp -r /mnt/temp/ ./
b.准备好上⾯⼏步后就可以进⾏安装了
qemu-system-x86_64 -m 512M -smp 2 -boot c -cpu host -hda test1.qcow2 --enable-kvm --nographic -append console=ttyS0  -cdrom ubuntu-16.04.1-serv 相关说明
-m 指定虚拟机内存ram⼤⼩,默认单位是MB,
-boot  -d:启动顺序,哪个设备先启动,-d代表先从cd-rom启动,然后驱动从硬盘镜像正常启动。-c选项从硬盘镜像先启动。
-
enable-kvm使⽤KVM进⾏加速,如果没有此选项,那么虚拟机将会to你刚刚软件渲染(这种⽅式很慢)
springboot使用mybatis例子-smp 4: 虚拟机有4个vcpu,设置有⼏个核来模拟操作系统
-net nic -net user:默认启⽤运⾏虚拟机中的以太⽹链接
-hda testing-image.img:指定使⽤的硬件驱动的路径(之前创建的镜像路径)
-cdrom ubuntu-16.04.iso:最后告诉qemu从iso⽂件中启动系统
-cdrom添加fedora的安装镜像。可在弹出的窗⼝中操作虚拟机(如果有图形界⾯),安装操作系统,安装完成后重起虚拟机便会从硬盘(test.qcow2)启动。
-nographic -append console=ttyS0 : Redirectstandard output to host machine
重定向输出参数,如果不指定ttyS0则将⽆法在当前窗⼝看到安装过程,当然,有时候需要调整console参数才能在当前窗⼝查看到信息。
为了使⽤户能以root⾝份通过串⼝登录,需要在该⽂件中添加“ttyS0”,说明系统认为这⾥的COM1是安全的
--kernel    使⽤哪个内核
--initrd    使⽤哪个initrd
5.通过-vnc连接远程主机来安装虚拟机
a.  ⾸先需要确定安装qemu的宿主机器上是否有vnc服务器(因为是远程主机连接该宿主机,所以宿主机上需要运⾏服务),如果没有,则
需要先安装
小程序制作代码
Ubuntu安装⽅法
apt-get install vnc4server
Centos安装⽅法
yum install vnc-server tigervnc #centos 5.x
$ yum install tigervnc-server tigervnc #centos6.x
b.  查看宿主机的ip地址,本⼈的ip是168.123.6.34
查看VNC端⼝
sudo virsh vncdisplay ubuntu
c.最后在宿主机器上运⾏下列命令
qemu-system-x86_64 -m 512M -smp 2,sockets=2,cores=1,threads=1 -boot c -cpu host -hda VF4.img --enable-kvm --nographic  -cdrom ubuntu-16.04.1-se
-vnc:1:通过vnc创建虚拟桌⾯。(笔者在这⾥未加-vnc:1时,会提⽰:Could not initialize SDL(Noavailable video device) - exiting)
javascript高级语言书c.在远程主机上安装VNC Viewer之类的客户端软件,linux系统可以通过TigerVNC来登陆
访问:<5900+Port_Index> (168.123.6.34:5901 ) 地址,即可连接上远程主机运⾏的虚拟机
6.系统安装后,由于安装程序会再次跳转到安装界⾯(或者通过⽅法5安装后需要关闭计算机),所以需要在宿主机上使⽤kill命令杀死qemu-system-x86_64进程:
killall qemu-system-x86_64
通过若通过telnet访问虚拟机,由于是远程主机所以启动程序有以下两个步骤
a.先在窗⼝1输⼊以下命令登陆VM
qemu-system-x86_64 -m 512 -smp 2 -boot c -cpu host -hda test1.qcow2 --enable-kvm -curses -monitor telnet:127.0.0.1:5566,server,nowait
b.然后重新打开⼀个窗⼝2,输⼊以下代码
telnet 127.0.0.1 5566
sendkey ctrl-alt-f1
如图
c.最后返回窗⼝1,即可看到VM登陆界⾯
7.不同架构来测试系统
使⽤以下命令来查看可⽤的架构安装命令
ls /usr/bin | grep qemu-system*
根据不同系统使⽤不同的开头命令,如:
qemu-system-x86_64 -m 1024 -boot d -enable-kvm -smp 3-net nic -net user -hda testing-image.img -cdrom /dev/cdrom
三、相关拓展
系统虚拟化最主要是虚拟出CPU、内存及I/O设备。虚拟出的CPU称之为vCPU,QEMU为了提升效率,借⽤KVM、XEN等虚拟化技术,直接利⽤硬件对虚拟化的⽀持,在主机上安全地运⾏虚拟机代码(需要硬件⽀持)。
由于对qemu接触不深,如果有更好的纯命令⾏安装⽅法,请多加指导

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。