QEMU搭建ubuntu虚拟机

1.下载ubuntu 18.04镜像

地址:

https://releases.ubuntu.com/18.04/

2.安装相关软件包

安装网桥相关包

sudo apt-get install uml-utilities bridge-utils -y

安装qemu依赖包

sudo apt-get install libsdl2-dev -y

3.下载安装qemu

wget https://download.qemu.org/qemu-5.0.1.tar.xz
tar xvJf qemu-5.0.1.tar.xz
cd qemu-5.0.1
./configure
make

4.配置网桥

sudo vim /etc/network/interfaces  

末尾添加内容如下

auto br0
iface br0 inet dhcp
bridge_ports enp5s0

enp5s0为host机器连到路由器上的网卡,根据实际情况修改(因为此网卡由路由器分配指定ip所以此处使用dhcp模式,原网卡使用static模式需要进行相应static配置)

如果未设置ipv4转发,修改如下文件

sudo vim /etc/sysctl.conf

取消如下行的注释

net.ipv4.ip_forward = 1

保存后重启服务器

创建tap网络启动脚本

sudo vim /etc/qemu-ifup

添加内容如下

#!/bin/sh
#set -x
switch=br0
if [ -n "$1" ];then
        /usr/bin/sudo /usr/bin/tunctl -u `whoami` -t $1
        /usr/bin/sudo /sbin/ip link set $1 up
        sleep 0.5s
        /usr/bin/sudo /sbin/brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi
sudo chmod u+x /etc/qemu-ifup

(注:脚本内的命令路径根据实际情况指定)

创建tap网络关闭脚本

sudo vim /etc/qemu-ifdown

添加内容如下

#!/bin/sh
sudo chmod u+x /etc/qemu-ifdown

5.创建qcow2格式镜像

cd qemu-5.0.1
./qemu-img create -f qcow2 ubuntu.img 20G

6.安装ubuntu VM

以下命令启动安装,vnc viewer连接5901端口

sudo ./x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 4096 -cpu host -smp 4,sockets=1,cores=2,threads=2 -hda ubuntu.img  -cdrom ../ubuntu-18.04.5-desktop-amd64.iso -boot dc  -net nic -net tap -machine usb=on -device usb-tablet -vnc :1

执行完后qemu启动,在可视化窗口进行ubuntu安装并配置网络,安装完成后关闭qemu

7.启动VM

以下命令启动虚拟机,vnc viewer连接5901端口可看到虚拟机可视化桌面

sudo ./x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 4096 -cpu host -smp 4,sockets=1,cores=2,threads=2 -hda ubuntu.img -net nic -net tap -machine usb=on -device usb-tablet -vnc :1

不需要图形界面请加参数 -nographic