M1 Mac 适用的轻量 Linux VM

2021-01-15 05:48:12 +08:00
 gyf304

Apple 有一个 Virtualization.framework 可以直接启动 Linux VM 。做了一个简单的 wrapper 来启动+管理 VM,自己正在用。

见: https://github.com/gyf304/vmcli

Repo 里有安装教程,需要你已经安装了 XCode 。 用安装教程创建 Ubuntu VM 需要你已经有 ~/.ssh/id_rsa.pub,没有可以自己用 ssh-keygen 生成一个。

安装完用起来大概是这么一个效果:

yifangu@Yifans-MacBook-Air ~ % vmctl start ubuntu
yifangu@Yifans-MacBook-Air ~ % vmctl ssh ubuntu
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-60-generic aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Jan 14 16:42:30 UTC 2021

  System load:  0.0               Processes:               96
  Usage of /:   35.6% of 3.85GB   Users logged in:         0
  Memory usage: 17%               IPv4 address for enp0s1: 192.168.64.12
  Swap usage:   0%
...
5241 次点击
所在节点    分享创造
25 条回复
yzbythesea
2021-01-15 06:51:33 +08:00
如果想做一个 alpine 的 VM 是类似的吗?
gyf304
2021-01-15 06:53:51 +08:00
可以参考 Ubuntu VM 创建脚本弄一个 https://github.com/gyf304/vmcli/blob/main/vmbuilders/ubuntu.sh
Ariver
2021-01-15 07:58:14 +08:00
问个可能外行的问题,m1 芯片的 mac 启动的 ubuntu 可能是 x86 的吗?
如果这个 virtual 做了转换封装啥的
Tink
2021-01-15 08:09:13 +08:00
这是 macOS 自带的虚拟化软件?
gyf304
2021-01-15 08:22:08 +08:00
@Tink macOS 自带了 `Virtualization.framework` 但是没有给你直接跑 VM 的软件。所以写了两个工具:`vmcli` 在 `Virtualization.framework` 之上给你了一个 CLI,`vmctl` 又把 `vmcli` daemon 化了。虚拟化本身是 macOS 自己提供的。
gyf304
2021-01-15 08:23:24 +08:00
@Ariver 不能,这是 Virtualization 不是 Emulation 。不过 x86_64 的 host 应该是可以用这个跑 x86_64 的 VM 的。
soseek
2021-01-15 13:44:56 +08:00
性能怎么样呀
gyf304
2021-01-15 14:51:00 +08:00
@soseek 感受上基本没有什么性能损失
soseek
2021-01-15 20:47:12 +08:00
Star 了,话说能不能实现共享 Mac 目录的呢
justin2018
2021-01-15 21:49:10 +08:00
可以支持 brew 安装不 😁
brew install vmcli 这样多爽 😁
gyf304
2021-01-16 01:57:16 +08:00
@soseek 正在研究 希望可以在宿主上跑 9pfs 目前可以考虑 sshfs 挂载 host
gyf304
2021-01-16 02:28:26 +08:00
庆祝一下破 300 stars
tkl
2021-01-16 17:54:05 +08:00
看起来像是 qemu ?
April5
2021-01-17 01:50:54 +08:00
还有 vftool,昨天试了下内存占用真的心动
chux0519
2021-01-18 11:54:18 +08:00
star 了,之前一直在用 xhyve,也是可以极大降低内存占用。
sbilly
2021-01-20 11:56:36 +08:00
必须 M1 吗?这个框架好像是比较新的 macOS 就行吧
gyf304
2021-01-20 14:14:40 +08:00
@sbilly x86_64 应该也行的
killerirving
2021-01-21 10:12:30 +08:00
强强强
sbilly
2021-02-19 11:17:19 +08:00
@gyf304 请问 macOS 的 Virtualization.framework 支持多网卡吗?
gyf304
2021-02-23 06:33:47 +08:00
@sbilly 支持,但需要额外的 entitlement 签名

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745086

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX