返回

释放 WSL 根文件系统空间:创建其他 VoIFS 工作目录

windows

解决 WSL 根文件系统空间问题:移动 VoIFS 工作目录

简介

对于想要在 Windows 上运行 Linux 子系统 (WSL) 的用户来说,一个常见的问题是 WSL 根文件系统 (RootFS) 会占用大量 SSD 硬盘空间。虽然将 RootFS 移动到其他硬盘的方法有限,但创建其他 VoIFS 工作目录是一种可行的解决方案。

什么是 VoIFS?

VoIFS 是一种特殊的 WSL 文件系统,允许访问位于 / 和 /home 之外的目录。通过创建其他 VoIFS 工作目录,用户可以将项目编译到外部硬盘,从而释放系统分区上的宝贵空间。

步骤:创建其他 VoIFS 工作目录

  1. 以管理员身份打开 PowerShell。
  2. 创建挂载点:mkdir <挂载点路径>
  3. 将新挂载点挂载为 VoIFS:wsl --mount <挂载点路径>
  4. 将工作目录添加到 WSL 配置文件(~/.wslconfig)中,以使其在重启后自动挂载。

示例代码

  1. 创建挂载点:mkdir D:\wsl-projects
  2. 将挂载点挂载为 VoIFS:wsl --mount D:\wsl-projects
  3. 添加到 WSL 配置文件:
[automount]
# 挂载点路径
D:\wsl-projects

注意

  • 每次重启后需要重新运行 wsl --mount 命令。
  • 确保使用 WSL 命令行访问外部硬盘上的目录,例如:cd /mnt/wsl-projects

结论

通过创建其他 VoIFS 工作目录,用户可以将项目编译到外部硬盘,从而释放系统分区上的宝贵空间。虽然此方法需要重新挂载 VoIFS,但它是将 WSL RootFS 移至其他硬盘的唯一可行解决方案。

常见问题解答

  1. 是否可以在笔记本电脑上使用此方法?

    • 否,将 %LocalAppData% 文件夹移动到外部硬盘对于笔记本用户来说不方便。
  2. 为什么从 Windows 10 Build 14393 RTM 开始,创建 NTFS 硬链接不再适用于 WSL?

    • 微软已从 Windows 10 Build 14393 RTM 中删除了此功能。
  3. DriveFS 和 VoIFS 有什么区别?

    • DriveFS 是 WSL 中的一个特殊文件系统,它不支持某些 Linux 文件系统功能,例如 chmod。VoIFS 是一个特殊的 WSL 文件系统,它允许访问位于 / 和 /home 之外的目录,并且支持完整的 Linux 文件系统功能。
  4. 如何解决 VoIFS 重新挂载问题?

    • 将 VoIFS 工作目录添加到 WSL 配置文件(~/.wslconfig)中,以使其在重启后自动挂载。
  5. 有哪些替代方案可以移动 WSL RootFS?

    • 目前还没有其他可行的替代方案可以移动 WSL RootFS。