在 WSL 2 上安装 M.2 nvme ssd ext4 分区时出现奇怪的错误。Wsl/Service/AttachDisk/0x80070032

在 WSL 2 上安装 M.2 nvme ssd ext4 分区时出现奇怪的错误。Wsl/Service/AttachDisk/0x80070032

我正在尝试从 wsl 2 上的 M2 插槽 ssd 安装 ext4 分区。我收到错误 Wsl/Service/AttachDisk/0x80070032。磁盘列在下面的型号名称 CT500P2SSD8 下。我目前在 CT1000P3SSD8 上启动。有其他人遇到过这个问题吗?

wmic diskdrive list brief
Caption                               DeviceID            Model                                 Partitions  Size

TOSHIBA MQ01ABD100V SCSI Disk Device  \\.\PHYSICALDRIVE3  TOSHIBA MQ01ABD100V SCSI Disk Device  3           1000202273280
CT500P2SSD8                           \\.\PHYSICALDRIVE1  CT500P2SSD8                           6           500105249280

USB  SanDisk 3.2Gen1 USB Device       \\.\PHYSICALDRIVE2  USB  SanDisk 3.2Gen1 USB Device       2           30762547200

CT1000P3SSD8                          \\.\PHYSICALDRIVE0  CT1000P3SSD8                          3           1000202273280


λ wsl --mount   \\.\PHYSICALDRIVE1 --partition 3
The request is not supported.
Error code: Wsl/Service/AttachDisk/0x80070032

lsblk 在驱动器 CT500P2SSD8 上看起来像这样。它包含(按顺序)一个 Microsoft 保留分区、一个 Windows ntfs 驱动器、4 个 ext4 Linux 驱动器和 1 个 uefi fat 32 驱动器。

nvme1n1                    465.8G
├─nvme1n1p1                   16M
├─nvme1n1p2 ntfs            29.3G
├─nvme1n1p3 ext4     1.0   159.6G
├─nvme1n1p4 ext4     1.0    14.6G
├─nvme1n1p5 ext4     1.0    34.7G
├─nvme1n1p6 ext4     1.0   227.1G
└─nvme1n1p7 vfat     FAT32   199M

nvme1n1p1 is a Microsoft reserved Partition

我能够很好地从 \\.\PHYSICALDRIVE3(通过 sata 2.5" 到 usb 3)挂载 ext4 分区。

我查找了错误 Wsl/Service/AttachDisk/0x80070032,但找不到任何具体内容。我找到的最好的是https://github.com/microsoft/WSL/issues/8280,建议启用 Hyper V 功能。我已启用 Hyper V、VM 和 WSL。问题仍然存在。

我怀疑是因为 usbipd。我按照以下方法从 winget 安装了它。此连接 USB 教程在 Windows 文档中。

usbipd wsl list

但输出并不包括磁盘。

wsl --version
WSL version: 1.0.3.0
Kernel version: 5.15.79.1
WSLg version: 1.0.47
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.19045.2311

Microsoft 版本:Windows 10 版本 22H2 OS BUILD 19045.2311。(我也在 Windows 11 版本 22H2 上进行了验证)

背景信息:我尝试安装 ext4 分区,原因如下。过去 3 年,我主要在双启动配置中使用 linux。最近我需要使用更多仅限 Windows 的软件。我决定尝试 wsl2,看看我是否可以做得比双启动更好。我的目标是保留一个可启动的 linux 驱动器,我也将其用于 wsl2。我读到,使用双启动磁盘作为 wsl2 目标具有挑战性,甚至几乎不可能(参考参考文献2)。但是,只要分区位于单独的驱动器上,就可以安装分区。如果我可以修改个人文件,我不介意额外的空间来复制我在精益 wsl linux 发行版中使用的核心应用程序。我有一个精心设计的 doom emacs 安装加上 org roam (emacs) 目录,我将文档保存在我的 linux 驱动器中。我最初的目标是在这些文档之上在 wsl (wslg) 中运行 emacs,在操作系统之间仅保留一个版本而无需同步。

我已经发布Reddit也一样。

答案1

根据微软文章 在 WSL 2 中挂载 Linux 磁盘,您需要挂载磁盘而不是分区。

第一步应该是:

wsl --mount \\.\PHYSICALDRIVE1 --bare

这将使磁盘在 WSL 2 中可用。

一旦磁盘被挂载,就可以通过在 WSL 2 中运行以下命令列出其分区:

lsblk

这将显示可用的块设备及其分区。然后,您可以使用 Linux 语法访问已安装的分区 /dev/<Device><Partition>

相关内容