我有一台配置了双启动的电脑。
由于 Windows 10 具有适用于 Linux 的 Windows 子系统,是否可以从其中访问 EXT4 分区?
答案1
可以从中访问 EXT4 分区吗?
WSL 似乎无法访问 Windows 本身无法访问的任何分区。此外,它似乎仅限于系统本身安装的 NTFS 分区。这意味着即使使用 NTFS 文件系统,也无法访问网络共享。
以下陈述支持了这一点:
WSL 查询系统范围的驱动器以获取 DriveFS;不会选择每个用户的字母挂载(例如某些网络地图或 Paragon 的 Windows ext4fs 驱动程序)。
中的一个WSL 开发人员证实了这一点。
您基本正确。目前我们仅支持固定 NTFS 卷。
看起来,虽然这些信息对于 Windows 10 1703 及以下版本是正确的,但从 Windows 10 1709 开始应该是可能的。
在最新的 Windows Insider 版本中,Windows Subsystem for Linux (WSL) 现在允许您使用 DrvFs 文件系统手动挂载 Windows 驱动器。以前,当您启动 Bash 时,WSL 会自动挂载所有固定的 NTFS 驱动器,但不支持挂载可移动驱动器或网络位置等其他存储。
现在,您不仅可以手动安装系统上的任何驱动器,我们还添加了对其他文件系统(如 FAT)以及安装网络位置的支持。这样您就可以在 WSL 中访问任何驱动器(包括可移动 USB 棒或 CD)以及您可以在 Windows 中访问的任何网络位置。
对适用于 Linux 的 Windows 子系统的文件系统改进
由于该分区已存在于驱动器上,因此您应该能够挂载它,就像挂载 Linux 中的任何其他分区一样。但是,根据我找到的信息和示例,这可能是不可能的,因为 Windows 本身不知道如何处理 EXT4 分区。
为了使用驱动文件,您可以使用常规的 Linux mount 命令。例如,要将可移动驱动器 D: 挂载为 /mnt/d 目录,请运行以下命令:
$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d
现在,您将能够访问 D: 驱动器 /mnt/d 下的文件。当您希望卸载驱动器(例如,为了可以安全地移除它)时,请运行以下命令:
$ sudo umount /mnt/d
以下问题与此主题相关Windows 10 Ubuntu Bash Shell:如何挂载其他 Windows 驱动器?,虽然我没有直接从中提取任何内容,但它仍然与从 WSL 内部安装卷的主题相关。
答案2
是的,你可以。我经常使用ext2fsd访问ext4从 Windows 中复制卷。我的主要要求是读取访问权限,这就是我配置它的方式,并且它运行完美。
我偶尔测试过写访问而没有发现问题,但我使用的还不够多,无法保证它的可靠性。
SourceForge 链接将其描述为适用于 Windows 的 Linux ext2/ext3 文件系统驱动程序,它确实读起来ext4卷没有任何问题,但我不会依赖它进行写访问,直到我对其进行了更多的测试或看到一些保证ext4受支持。