如何在 Windows 10 WSL 中的 ext4 分区上挂载 Ubuntu /home 目录?

如何在 Windows 10 WSL 中的 ext4 分区上挂载 Ubuntu /home 目录?

我想将/home我驱动器上 ext4 分区上的实际 Ubuntu 目录挂载到 WSL。

基本上,我需要那里的所有东西,并且我希望与 ext4 和一些工具有更好的兼容性。另请参阅这个问题有关在现有 WSL Ubuntu 目录中编辑文件时出现的问题的一些示例/home

有可能吗?怎样做?

答案1

在提出这个问题时,这在 WSL 中是不可能的,因为没有权限访问真实的ext4 分区。

但是,Github 问题中提到的问题已通过提供对 WSL(当时是 WSL1,后来也是 WSL2)文件系统的访问得到解决\\wsl$\<distroname>\。这样就可以安全地编辑这些文件。另请参阅当时相应的 Microsoft 博客文章,不要使用 Windows 应用和工具更改 Linux 文件

而且,在 Windows 11 下(但不是 Windows 10),你现在可以使用 将原始驱动器挂载到 WSL2 中wsl --mount。一旦原始驱动器可供 WSL2 使用,你就可以sudo mount(或通过/etc/fstab)该驱动器上包含你的实际 ext4 分区/home/

注意事项:

  • 您必须(目前)手动将wsl --mount原始分区在 WSL 中启动发行版(例如 Ubuntu)。如果不这样做,则在启动 WSL 时将不会有/home,并且很可能会失败。

  • 如果我没记错的话,目前无法安装 Windows 中已在使用的驱动器。因此 ext4 分区至少需要位于 Windows 驱动器以外的驱动器上。

答案2

使用 Samba 导出您的主分区并将其安装到 Windows 中(这就是我的做法)。

需要澄清的是,如果您不想安装/home到驱动器,请创建 /home一个符号链接\\yourmachine\home(假设您已将主驱动器导出为/home)。

例如,我/Documents指向//Bliss/Documents
cygwin+bash 下,我看到(在我的根目录中):Documents -> //Bliss/Documents/

在 Windows 中,dir该文件看起来像:<SYMLINKD> Documents [\\Bliss\Documents]
(Bliss 是我的服务器的名称)。

在 Windows 中,我通过 cd 到 root 在 root 中创建它,然后:(
从 bash - 注意 Windows 路径名周围的单引号和反斜杠)

cmd /c mklink /d Documents '\\Bliss\Documents'

相关内容