我想将/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'