Ubuntu 18.04.5 LTS 服务器上安装配置KVM并创建Win10虚拟机

准备工作

首先需要检查一下CPU是否支持虚拟化,执行一下命令来检查/proc/cpuinfo文件中是否又虚拟化相关的字眼,如果有的话表明CPU支持虚拟化技术。

egrep -c '(svm|vmx)' /proc/cpuinfo

上面命令执行结果如果返回0,表示CPU不支持虚拟化技术。

主板BIOS中的虚拟化技术也可能不是默认开启的,如果没有开启需要手动开启一下。
现在使用下面的命令安装 kvm-ok 实用程序,该程序用于确定您的服务器是否能够运行硬件加速的 KVM 虚拟机。

sudo apt install cpu-checker

运行 kvm-ok 命令确认输出结果:

tscon@tscon_54:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

第二步:安装 KVM 及其依赖包

KVM 工具集合

  • libvirt:操作和管理 KVM 虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
  • Virsh:基于 libvirt 的 命令行工具 (CLI)
  • Virt-Manager:基于 libvirt 的 GUI 工具
  • virt-v2v:虚机格式迁移工具
  • virt-* 工具:包括 Virt-install (创建 KVM 虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等
  • sVirt:安全工具

运行下面的 apt 命令安装 KVM 及其依赖项:

首先是安装 KVM 相关的包文件,因为我的服务器都是命令行,没有安装 X 桌面,所以我加了 --no-install-recommends 参数。不然的话它会安装 virt-viewer 之类的包,而它们的依赖关系中又有 X11 和很多图形图像库,而这些都用不上。但是如果你开启了桌面系统,那么也可以不加该参数。

sudo apt update
sudo apt-get install --no-install-recommends qemu-kvm qemu-utils libvirt-bin virtinst cpu-checker

只要上图相应的软件包安装成功,那么你的本地用户(对于我来说是 tscon)将被自动添加到 libvirtd 群组。

第三步:启动并启用 libvirtd 服务

Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。

我们在 Ubuntu 18.04 服务器上安装 qemulibvirtd 软件包之后,它就会自动启动并启用 libvirtd 服务,

现在使用下面的命令确认 libvirtd 服务的状态,

 service libvirtd status

输出结果如下所示:

● libvirtd.service - Virtualization daemon
   Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-09-27 01:11:19 UTC; 1min 47s ago
     Docs: man:libvirtd(8)
           https://libvirt.org
 Main PID: 10976 (libvirtd)
    Tasks: 19 (limit: 32768)
   CGroup: /system.slice/libvirtd.service
           ├─10976 /usr/sbin/libvirtd
           ├─12028 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
           └─12029 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper

如果 libvirtd 服务没有开启,则运行以下命令开启,

 sudo service libvirtd start
 sudo update-rc.d libvirtd enable

第四步:为 KVM 虚拟机配置桥接网络

只有通过桥接网络,KVM 虚拟机才能访问外部的 KVM 管理程序或主机。在Ubuntu 18.04中,网络由 netplan 实用程序管理
安装一个 Ubuntu 18.04 系统时,会在 /etc/netplan/创建一个.yaml 文件 其配置了静态 IP 和桥接网络
netplan 实用工具将引用这个文件。
目前,文件的具体内容如下:

# This is the network config written by 'subiquity'
network:
 ethernets:
   eno1:
     dhcp4: true
 version: 2

修改文件,添加桥接网络的配置信息,首先备份文件,以便于出现错误更快捷的回复原来的设置.

sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak

使用DHCP 自动分配Ip的配置

network:        
  version: 2
  ethernets:
    eno1:
      dhcp4: yes
  bridges:
    br0:
      interfaces: [eno1]
      dhcp4: yes
      nameservers:
        addresses: [192.168.0.1]

固定IP配置

# This is the network config written by 'subiquity'
network:
  version: 2
  ethernets:
    eno1:
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
      interfaces: [eno1]
      dhcp4: no
      addresses: [192.168.1.136/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1]

使用下面的 netplan 命令使更改生效,

 sudo netplan apply

如果您想查看 debug 日志请使用以下命令,

sudo netplan --debug  apply

现在使用以下方法确认网络桥接状态:

sudo networkctl status -a
● 6: br0
       Link File: /lib/systemd/network/99-default.link
    Network File: /run/systemd/network/10-netplan-br0.network
            Type: ether
           State: routable (configured)
          Driver: bridge
      HW Address: ae:86:5e:72:59:0c
         Address: 192.168.1.136
                  fe80::ac86:5eff:fe72:590c
             DNS: 192.168.0.1
ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.136  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ac86:5eff:fe72:590c  prefixlen 64  scopeid 0x20<link>
        ether ae:86:5e:72:59:0c  txqueuelen 1000  (Ethernet)
        RX packets 6551  bytes 507975 (507.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8664  bytes 1054668 (1.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

第五步:创建虚拟机(使用 virt-manager 或 virt-install 命令)

有两种方式创建虚拟机:

virt-manager  #(图形化工具)
virt-install  #(命令行工具)

准备资源
经过一番搜索和实践,创建一台虚拟机需要的资源清单如下:

  • 桥接网卡 (br0)(上面已经准备)
  • virtio 驱动
  • windows 10 镜像

安装命令

sudo virt-install \
--name win10 \
--memory 2048 \
--vcpus sockets=1,cores=1,threads=2 \
--cdrom=/home/tscon/win10/cn_windows_10_multiple_editions_x64_dvd_6848463.iso \
--os-variant=win8.1 \
--disk /home/tscon/win10/win10.qcow2,bus=virtio,size=40 \
--disk /home/tscon/win10/virtio-win-0.1.96_amd64.vfd,device=floppy \
--network bridge=br0,model=virtio \
--graphics vnc,password=admin,port=5910 \
--hvm \
--virt-type kvm

基本上配置信息都在上面了,虚拟信息机配置如下:

  • 2G 内存
  • 1 个 CPU,1 个核,2 个线程
  • 1 个 CDROM(Windows 安装光盘)
  • 40G 硬盘(系统盘)
  • 1 个软驱(Virtio 驱动)
  • 在 5910 端口开放一个 VNC 远程桌面

如果你的命令输入的正确,应该会得到类似的反馈信息:

WARNING  Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING  No console to launch for the guest, defaulting to --wait -1

Starting install...
Domain installation still in progress. Waiting for installation to complete.

未完待续…
参考:
在 Ubuntu 的 KVM 中安装 Windows 系统
https://zhuanlan.zhihu.com/p/24764017
https://blog.csdn.net/geeksoarsky/article/details/86633529
https://linux.cn/article-9707-1.html
对虚拟机的其他操作(管理虚拟机-----后面)
https://www.colabug.com/2018/1016/4915105/

你可能感兴趣的:(linux,linux,ubuntu,服务器)