ubuntu安装KVM

ubuntu安装KVM

现在官网下载ubuntu镜像,桌面版或者服务端都可,这里以桌面端为例。
安装之前确保磁盘有足够大的空间(这很重要)

  1. 安装KVM
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
sudo adduser `id -un` libvirt
sudo adduser `id -un` kvm
sudo apt install virtinst qemu-efi

注意:id -un的命令是获取当前用户的用户名。
验证安装是否成功

sudo virsh list --all

Id Name                 State
----------------------------------

说明安装成功。

  1. 为KVM配置网桥

对于Ubuntu系统而言,进入/etc/netplan目录下,可以看到配置文件,一般为“50-cloud-init.yaml” or “01-netcfg.yaml”,我的为01-network-manager-all.yaml。
更改此文件之前,建议备份。

sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml.bak
sudo vi 01-network-manager-all.yaml

更改之前的文件为:

ubuntu安装KVM_第1张图片
更改之后的文件为:
ubuntu安装KVM_第2张图片添加了网桥br0.
保存更改后的配置文件.

sudo netplan apply

查看网桥是否搭建成功

ifconfig

ubuntu安装KVM_第3张图片
出现br0,说明搭建成功。

  1. 创建虚拟机VM
    这里使用命令行的方式创建。
sudo virt-install   \
   --name vm1  \
   --ram=4000  \
   --vcpus=2   \
   --network bridge:br0 \
   --graphics vnc \
   --disk path=/home/lemaker/open-source/images/vm1.img,bus=virtio,size=100  \
   --cdrom /home/lemaker/open-source/ubuntu-18.04.5-desktop-amd64.iso

这里详细解释每个参数的含义,注意(一定要加上–graphics vnc),否则ubunut图形化界面,鼠标正常,但是键盘却会失效,这是个坑爹的bug。

  • name=vm1: 虚拟机实例的名字,每个虚拟机的名字都不能一样,不能有空格
  • ram=2048:指定虚拟机内存大小,单位是Mb
  • vcpus=2: 为虚拟机指定分配的虚拟CPU核数
  • cdrom=/home/lemaker/open-source/ubuntu-18.04.5-desktop-amd64.iso,安装虚拟机需要的镜像文件,可以是主机的CDROM或者iso文件。注意,此处的cdrom换为location可能会报错
  • disk path=/home/lemaker/open-source/images/vm1.img,bus=virtio,size=100,format=qcow2: 指定虚拟机所存储的路径(占用的磁盘空间),大小为100G,disk bus类型为virtio,磁盘格式为raw,如果不指定fortmat,则默认格式即为raw。
  • graphics vnc: 设置虚拟机的console并将其输出到VNC,这样就可以通过VNC来连接虚拟机了。同时可以指定vnc的端口和监听范围以及密码: –vncport=5910 –vnclisten=0.0.0.0。默认情况下端口为从5900开始的第一个空闲端口,监听范围为本机127.0.0.1,修改为0.0.0.0以使外网主机可以连接。后面会讲对于只支持SSH协议的情况下,如何通过SSH隧道连接,所以是否设置为0.0.0.0没有影响,但能设置为0.0.0.0的话,还是设置为0.0.0.0,毕竟直接通过VNC连接更加方便。这些参数也可以在/etc/libvirt/qemu.conf中修改,以使其对所有虚拟机生效,VNC默认连接没有密码。VNC可以理解为linux下的远程桌面
  • network bridge:br0 使用桥接模式,此处的br0对应我们之前在服务器的网桥配置上的br0,注意:不这样设置可能会导致虚拟机无法联网。
  1. 虚拟机安装软件。
    图形化界面一步一步输入用户名,以及密码。为虚拟机安装必要的软件:
    安装网络工具以及ssh。
sudo apt install net-tools vim git openssh-server

开启ssh服务

sudo service sshd start

安装之后即可通过ssh登录到虚拟机了,即可进行命令行操作,不用在那坑爹的图形化界面操作了。

  1. KVM管理常用命令

KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/,该目录下存放了所有创建过的虚拟机配置文件。

$ sudo virsh list # 查看正在运行的虚拟主机列表
$ sudo osinfo-query os # 查看virt-install所支持的OS参数列表
$ sudo virsh list --all # 查看所有的虚拟机列表
$ sudo virsh dominfo vm1 # 查看虚拟机信息
$ sudo virsh start vm1 # 启动虚拟机
$ sudo virsh shutdown vm1 # 关闭虚拟机
$ sudo virsh suspend vm1 # 挂起虚拟机
$ sudo virsh reboot vm1 #
软重启(安全重启,相当于在虚拟机内部点击重启选项)虚拟机
$ sudo virsh reset vm1 # 硬重启虚拟机(不安全,有可能数据丢失,相当于强制按主机上的重启按钮)
$ sudo virsh autostart vm1 # 设置虚拟机随着宿主主机开机自动启动(开机自动启动的虚拟机配置文件会自动在目录/etc/libvirt/qemu/autostart/目录下生成)
$ sudo virsh autostart --disable vm1 # 取消开机自启动
$ sudo virsh destroy vm1 # 强制关闭虚拟机电源
$ sudo virsh edit vm1 # 编辑虚拟机配置文件
$ sudo virsh uri # 查看当前主机上hypervisor的链接路径
$ sudo virsh vm1 # 移除虚拟机定义,即从虚拟机列表中移除虚拟机 该命令只是删除/etc/libvirt/qemu/目录下名为ubuntuserver1604.xml的配置文件,并不会删除虚拟机磁盘文件
$sudo virsh define vm1.xml #通过虚拟机配置文件重新定义虚拟机

注意,使用virsh shutdown ubuntuserver1604命令时,由于virsh实际上不能对虚拟机进行关机,只有虚拟机配置了acpid服务之后才能通过virsh进行关机,配置命令为:

$ sudo chkconfig acpid on
$ sudo service acpid restart # 注意这是指在虚拟机中配置该服务
  1. 后台模式启动虚拟机
sudo virsh start vm1 --console
  1. 删除虚拟机
    其中vm1为要删除的主机名字,第三部为删除占用的磁盘空间。
sudo virsh destroy vm1
sudo virsh undefine vm1
sudo rm -r /home/lemaker/open-source/images/vm1.image

你可能感兴趣的:(Linux,linux,kvm,ubuntu)