V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dangyuluo
V2EX  ›  macOS

M1 Pro 机器上有没有办法运行 x86_64 Linux 系统

  •  
  •   dangyuluo · 2023-01-26 03:01:25 +08:00 · 3860 次点击
    这是一个创建于 665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近实在不想所有开发都需要 SSH 了,有没有什么办法可以在 M1 pro 的机器上运行 x86_64 的虚拟机呢?看了下 Parallels Desktop 似乎只能运行 Ubuntu Aarch64

    第 1 条附言  ·  2023-01-26 10:50:28 +08:00
    重点不是 Linux ,重点是 x86_64 ,公司的编译架构都是 x86_64 的
    19 条回复    2023-01-27 17:24:17 +08:00
    maxmak
        1
    maxmak  
       2023-01-26 03:06:10 +08:00   ❤️ 1
    我直接用老 mbp
    forgetlight
        2
    forgetlight  
       2023-01-26 03:15:42 +08:00   ❤️ 3
    UTM 可以做 x86 的虚拟机,但是效率很低。
    xuhaoyangx
        3
    xuhaoyangx  
       2023-01-26 04:07:47 +08:00
    我是用 Docker 跑没办法在 ARM 编译过 /不开源的 X86
    dangyuluo
        4
    dangyuluo  
    OP
       2023-01-26 04:38:02 +08:00
    好像没什么好办法😔
    zjsxwc
        5
    zjsxwc  
       2023-01-26 06:59:29 +08:00 via Android   ❤️ 1
    m1 虚拟机里运行 x8664 的 linux 效率非常低,不推荐用虚拟机。
    holulu
        6
    holulu  
       2023-01-26 07:15:02 +08:00
    架构不同,只能用模拟器。如 qemu 。UTM 就是用 qemu 跑 x86_64 系统的,Docker 也可以用的 qemu 跑 x86_64 容器的。
    mritd
        7
    mritd  
       2023-01-26 08:22:44 +08:00 via iPhone
    Lima 试试,现在支持 Rosetta 了
    BrettD
        8
    BrettD  
       2023-01-26 08:26:38 +08:00 via iPhone   ❤️ 1
    ARM 模拟 x86 效率肯定很低
    gilgameshhh
        9
    gilgameshhh  
       2023-01-26 08:53:22 +08:00
    M2 芯片出来之前就有传言说要支持嵌套虚拟化,也就是支持 x86 的 docker 。不知道现在是不是真支持了
    dayeye2006199
        10
    dayeye2006199  
       2023-01-26 09:04:40 +08:00
    lqf96
        11
    lqf96  
       2023-01-26 09:20:32 +08:00 via iPhone
    不可以但是 Rosetta 2 现在应该支持 Linux 虚拟机了,所以至少用户态程序可以转译运行了: https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta
    SteveLee
        12
    SteveLee  
       2023-01-26 10:29:52 +08:00
    使用 UTM ,用 Apple Virtualization ,可以按照 @lqf96 的方法挂载 rosetta 进去,然后 chroot 到一个 x86 的 Linux 就可以了
    mmr
        13
    mmr  
       2023-01-26 10:52:44 +08:00 via Android
    最简单的方法当然是直接 VMWARE
    SteveLee
        14
    SteveLee  
       2023-01-26 11:25:22 +08:00 via iPhone
    Ayahuasec
        15
    Ayahuasec  
       2023-01-26 11:49:22 +08:00 via Android
    我记得 linux 下是可以用 qemu-user 直接模拟运行其他构架的二进制文件,配置好以后效果类似 rosetta 。OP 可以试试就用 aarch64 的 linux 虚拟机,这样系统内核是满速虚拟化的,然后 x86_64 的应用程序通过 qemu-user 运行,可能跑起来会快一点。
    ShadowPower
        16
    ShadowPower  
       2023-01-26 12:10:38 +08:00   ❤️ 1
    我预感你很快就要问“怎么调试二进制程序”的问题……

    我感觉现在有些开发用 M1 就是非常折腾,以前买 Mac 都是图方便的,现在我都放弃了。
    ETiV
        17
    ETiV  
       2023-01-26 12:15:41 +08:00
    开一个 x86 虚拟机,ssh 上去开发调试,当代 IDE 都支持远程,所有操作都是本地的体验,而性能、内存还都是服务器的。

    你甚至不用担心你手里的电脑挂掉,换台电脑继续 ssh 战斗就行了。
    wengych
        18
    wengych  
       2023-01-26 12:20:28 +08:00
    findex
        19
    findex  
       2023-01-27 17:24:17 +08:00
    可以。用 qemu 自带的软件虚拟化,不能进行硬件加速 x86 的系统。我一直在用。系统是 debian amd64 位,在 m1 上给 8 核心、8G ram ,gcc 编译 benchmark 相当于 i7 8700k 的 25%。不是不能用,就是会很慢。我有 i9 9900K 工作站,所以 UTM 基本上吃灰。qemu 只有用 arm64 的系统时候,才会在 m1 上有硬件加速的加成。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1117 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.