概述
主力电脑使用Mac的情况下,有的项目会需要Linux环境来编译项目。这个时候有很多选择,比如docker
容器(docker mac desktop 今年开始对200人以上团队的公司收费了)、服务器开发机等等。
当然还有就是安装Linux虚拟机(virtual machine),成熟的商业版虚拟机环境提供商VirtualBox, Parallell等等。本文介绍了在mac osx x86版本上使用Linux常用的虚拟机qemu
和和管理工具libvirt
搭建Linux虚拟机。
qemu
和libvirt
是啥关系?
qemu
是实际的虚拟机,而用来配置qemu
的参数有很多。libvirt
可以理解为是用来配置管理参数的。
本文接下来记录了安装Ubuntu 20.0.4 LTS服务器版本的流程。
安装virsh
和qemu
首先使用Homebrew
安装virsh
和qemu
。
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
这个时候,我们需要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