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

M1 Mac 适用的轻量 Linux VM

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