V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
gyf304
V2EX  ›  分享创造

M1 Mac 适用的轻量 Linux VM

  •  1
     
  •   gyf304 · 327 天前 · 4101 次点击
    这是一个创建于 327 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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