在 WSL 2 中挂载 Linux 磁盘

操作前注意:文中的挂载和卸载命令会改变磁盘挂载状态。先备份重要数据,确认目标磁盘没有被 Windows 或其他进程使用;示例盘号、路径和占位符须按实际环境替换,方括号表示可选参数,不要原样整段运行,也不要对系统盘试错。

如果要访问 Windows 不支持的 Linux 磁盘格式,可以使用 WSL 2 装载磁盘并访问其内容。 本教程将介绍标识要附加到 WSL2 的磁盘和分区的步骤、如何装载它们以及如何对其进行访问。

如果你正在连接外部硬盘,且按照这些装载说明操作不成功,则可能需要参考连接 USB 设备的说明。 wsl --mount 命令目前不支持 USB/闪存驱动器/SD 读卡器(详细了解此问题)。

注意

将磁盘附加到 WSL 2 需要管理员访问权限。 WSL 2 wsl --mount 命令不支持装载当前正在使用的磁盘(或属于该磁盘的分区)。 即使只请求一个分区,wsl --mount 也始终会附加整个磁盘。 无法装载 Windows 安装磁盘。

先决条件

需要位于 Windows 11 上,或运行 WSL Microsoft 应用商店版本。 若要检查 WSL 和 Windows 版本,请使用以下命令:wsl.exe --version

使用 Windows 格式设置与 Linux 格式设置装载外部驱动器之间的差异

为 Windows 设置格式的外部驱动器通常使用 NTFS 文件系统格式。 为 Linux 设置格式的外部驱动器通常使用 Ext4 文件系统格式。

如果在 Windows 文件系统上装载了 NTFS 格式的驱动器,则可以使用 WSL 从 Linux 分发版访问该驱动器,方法是创建一个装载的目录(sudo mkdir /mnt/d替换为 d 要使用的驱动器号),然后使用 drvfs 文件系统互作插件和命令:

编者说明:这里的目录创建命令是 sudo mkdir /mnt/d;示例中的盘符 D: 和目录 /mnt/d 要成对替换为实际目标。

sudo mount -t drvfs D: /mnt/d

详细了解装载场景。

如果你有 Ext4 格式的驱动器,则无法将其装载到 Windows 文件系统上。 若要使用 WSL 在 Linux 分发版中装载 Ext4 格式的驱动器,可以按照下面的说明使用 wsl --mount 命令。

装载未分区的磁盘

如果磁盘没有任何分区,则可以使用 wsl --mount 命令直接装载该磁盘。 首先需要标识磁盘。

  1. 标识磁盘 – 要列出 Windows 中的可用磁盘,请运行:

    Get-CimInstance -Query "SELECT * from Win32_DiskDrive"
    

    磁盘路径在“DeviceID”列下可用。 通常采用 \\.\PHYSICALDRIVE* 格式。

  2. 装载磁盘 – 使用 PowerShell,可以使用上面发现的磁盘路径装载磁盘,请运行:

    wsl.exe --mount <Disk>
    

    在 WSL 中装载驱动器

    原图说明:此图来自 Microsoft Learn,展示原作者公开的 Craig 示例环境及磁盘查询、挂载结果。图中使用历史命令 Get-WmiObject,正文已使用 Get-CimInstance;应以正文及实际 PowerShell 环境为准。图中的主机名、盘号和路径仅属于原文示例。

装载分区磁盘

如果不确定磁盘的文件格式或其中的分区,可以按照以下步骤进行装载。

  1. 标识磁盘 – 要列出 Windows 中的可用磁盘,请运行:

    Get-CimInstance -Query "SELECT * from Win32_DiskDrive"
    

    磁盘路径在“DeviceID”列下可用。 通常采用 \\.\PHYSICALDRIVE* 格式。

  2. 列出并选择要在 WSL 2 中装载的分区 – 确定磁盘后,运行:

    wsl.exe --mount <Disk> --bare
    

    这将使磁盘在 WSL 2 中可用。 (在我们的示例中,<Disk> 为 \\.\PHYSICALDRIVE*。

  3. 附加后,可以通过在 WSL 2 中运行以下命令来列出分区:

    lsblk
    

    这会显示可用的块设备及其分区。

在 Linux 中,块设备被标识为 /dev/<Device><Partition>。 例如,/dev/sdb3是磁盘sdb的分区号3。

示例输出:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    1G  0 disk
├─sdb2   8:18   0   50M  0 part
├─sdb3   8:19   0  873M  0 part
└─sdb1   8:17   0  100M  0 part
sdc      8:32   0  256G  0 disk /
sda      8:0    0  256G  0 disk

标识文件系统类型

如果不知道磁盘或分区的文件系统类型,可以使用以下命令:

blkid <BlockDevice>

这将输出检测到的文件系统类型(采用 TYPE="<Filesystem>" 格式)。

装载所选分区

确定要装载的分区后,请在每个分区上运行以下命令:

wsl.exe --mount <Disk> --partition <Index> --type <Type>

注意

如果希望将整个磁盘装载为单个卷(即如果磁盘未分区),则可以省略 --partition。

如果 --type 省略,则默认文件系统类型为“ext4”。

访问磁盘内容

装载后,可以通过配置值指向的路径访问磁盘:automount.root。 默认值为 /mnt/wsl。

编者校正:上句把两种挂载位置混在了一起。wsl.conf 的 [automount] 配置项 root(常写作 automount.root)用于 Windows 固定驱动器的 DrvFs 自动挂载,默认是 /mnt/,例如 C 盘对应 /mnt/c;本文 Linux 磁盘示例的挂载位置则在 /mnt/wsl 下。请以实际挂载结果为准。参见官方自动挂载配置说明。

在 Windows 中,可以通过导航到以下位置从文件资源管理器访问磁盘:\\wsl$\<Distro>\<Mountpoint>(选择任何 Linux 发行版)。

卸载磁盘

如果要从 WSL 2 卸载和分离磁盘,请运行:

wsl.exe --unmount [DiskPath]

编者提醒:[DiskPath] 的方括号表示可选参数,不能原样复制执行。省略路径会卸载并分离所有已附加的磁盘;要操作单块盘,应填写已核实的实际路径。

在 WSL 中装载 VHD

注意

Microsoft Store 中的 WSL 引入了直接装载 VHD 的新参数:wsl --mount --vhd <pathToVHD>

编者说明:WSL 原生的 wsl --mount --vhd 与下文先在 Windows 附加 VHD 的旧流程是两种入口。旧流程中的 Mount-VHD 和用于释放 Windows 附加的 Dismount-VHD 属于 Hyper-V PowerShell 模块,不能假定每台运行 WSL 的 Windows 都提供它们。先从 WSL 安全卸载并分离,再按所用流程释放 Windows 层的附加;不要把两层命令当作可互换操作。参见Mount-VHD 官方参考。

还可以使用 wsl --mount 将虚拟硬盘文件 (VHD) 装载到 WSL。 为此,首先需要使用 Windows 中的 Mount-VHD 命令将 VHD 装载到 Windows 中。 请确保以管理员权限运行此命令。 下面是一个示例,我们使用此命令并输出磁盘路径。 请务必将 <pathToVHD> 替换为实际 VHD 路径。

Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"

可以使用上面的输出获取此 VHD 的磁盘路径,然后按照上一部分中的说明将其装载到 WSL 中。

还可以使用此技术装载其他 WSL 发行版的虚拟硬盘并与之交互,因为每个 WSL 2 发行版都通过名为 ext4.vhdx 的虚拟硬盘文件进行存储。 默认情况下,WSL 2 发行版的 VHD 存储在以下路径中:%LocalAppData%\Packages\[distro]\LocalState\[distroPackageName],请谨慎访问这些系统文件,这是一个高级用户工作流。 确保在与该磁盘交互之前运行 wsl --shutdown 以确保该磁盘未被使用。

编者校正:上面的 VHD 路径不是通用模板,末尾也未正确指向磁盘文件。实际位置取决于发行版安装、导入或迁移方式。传统 Microsoft Store 安装的常见位置是 %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\ext4.vhdx;应根据对应发行版的 BasePath 查找实际 ext4.vhdx,不能套用其他机器的路径。参见官方磁盘路径定位说明。wsl --shutdown 会停止所有正在运行的发行版及 WSL 2 虚拟机,运行前请保存相关工作。

装载 WSL VHD

原图说明:此图是原作者公开的 Craig 环境,展示先用 Mount-VHD 取得物理磁盘路径、再交给 WSL 的旧流程。图中路径和成功输出仅属于该示例。

命令行参考

装载特定文件系统

默认情况下,WSL 2 将尝试将设备装载为 ext4。 若要指定其他文件系统,请运行:

wsl.exe --mount <Disk> --type <Type>

例如,若要将磁盘装载为 FAT,请运行:

wsl.exe --mount <Disk> --type vfat

注意

若要列出 WSL2 中的可用文件系统,请运行:

cat /proc/filesystems

如果磁盘已通过 WSL2(Linux 文件系统)进行装载,则无法再通过 Windows 文件系统上的 ext4 驱动程序进行装载。

装载特定的分区

默认情况下,WSL 2 将尝试装载整个磁盘。 若要装载特定分区,请运行:

wsl.exe --mount <Disk> --partition <Index>

仅当磁盘是 MBR(主启动记录)或 GPT(GUID 分区表)时,此操作才有效。 了解分区样式 – MBR 和 GPT。

指定装载选项

若要指定装载选项,请运行:

wsl.exe --mount <Disk> --options <Options>

示例:

wsl.exe --mount <Disk> --options "data=ordered"

注意

目前仅支持特定于文件系统的选项。 泛型选项,例如 ro, rw,… noatime不支持。

编者提醒:不要把 --options ro 当作 WSL 原生 --mount 的通用只读开关。Windows 的 Mount-VHD 提供 -ReadOnly,但这是另一个附加入口,不能据此推断 WSL 挂载具有相同语义。涉及有价值的数据时,先备份并核实所选流程。参见Mount-VHD 的 ReadOnly 参数。

附加磁盘而不装载它

如果上述任何选项都不支持磁盘方案,则可以通过运行以下内容将磁盘附加到 WSL 2 而不对其进行装载:

wsl.exe --mount <Disk> --bare

这将使块设备在 WSL 2 内可用,以便可以从那里手动装载。 使用 lsblk 列出 WSL 2 中可用的块设备。

指定装载名称

注意

此选项仅适用于 Microsoft Store 中的 WSL

默认情况下,装入点名称是根据物理磁盘或 VHD 名称生成的。 这可以用 --name 覆盖此项。

wsl.exe --mount <Disk> --name <Name>

示例:

wsl.exe --mount <Disk> --name myDisk

分离磁盘

若要从 WSL 2 分离磁盘,请运行:

wsl.exe --unmount [DiskPath]

如果省略 Diskpath,则将卸载和分离所有附加的磁盘。

注意

如果无法卸载某个磁盘,可以通过运行 wsl --shutdown 强制退出 WSL 2,这将分离磁盘。

编者提醒:这里的 wsl --shutdown 不是只停止当前窗口或当前磁盘;它会停止所有运行中的发行版。先保存工作并确认影响范围。参见官方关闭行为说明。

限制

  • 目前,只能将整个磁盘附加到 WSL 2,这意味着不可能只附加一个分区。 具体而言,这意味着无法使用 wsl --mount 读取启动设备上的分区,因为该设备无法与 Windows 分离。

  • 只有内核原生支持的文件系统可以被wsl --mount装载。 这意味着无法通过调用 wsl --mount 来使用已安装的文件系统驱动程序(例如 ntfs-3g)。

  • 内核不直接支持的文件系统可以通过 --bare 附加然后调用相关的 FUSE 驱动程序来装载。

来源与版权

本文原文为 Microsoft Learn:在 WSL 2 中装载 Linux 磁盘。页面作者元数据为 GrantMeStrength,页面版权标注为 © Microsoft 2026;原文页面最后可见更新日期为 2025 年 8 月 15 日。

原文文档按 Creative Commons Attribution 4.0 International(CC BY 4.0) 许可发布,代码示例按 MIT 许可证 发布。两张技术截图保留原作者公开图像及出处。本页调整了排版,并添加明确标注的技术校正和使用提醒;补注不冒充原文,也不表示 Microsoft 为本站内容背书。

代码示例 MIT 许可证全文

The MIT License (MIT)

Copyright (c) Microsoft Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容