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% ...
![]() | 1 yzbythesea 2021-01-15 06:51:33 +08:00 如果想做一个 alpine 的 VM 是类似的吗? |
![]() | 2 gyf304 OP 可以参考 Ubuntu VM 创建脚本弄一个 https://github.com/gyf304/vmcli/blob/main/vmbuilders/ubuntu.sh |
![]() | 3 Ariver 2021-01-15 07:58:14 +08:00 via iPhone 问个可能外行的问题,m1 芯片的 mac 启动的 ubuntu 可能是 x86 的吗? 如果这个 virtual 做了转换封装啥的 |
![]() | 4 Tink PRO 这是 macOS 自带的虚拟化软件? |
![]() | 5 gyf304 OP @Tink macOS 自带了 `Virtualization.framework` 但是没有给你直接跑 VM 的软件。所以写了两个工具:`vmcli` 在 `Virtualization.framework` 之上给你了一个 CLI,`vmctl` 又把 `vmcli` daemon 化了。虚拟化本身是 macOS 自己提供的。 |
![]() |
7 soseek 2021-01-15 13:44:56 +08:00 性能怎么样呀 |
9 soseek 2021-01-15 20:47:12 +08:00 via Android Star 了,话说能不能实现共享 Mac 目录的呢 |
![]() | 10 justin2018 2021-01-15 21:49:10 +08:00 可以支持 brew 安装不 brew install vmcli 这样多爽 |
![]() | 12 gyf304 OP 庆祝一下破 300 stars |
13 tkl 2021-01-16 17:54:05 +08:00 看起来像是 qemu ? |
14 April5 2021-01-17 01:50:54 +08:00 还有 vftool,昨天试了下内存占用真的心动 |
![]() | 15 chux0519 2021-01-18 11:54:18 +08:00 star 了,之前一直在用 xhyve,也是可以极大降低内存占用。 |
![]() | 16 sbilly 2021-01-20 11:56:36 +08:00 必须 M1 吗?这个框架好像是比较新的 macOS 就行吧 |
![]() | 18 killerirving 2021-01-21 10:12:30 +08:00 强强强 |
![]() | 21 BrettD 2021-02-27 09:21:58 +08:00 via iPhone 想问一下 Apple 的这个 Virtualization framework 接口可以用来启动别的操作系统吗?想要运行 FreeBSD 虚拟机,但是发现官方文档里面只给了启动 Linux guest OS 的示例代码。 |
![]() | 24 gyf304 OP @BrettD 有人试过 kexec 到 grub. https://unix.stackexchange.com/questions/360834/kexec-to-grub-or-to-syslinux-or-windows 还有这个 https://www.linuxboot.org/ 直接 kexec FreeBSD 大概是不行的 |