AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 683650
Accepted
maddingl
maddingl
Asked: 2021-12-24 06:48:35 +0800 CST2021-12-24 06:48:35 +0800 CST 2021-12-24 06:48:35 +0800 CST

从 Dualboot 作为 WSL 运行现有操作系统

  • 772

我有一个现有的带有 Windows 11 和 Arch Linux 的 Dualboot-Setup,由 grub 管理。

是否可以在 Windows 中将我的 Arch 系统用作 WSL?

$ lsblk -f
NAME FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
|
|-nvme0n1p1
|    vfat   FAT32       73A8-FF43                             451.3M    12% /boot
|-nvme0n1p2
|    swap   1           23fe1eb0-971a-455f-bb80-301c0eb7eed5                [SWAP]
|-nvme0n1p3
|    ext4   1.0         702789b8-6895-4117-98f3-56908ea027d0  180.4G     3% /
`-nvme0n1p4
     ext4   1.0         9ac9ebb5-c604-4d89-875d-89590ff43db6    672G     0% /home
nvme1n1
|
|-nvme1n1p1
|    vfat   FAT32 SYSTEM
|                       BABE-8522
|-nvme1n1p2
|
|-nvme1n1p3
|    ntfs         Windows
|                       EC0AC1070AC0CFAE                      402.8G    15% /windows
`-nvme1n1p4
     ntfs         WinRE_DRV
                        0EFEC19BFEC17C09
windows-subsystem-for-linux
  • 1 1 个回答
  • 578 Views

1 个回答

  • Voted
  1. Best Answer
    NotTheDr01ds
    2021-12-28T05:34:22+08:002021-12-28T05:34:22+08:00

    据我所知,目前还没有一种方法可以从最初未被 WSL“初始化”的驱动器中实际引导WSL 实例。

    不过,至少有两种可能的解决方法。两者都需要 Windows 11,或者至少需要 Windows 10 的开发人员/内部人员版本。

    1. 如果您只是想从不同的 WSL2 实例中访问 Arch 分区上的文件,那么应该相当简单。您可以使用此处记录的 Microsoft 说明安装现有物理分区。

    2. 如果您真的想在 WSL2 下使用这些 Arch 分区,那么这会稍微复杂一些,但通过将其设置为chroot在单独的 WSL2 实例下访问仍然可能是可行的。

      这有几个巨大的警告:

      • WSL2 不直接支持 Systemd。有一些方法可以让它运行,但它们是 hacky 的解决方法。
      • 相关——由于 Arch 系统的许多启动可能依赖于 Systemd,因此您需要通过其他方式自己启动大部分必要的服务。
      • 即使您确实运行了 Systemd,它也会做一些期望物理硬件可用的事情。例如,它会尝试启动 X/Wayland。对于 WSL,这需要由 WSLg 实例处理。

      如果这是您要走的路线,那么您需要:

      • 根据用于挂载分区磁盘的相同 WSL2 文档挂载必要的 Linux 分区。

      • 创建一个最小的“引导”WSL2 实例。如果这是一个长期的解决方案,那么我可能会选择 Alpine 作为它的基础发行版,因为它非常“精简”,但从一些更“全功能”开始可能是最简单的(在框)喜欢Ubuntu。过去,我曾将现有的 Ubuntu 发行版用于类似chroot的用途。

      • 为 chroot 创建一个目录。

      • sudo mount --bind(绑定挂载)将挂载的分区从它们的默认位置(通常/mnt/wsl)移动到适当的位置(即 chroot 目录本身用于 rootfs 分区,以及其中的主目录,当然,用于/home分区)。

      • 最棘手的部分是让 chroot 可以使用所有 WSL 特殊安装和套接字。我之前已经按照此处记录的方式完成了此操作,对于 Arch 来说应该是类似的。也就是说,请确保记录您所做的任何更改,以便在需要更改回使用它们进行双启动时可以“退出”。

        /initWSL 通常会通过其流程为您设置大部分内容,但chroot您需要手动完成。涉及的目录、文件和套接字至少是:

        • /mnt/wsl:包括resolv.conf由 WSL 生成的用于 Windows 网络的
        • /etc/resolv.conf: 需要符号链接到生成的版本。
        • /mnt/wslg:用于与运行图形应用程序的 WSLg Weston 发行版通信
        • mnt/wslg/.X11-unix/(X插口)
        • /run/WSL: 与 Windows 互操作
        • /dev
        • /proc
        • /dev/pts
        • /sys
        • /binfmt_misc: 用于运行 Windows.exe的
    • 2

相关问题

  • SSH linux子系统windows 10

  • Bash For循环不起作用

  • SSH进入同一网络上的两台不同机器[关闭]

  • 在 Bash 中绑定 ALT-F4 以退出的方法(Windows 上的 Ubuntu 上的 Bash)

  • 适用于 Linux 的 Windows 子系统上的 OpenZFS

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve