ubuntu20通过virsh安装ubuntu虚拟机
1. 环境准备
宿主机环境为ubuntu-20.04桌面版。
1.1 安装qemu
新版ubuntu直接使用apt安装即可,无需手动编译qemu。
sudo apt-get install qemu
sudo apt-get install qemu-system
1.2 安装libvirt
安装3个软件包libvirt0、libvirt-daemon、libvirt-daemon-system 安装命令
sudo apt-get install 包的名称
如果不安装libvirt-daemon-system,会有如下错误,尽管安装了libvirt-daemon后/usr/sbin下已经有libvirtd。 通过apt list --installed |grep libvirt,可以查看安装的libvirt相关的包。
1.3 下载iso镜像
使用的镜像为ubuntu-20.04.2-live-server-amd64.iso,复制下载链接使用迅雷下载速度会很快哦。值得一说,虚拟机是服务器版的系统,而宿主机是桌面版的。
2 使用virsh创建虚拟机
2.1 创建磁盘
qemu-img主要使用raw和qcow2两种格式的磁盘,磁盘的大小需考虑系统的大小,这里分了30G。
qemu-img create -f raw ubuntu.img 30G
格式化磁盘如下,也可以使用mkfs.ext4。
mkfs -t ext4 ubuntu.img
2.2 编写xml文件
virsh通过xml定义虚拟机,这里给出一种方案,相对来说还是比较简洁的。模拟器使用的是qemu-system-x86_64,有很多其他文章使用qemu-kvm,具体的目录得看安装在哪里。graphics的配置是为了提供vnc访问,这样可以登录到虚拟机。在首次安装时,,意思是从光盘启动。前面创建的磁盘还是空的,没有装系统,所以要从光盘启动安装系统。当系统安装完成后,同时注释光盘对应的磁盘描述。
<domain type='kvm'>
<name>ubuntu-20.04</name>
<memory unit='GiB'>4</memory>
<currentMemory unit='GiB'>4</currentMemory>
<vcpu>2</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-4.2'>hvm</type>
<boot dev='hd'/>
<bootmenu enable='no'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='localtime'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/home/pl/vm/ubuntu-20.04_disk/ubuntu.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
<!-- <disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/pl/vm/ubuntu-20.04_disk/ubuntu-20.04.2-live-server-amd64.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk> --> //仅在安装系统时使用,这里<!-- -->是xml文件特有的多行注释
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>
<listen type='address' address='0.0.0.0'/>
</graphics>//为了登录到虚拟机
</devices>
</domain>
2.3 创建虚拟机
使用xml文件创建虚拟机,如下即可。
virsh define *.xml
然后,启动虚拟机。启动虚拟机用的是xml中描述的虚拟机的名称,启动成功会有提示。
virsh start ubuntu-20.04
如果要修改xml配置,那么就要先关闭虚拟机。然而,如果配置文件没有配置graphics,vnc通信没有建立,也没有其它可替代的通信方式,或者启动panic,virsh shutdown根本就不能关闭虚拟机,这时要找到虚拟机相关的进程kill强制结束才能关闭。
virsh shutdown ubuntu-20.04
使用vnc连接虚拟机。那么宿主机要安装vnc连接的程序,这里安装的gvncviewer。ubuntu20的apt-get没有vncviewer了,所以换成gvncviewer。查看虚拟机vnc端口,virsh vncdisplay ubuntu-20.04,说明使用端口0。 使用vnc即可连接虚拟机,进入的页面正好是ubuntu安装的引导界面,安装即可。安装完成之后,要拔除cdrom,可是这里cdrom是虚拟的。直接shutdown虚拟机,修改xml为硬盘启动,再启动虚拟机即可。
gvncviewer 127.0.0.1:0
|