1. 在宿主机的文件系统创建 ext4 文件,然后挂载到 WSL2 里,这样性能要比直接访问宿主机文件系统高不少,可用于如下场景:

    1. 需要在多个 WSL2 实例之间共享文件,并且对性能有要求。
    2. 高性能地访问其他分区的文件。
    3. 喜欢将数据文件存放到单独的镜像中。
    4. 需要临时使用一块空间,对性能有要求,但又不想让 WSL2 的镜像文件变大。
  2. 用 OverlayFS 将多个目录合并成一个目录使用,可用于如下场景:

    1. 访问宿主机文件系统时,希望获得更高的写性能,但又不能将所有文件都转移到本地。
    2. 有分层管理文件的需求(就像 Docker 的多重镜像)。
    3. 做一些有破坏多个原始文件风险的操作,又不能接受全部复制一遍的代价。
  3. 将 WSL2 的镜像文件同时用于 Hyper-V 中的虚拟机(需要再准备一个 boot 镜像文件),这样可以:

    1. 在不改变环境的前提使用 Hyper-V 的更多功能,比如加载其他 vhdx 文件、图形显示、网卡管理、串口访问、硬盘直通访问等等。
    2. 在环境崩了的情况可以用 Hyper-V 上的其他系统来修复。
    3. 共享给不支持 WSL2 的系统。
  4. 通过 /dev/loop 或者 FUSE 挂载本地文件以及网络资源,比如 iso、tar、ftp、ssh、webdav 等等,这样更方便访问,而且可以通过 \\wsl$ 共享给宿主机。
  5. 修改内核编译选项以及添加新内核模块来新增功能。也可以用来测试内核功能,因为切换起来既快又方便,也很容易实现自动化。
  6. 通过多个 WSL2 实例来搭集群,操作上要比虚拟机方便不少(比如创建、删除、访问、管理都可以使用 wsl 命令完成,不需要用 ssh,而且速度很快。共享文件、同步配置等等也很方便),资源占用也会少些。WSL 是共享 localhost 的,需要避免端口冲突,反而不方便。也可以根据需求,将 WSL、WSL2、宿主机、虚拟机都结合起来。
  7. 学习 Linux。WSL2 的环境基本可以满足一个 Linux 初学者对环境的要求了,这样就不需要系统安装、配置方面花费太多精力,而专注于开发等方面。
  8. 做其他一些虚拟机中的 Linux 能做,而 WSL 做不了的事情(比如 Docker、网络抓包、设置防火墙、转发端口等等)。

v2ex 地址