mac(OSX)|mac(OSX) Big Sur上使用libvirt+qemu安装和运行ubuntu 20.04 LTS虚拟机(VM)

概述 主力电脑使用Mac的情况下,有的项目会需要Linux环境来编译项目。这个时候有很多选择,比如docker容器(docker mac desktop 今年开始对200人以上团队的公司收费了)、服务器开发机等等。
当然还有就是安装Linux虚拟机(virtual machine),成熟的商业版虚拟机环境提供商VirtualBox, Parallell等等。本文介绍了在mac osx x86版本上使用Linux常用的虚拟机qemu和和管理工具libvirt搭建Linux虚拟机。

qemulibvirt是啥关系?
qemu是实际的虚拟机,而用来配置qemu的参数有很多。libvirt可以理解为是用来配置管理参数的。
本文接下来记录了安装Ubuntu 20.0.4 LTS服务器版本的流程。
安装virshqemu 首先使用Homebrew安装virshqemu
brew install libvirt qemu

另一个,从Github拉取qemu的源代码后再进行build安装qemu的方法是
git clone https://github.com/qemu/qemu.git cd qemu mkdir build cd build ../configure make

从源码安装qemu可以参考qemu wiki。
准备Ubuntu的镜像文件和virsh的配置文件 Ubuntu镜像文件
准备Ubuntu的镜像安装文件,从发行版的官网选择镜像文件,这里使用的是Ubuntu 20.0.4 LTS服务器的版本。
这里假设我们存放镜像文件的的路径是
~/Downloads/ubuntu-20.04.4-live-server-amd64.iso
virsh配置文件
准备一个文件夹vm_ubuntu存放配置文件和虚拟机qcow2文件。
mkdir vm_ubuntu cd vm_ubuntu

这里假设vm_ubuntu文件夹的路径是
~/Documents/vm_ubuntu/
这里我们需要创建一个qcow2的文件作为虚机的镜像和硬盘,使用到了qemu-img的命令。
qemu-img create -f qcow2 ubuntu.qcow2 50g

准备工作完成了一半,接下来是最重要的virsh配置文件的准备。
文件名 ubuntu_server.xml,文件内容如下。
ubuntu_server 9ba74175-00e8-4837-a0ff-00ac74b732cb 2 Westmere 2 hvm destroy restart destroy /usr/local/bin/qemu-system-x86_64

Build和运行虚机 按照顺序调用命令来构建虚机
virsh define ubuntu_server.xml

运行虚机
virsh start ubuntu_server

【mac(OSX)|mac(OSX) Big Sur上使用libvirt+qemu安装和运行ubuntu 20.04 LTS虚拟机(VM)】这个时候,我们需要VNC来访问虚机的可交互界面,这里使用TigerVNC
按照上述的配置,访问地址和端口为
127.0.0.1:5900

在一次启动虚机的时候需要按ctrl+shift+delet,之后按esc,剩下的就是标准的Ubuntu安装流程,这里不做叙述。
关闭虚机的命令
virsh shutdown ubuntu_server

或者删除虚机(注意备份)
virsh destroy ubuntu_server

更多关于virsh配置文件需要注意的地方 因为参数过多,就不一一解释,这里来说说CPU的架构,经测试目前mac上面只能构建SandyBridge之前的x86_64架构的虚拟机,这里我们定义是Westmere架构的cpu。
如果想多了解你安装的qemu支持的虚拟机型号和cpu型号可以调用下面的命令。
qemu-system-x86_64 -machine help

q35型号机器对应的cpu型号列表。
qemu-system-x86_64 -machine q35 -cpu help

另外提醒这里
...... /usr/local/bin/qemu-system-x86_64 ......

需要完整的路径比如
/usr/data/vm_ubuntu/ubuntu.qcow2

此外,qemu-system-x86_64还需要定义可执行文件的存放路径,查找路径可以使用命令。
which qemu-system-x86_64

    推荐阅读