QEMU纯命令行虚拟机安装步骤

2024-06-17 12:18

本文主要是介绍QEMU纯命令行虚拟机安装步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、QEMU介绍

最近由于需要配置多台虚拟机所以初步学习了qemu虚拟机的安装步骤

QEMU是一款高效而实用的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM),主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。

 

二、软件安装及系统命令安装

 

(1)    在远程服务器上安装qemu软件

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 http://ftp6.sjtu.edu.cn/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso

 

4.正式安装带有cdrom的虚拟机

 

a.由于是纯命令行安装,没有相应的图形界面,所以需要先提取安装包iso中的内核和根文件,首先挂载iso,注意挂载之后的文件只读

 

mount ubuntu-16.04.1-server-amd64.iso /mnt/temp -o loop

 

然后将挂载的文件拷贝到某个文件夹,此处我把文件拷贝到当前文件夹中

 

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-server-amd64.iso -kernel temp/install/vmlinuz -initrd temp/install/initrd.gz

相关说明

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

-boot  -d:启动顺序,哪个设备先启动,-d代表先从cd-rom启动,然后驱动从硬盘镜像正常启动。-c选项从硬盘镜像先启动。

-enable-kvm使用KVM进行加速,如果没有此选项,那么虚拟机将会to你刚刚软件渲染(这种方式很慢)

-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-server-amd64.iso -vnc :1 -k en-us

 

-vnc:1:通过vnc创建虚拟桌面。(笔者在这里未加-vnc:1时,会提示:Could not initialize SDL(Noavailable video device) - exiting)

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接触不深,如果有更好的纯命令行安装方法,请多加指导

这篇关于QEMU纯命令行虚拟机安装步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069414

相关文章

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.