6

我们可以在x86_64 windows机器上安装并运行用于arm64 arch的Ubuntu WSL吗?

2个答案2

重置为默认值
9

Windows Subsystem for Linux不支持在x86_64体系结构PC上运行ARM64发行版。

WSL1将Linux系统调用转换为Windows系统调用,允许Linux二进制文件在Windows内核上运行。在使用WSL 1的x86_64体系结构PC上运行ARM二进制文件没有内置支持。

在WSL2中,Linux发行版在虚拟机中运行,因此Linux应用程序和Linux内核本身之间不涉及转换层。此VM设计为在与主机系统相同的体系结构上运行。尽管WSL2使用虚拟化,但它不支持在x86_64体系结构PC上直接运行ARM体系结构发行版。

  • 1
    注意,qemu-user可以用于执行wsl中的任何二进制文件,因此可以在运行qemu-user的wsl1中的窗口中实际执行arm64二进制文件。虽然这对于整个发行版来说还不够,但已经接近了。
    – 彼得
    评论 5月21日9:58
  • @从技术上讲,peterh-qemu-user在WSL1上是可用的,但除了隔离的静态二进制文件之外,很难在其他任何情况下使用它,因为您不能将binfmt_misc用于WSL1。不过,对于WSL2,您可以使用binfmt_misc,因此您可以将qemu用户用于任何容器系统,甚至只是一个chroot,以获得一个完整的跨体系结构环境,就像在常规Linux系统上一样。 评论 5月21日10:54
  • 1
    @是的,但WSL2是windows中的VM,而不是子系统。它的名字已经是一个谎言,正是为了掩盖使用WSL2时,您被封闭在虚拟机中。我永远不会使用WSL2,我会使用virtualbox或qemu(但最高兴的是,linux将是我的主机,我的胜利将是VM)。
    – 彼得
    评论 5月21日12:21
5

WSL2运行完整的Linux内核,可以使用标准的Linux仿真软件。具体来说,qemu-user-static是一个允许Linux执行不同体系结构的二进制文件的包。完全添加Windows认为是新WSL发行版的新映像可能会很困难,但使用chroot可以实现大部分功能。有一个示例脚本可用在这里来设置它。

或者,您可以使用Docker。Docker Desktop是一个内置qemu的原生Windows应用程序,可以设置Docker容器,它结合了chroot和其他一些技术。只需执行以下命令即可将您放入ARM Ubuntu shell:

docker运行-it-rm——平台linux/arm64 ubuntu

其他标志可以共享文件夹、变量和图形访问。


如果您有兴趣将其添加为新的WSL2分发版,您可能会能够导入Docker图像或chroot文件夹虽然我还没有测试过,因为仿真程序在WSL2分发之间共享,将其添加到一个操作系统中可能会为其他操作系统提供模拟功能。

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.