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

M1 Mac 适用的轻量 Linux VM

  •  1
     
  •   gyf304
    gyf304 2021-01-15 05:48:12 +08:00 6004 次点击
    这是一个创建于 1733 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2022-04-08 14:40:28 +08:00
    yzbythesea
        1
    yzbythesea  
       2021-01-15 06:51:33 +08:00
    如果想做一个 alpine 的 VM 是类似的吗?
    gyf304
        2
    gyf304  
    OP
       2021-01-15 06:53:51 +08:00
    可以参考 Ubuntu VM 创建脚本弄一个 https://github.com/gyf304/vmcli/blob/main/vmbuilders/ubuntu.sh
    Ariver
        3
    Ariver  
       2021-01-15 07:58:14 +08:00 via iPhone
    问个可能外行的问题,m1 芯片的 mac 启动的 ubuntu 可能是 x86 的吗?
    如果这个 virtual 做了转换封装啥的
    Tink
        4
    Tink  
    PRO
       2021-01-15 08:09:13 +08:00 via Android
    这是 macOS 自带的虚拟化软件?
    gyf304
        5
    gyf304  
    OP
       2021-01-15 08:22:08 +08:00
    @Tink macOS 自带了 `Virtualization.framework` 但是没有给你直接跑 VM 的软件。所以写了两个工具:`vmcli` 在 `Virtualization.framework` 之上给你了一个 CLI,`vmctl` 又把 `vmcli` daemon 化了。虚拟化本身是 macOS 自己提供的。
        6
    gyf304  
    OP
       2021-01-15 08:23:24 +08:00
    @Ariver 不能,这是 Virtualization 不是 Emulation 。不过 x86_64 的 host 应该是可以用这个跑 x86_64 的 VM 的。
    gyf304
    soseek
        7
    soseek  
       2021-01-15 13:44:56 +08:00
    性能怎么样呀
    gyf304
        8
    gyf304  
    OP
       2021-01-15 14:51:00 +08:00
    @soseek 感受上基本没有什么性能损失
    soseek
        9
    soseek  
       2021-01-15 20:47:12 +08:00 via Android
    Star 了,话说能不能实现共享 Mac 目录的呢
    justin2018
        10
    justin2018  
       2021-01-15 21:49:10 +08:00
    可以支持 brew 安装不
    brew install vmcli 这样多爽
    gyf304
        11
    gyf304  
    OP
       2021-01-16 01:57:16 +08:00
    @soseek 正在研究 希望可以在宿主上跑 9pfs 目前可以考虑 sshfs 挂载 host
    gyf304
        12
    gyf304  
    OP
       2021-01-16 02:28:26 +08:00
    庆祝一下破 300 stars
    tkl
        13
    tkl  
       2021-01-16 17:54:05 +08:00
    看起来像是 qemu ?
    April5
        14
    April5  
       2021-01-17 01:50:54 +08:00
    还有 vftool,昨天试了下内存占用真的心动
    chux0519
        15
    chux0519  
       2021-01-18 11:54:18 +08:00
    star 了,之前一直在用 xhyve,也是可以极大降低内存占用。
    sbilly
        16
    sbilly  
       2021-01-20 11:56:36 +08:00
    必须 M1 吗?这个框架好像是比较新的 macOS 就行吧
    gyf304
        17
    gyf304  
    OP
       2021-01-20 14:14:40 +08:00
    @sbilly x86_64 应该也行的
    killerirving
        18
    killerirving  
       2021-01-21 10:12:30 +08:00
    强强强
    sbilly
        19
    sbilly  
       2021-02-19 11:17:19 +08:00
    @gyf304 请问 macOS 的 Virtualization.framework 支持多网卡吗?
    gyf304
        20
    gyf304  
    OP
       2021-02-23 06:33:47 +08:00
    @sbilly 支持,但需要额外的 entitlement 签名
    BrettD
        21
    BrettD  
       2021-02-27 09:21:58 +08:00 via iPhone
    想问一下 Apple 的这个 Virtualization framework 接口可以用来启动别的操作系统吗?想要运行 FreeBSD 虚拟机,但是发现官方文档里面只给了启动 Linux guest OS 的示例代码。
    gyf304
        22
    gyf304  
    OP
       2021-02-27 09:45:10 +08:00
    @BrettD 似乎目前只支持 Linux,可以尝试先启动 Linux 然后用 kexec 执行 FreeBSD 。
    BrettD
        23
    BrettD  
       2021-02-27 09:48:28 +08:00
    @gyf304 哇,真的可以从 Linux 内核直接 kexec 进 FreeBSD 内核吗?
    gyf304
        24
    gyf304  
    OP
       2021-02-27 09:51:42 +08:00
    @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  
       2022-04-08 14:40:28 +08:00
    @gyf304 请问 macOS 的 Virtualization.framework 支持访问串口设备吗?比如 /dev/tty.usbmodem1421 这种
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     922 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:54 PVG 04:54 LAX 13:54 JFK 16:54
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86