爱意满满的作品展示区。
gyf304

M1 Mac 适用的轻量 Linux VM

  •  1
     
  •   gyf304 ·
    gyf304 · Jan 15, 2021 · 7007 views
    This topic created in 2125 days ago, the information mentioned may be changed or developed.

    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%
    ...
    
    25 replies  •  2022-04-08 14:40:28 +08:00
    yzbythesea
    yzbythesea
    Jan 15, 2021
    1
    如果想做一个 alpine 的 VM 是类似的吗?
    gyf304
    gyf304
    OP
    Jan 15, 2021
    2
    可以参考 Ubuntu VM 创建脚本弄一个 https://github.com/gyf304/vmcli/blob/main/vmbuilders/ubuntu.sh
    Ariver
    Ariver
    Jan 15, 2021 via iPhone
    3
    问个可能外行的问题,m1 芯片的 mac 启动的 ubuntu 可能是 x86 的吗?
    如果这个 virtual 做了转换封装啥的
    Tink
    Tink
    Jan 15, 2021 via Android
    4
    这是 macOS 自带的虚拟化软件?
    gyf304
    gyf304
    OP
    Jan 15, 2021
    5
    @Tink macOS 自带了 `Virtualization.framework` 但是没有给你直接跑 VM 的软件。所以写了两个工具:`vmcli` 在 `Virtualization.framework` 之上给你了一个 CLI,`vmctl` 又把 `vmcli` daemon 化了。虚拟化本身是 macOS 自己提供的。
    gyf304
    gyf304
    OP
    Jan 15, 2021
    6
    @Ariver 不能,这是 Virtualization 不是 Emulation 。不过 x86_64 的 host 应该是可以用这个跑 x86_64 的 VM 的。
    soseek
    soseek
    Jan 15, 2021
    7
    性能怎么样呀
    gyf304
    gyf304
    OP
    Jan 15, 2021
    8
    @soseek 感受上基本没有什么性能损失
    soseek
    soseek
    Jan 15, 2021 via Android
    9
    Star 了,话说能不能实现共享 Mac 目录的呢
    justin2018
    justin2018
    Jan 15, 2021
    10
    可以支持 brew 安装不 😁
    brew install vmcli 这样多爽 😁
    gyf304
    gyf304
    OP
    Jan 16, 2021
    11
    @soseek 正在研究 希望可以在宿主上跑 9pfs 目前可以考虑 sshfs 挂载 host
    gyf304
    gyf304
    OP
    Jan 16, 2021
    12
    庆祝一下破 300 stars
    tkl
    tkl
    Jan 16, 2021
    13
    看起来像是 qemu ?
    April5
    April5
    Jan 17, 2021
    14
    还有 vftool,昨天试了下内存占用真的心动
    chux0519
    chux0519
    Jan 18, 2021
    15
    star 了,之前一直在用 xhyve,也是可以极大降低内存占用。
    sbilly
    sbilly
    Jan 20, 2021
    16
    必须 M1 吗?这个框架好像是比较新的 macOS 就行吧
    gyf304
    gyf304
    OP
    Jan 20, 2021
    17
    @sbilly x86_64 应该也行的
    killerirving
    killerirving
    Jan 21, 2021
    18
    强强强
    sbilly
    sbilly
    Feb 19, 2021
    19
    @gyf304 请问 macOS 的 Virtualization.framework 支持多网卡吗?
    gyf304
    gyf304
    OP
    Feb 23, 2021
    20
    @sbilly 支持,但需要额外的 entitlement 签名
    BrettD
    BrettD
    Feb 27, 2021 via iPhone
    21
    想问一下 Apple 的这个 Virtualization framework 接口可以用来启动别的操作系统吗?想要运行 FreeBSD 虚拟机,但是发现官方文档里面只给了启动 Linux guest OS 的示例代码。
    gyf304
    gyf304
    OP
    Feb 27, 2021
    22
    @BrettD 似乎目前只支持 Linux,可以尝试先启动 Linux 然后用 kexec 执行 FreeBSD 。
    BrettD
    BrettD
    Feb 27, 2021
    23
    @gyf304 哇,真的可以从 Linux 内核直接 kexec 进 FreeBSD 内核吗?
    gyf304
    gyf304
    OP
    Feb 27, 2021
    24
    @BrettD 有人试过 kexec 到 grub. https://unix.stackexchange.com/questions/360834/kexec-to-grub-or-to-syslinux-or-windows
    还有这个 https://www.linuxboot.org/
    直接 kexec FreeBSD 大概是不行的
    Acebiu
    Acebiu
    Apr 8, 2022
    25
    @gyf304 请问 macOS 的 Virtualization.framework 支持访问串口设备吗?比如 /dev/tty.usbmodem1421 这种
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1129 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    ♥ Do have faith in what you're doing.