1. wsl2
	1.1 先决条件
	1.2 挂载未分区的磁盘
		1.2.1 识别磁盘
		1.2.2 挂载磁盘
	1.3 挂载分区磁盘
		1.3.1 识别磁盘
		1.3.2 列出并选择要在 WSL 2 中挂载的分区
		1.3.3 识别文件系统类型
		1.3.4 挂载选定的分区
	1.4 访问磁盘内容
	1.5 卸载磁盘
	1.6 在 WSL 中挂载 VHD
	1.7 命令行参考
	1.8 挂载特定分区
	1.9 指定挂载选项
	1.a 连接磁盘而不安装它
	1.b 分离磁盘
	1.c. 限制
2. linux-reader(只读)
3 商业软件
	3.1 paragon
	3.2. UFS Explorer
4. ext2read
5. Ext2Fsd
6. 文件系统对比
 

1. wsl2

在 WSL2 中挂载 Linux 磁盘(预览版) 04/08/2021
如果要访问 Windows 不支持的 Linux 磁盘格式,可以使用 WSL2 挂载磁盘并访问其内容。
注意: 将磁盘附加到 WSL2 需要管理员访问权限。 WSL2 mount命令不支持挂载当前正在使用的磁盘(或属于该磁盘的分区)。wsl --mount即使只请求一个分区,也总是附加整个磁盘。无法挂载 Windows 安装盘。
注! 下文命令行开头标识有如下2种:
  • > (大于号)开头的命令表示在Windows的PowerShell中.
  • $ (美元符号)开头的命令表示Linux的Bash环境.

1.1 先决条件

您需要使用 Windows 10 Build 20211 或更高版本才能访问此功能。您可以加入Windows预览体验计划以获取最新的预览版本。

1.2 挂载未分区的磁盘

在这种最简单的情况下,如果您的磁盘没有任何分区,则可以直接使用该wsl --mount命令挂载它。首先,您需要识别磁盘。

1.2.1 识别磁盘

要列出 Windows 中的可用磁盘,请在PowerShell中运行:
> wmic diskdrive list brief
磁盘路径在“DeviceID”列下可用。通常根据\\.\PHYSICALDRIVE*格式。

1.2.2 挂载磁盘

然后在 Powershell 中,您可以使用上面发现的磁盘路径挂载磁盘。
> wsl --mount <DiskPath>

1.3 挂载分区磁盘

1.3.1 识别磁盘

要列出 Windows 中的可用磁盘,请在PowerShell中运行:
> wmic diskdrive list brief
磁盘路径在“DeviceID”列下可用。通常根据\\.\PHYSICALDRIVE*格式。

1.3.2 列出并选择要在 WSL 2 中挂载的分区

> wsl --mount <DiskPath> --bare
这将使磁盘在 WSL 2 中可用。
连接后,可以通过在 WSL 2 中运行以下命令来列出分区(已经入Bash环境):
$ lsblk
这将显示可用的块设备及其分区。
在 Linux 中,块设备被标识为 /dev/<Device><Partition>. 例如,/dev/sdb3 是磁盘的分区号 3 sdb。

1.3.3 识别文件系统类型

如果您不知道磁盘或分区的文件系统类型,可以在PowerShell使用以下命令:
> blkid <BlockDevice>
这将输出检测到的文件系统类型(在TYPE="<Filesystem>"格式下)。

1.3.4 挂载选定的分区

确定要挂载的分区后,在每个分区上运行以下命令:
> wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
注意: 如果您希望将整个磁盘安装为单个卷(即如果磁盘未分区),--partition则可以省略。如果省略,则默认文件系统类型为“ext4”。

1.4 访问磁盘内容

安装后,可以在配置值指向的路径下访问磁盘:automount.root. 默认值为/mnt/wsl。
在 Windows 中,可以通过导航到以下位置从文件资源管理器访问磁盘:(\\wsl$\\<Distro>\\<Mountpoint>选择任何 Linux 发行版)。

1.5 卸载磁盘

如果要从 WSL 2 卸载和分离磁盘,请运行:
> wsl --unmount <DiskPath>

1.6 在 WSL 中挂载 VHD

您还可以使用wsl --mount. 为此,您首先需要使用 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 存储在以下路径中:C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName],请谨慎访问这些系统文件,这是一个高级用户工作流程。确保wsl --shutdown在与此磁盘交互之前运行以确保该磁盘未在使用中。

1.7 命令行参考

挂载特定的文件系统, 默认情况下,WSL2 将尝试将设备挂载为 ext4。要指定另一个文件系统,请运行:
> wsl --mount <DiskPath> -t <FileSystem>
例如,要将磁盘挂载为 fat,请运行:
> wsl --mount <Diskpath> -t vfat
要列出 WSL2 中的可用文件系统,请运行:cat /proc/filesystems
当磁盘已通过 WSL2(Linux 文件系统)挂载后,无法再通过 Windows 文件系统上的 ext4 驱动程序挂载。

1.8 挂载特定分区

默认情况下,WSL 2 会尝试挂载整个磁盘。要挂载特定分区,请运行:
> wsl --mount <Diskpath> -p <PartitionIndex>
这仅在磁盘是 MBR(主引导记录)或 GPT(GUID 分区表)时才有效。阅读有关分区样式 - MBR 和 GPT 的信息。

1.9 指定挂载选项

要指定挂载选项,请运行:
> wsl --mount <DiskPath> -o <MountOptions>
> wsl --mount <DiskPath> -o "data=ordered"
注意: 目前仅支持文件系统特定选项。ro, rw, noatime, ...不支持诸如此类的通用选项。

1.a 连接磁盘而不安装它

如果上述任何选项都不支持磁盘方案,您可以通过运行将磁盘附加到 WSL 2 而无需安装它:
> wsl --mount <DiskPath> --bare
这将使块设备在 WSL 2 中可用,因此可以从那里手动安装。使用lsblk列出内部WSL 2可用块设备。

1.b 分离磁盘

要从 WSL 2 分离磁盘,请运行:
> wsl --unmount [DiskPath]
如果Diskpath省略,则卸载并分离所有附加的磁盘。
注意: 如果一个磁盘卸载失败,可以通过运行 强制退出 WSL 2 wsl --shutdown,这将分离磁盘。

1.c 限制

目前,只能将整个磁盘附加到 WSL 2,这意味着不可能只附加一个分区。具体来说,这意味着无法wsl --mount用于读取引导设备上的分区,因为该设备无法与 Windows 分离。
目前不支持 USB 闪存驱动器和 SD 卡,并且无法连接到 WSL 2。但支持 USB 磁盘。
只有内核本身支持的文件系统才能通过wsl --mount. 这意味着无法通过调用 来使用已安装的文件系统驱动程序(例如 ntfs-3g)wsl --mount。

2. linux-reader(只读)

从 Windows 访问 Ext、UFS、HFS、ReiserFS 或 APFS 文件系统上的文件和文件夹
Linux Reader™ 是一种流行的免费软件产品,它仍然是非商业免费软件。从 4.0 版开始,Linux Reader Pro™ 提供了额外的功能。
使用 Linux Reader Pro™,您可以从更多文件系统读取文件、通过 SSH 连接进行远程访问、创建虚拟驱动器、通过 FTP 导出文件等等。
  • Linux Reader™ 的所有重要功能仍然免费:没有烦人的广告、没有试用模式、没有限制。
  • Linux Reader™ 和 Linux Reader Pro™ 都为您提供对源驱动器的安全只读访问。
  • Linux Reader™ 和 Linux Reader Pro™ 绕过文件安全策略,因此您可以访问 Linux 磁盘上的任何文件。
  • Linux Reader™ 和 Linux Reader Pro™ 的系统要求:Windows 7、8 或 10。

3. 商业软件

3.1 paragon

3.2 UFS Explorer

4. ext2read

Ext2explore 是一款可以在 Windows 下浏览 ext2/3/4 分区的软件,小巧好用。

5. Ext2Fsd

正如其名称, 仅适用于Ext2.
稳定版本0.6.9(2017年11月2日,​3年前)
Ext2Fsd(Ext2 File System Driver 的缩写)是一个免费的可 安装文件系统驱动程序,用C 语言编写,用于Microsoft Windows操作系统系列。它有助于对ext2、ext3和ext4 文件系统的读写访问。
 
错误
德国电脑杂志PC-WELT曾报道2009年程序崩溃频繁,程序无法顺利访问ext3分区。这常常导致蓝屏。这种类型的崩溃可能导致数据丢失,例如,如果主存储器中还没有永久存储的数据。该程序只能访问 ext2 分区而不会出错。
2012 年,Computerwoche警告说,访问 ext3 分区“并非无害”。可能会发生数据丢失。
 
严重错误
2017 年 11 月 2 日,发布了 0.69 版的警告:
不要在最新的 Ubuntu 或 Debian 系统上使用 Ext2Fsd 0.68 或更早版本。Ext2Fsd 0.68 无法在启用 64 位模式的情况下处理 EXT4,然后它可能会损坏您的数据。非常抱歉这个灾难问题,我正在努力改进。
虽然尚不清楚 v0.69 是否纠正了这一缺陷,但用户报告即使使用 0.69 版本,Windows 10 也会提示他们格式化 ext4 驱动器。已知的解决方案是将所述 ext4 驱动器转换为 32 位版本。

6. 文件系统对比