WSL 配置文件 wsl.conf 设置

1,882 阅读3分钟

WSL .wslconfig 小技巧

要在 WSL(Windows Subsystem for Linux)中增加内存,你需要编辑 WSL 配置文件 wsl.conf 或者直接调整虚拟机的资源限制。

以下是步骤: 找到或创建 .wslconfig 文件:

.wslconfig 文件位于 Windows 用户目录下 C:\Users<YourUserName>.wslconfig。

如果文件不存在,可以手动创建一个。

编辑 .wslconfig 文件: 打开该文件并添加/修改以下配置:

[wsl2] memory=4GB # 设置内存为 4GB,可以根据需求调整大小 processors=2 # 设置 CPU 核心数为 2,根据需要修改

image.png

这里的 memory 指定了给 WSL 分配的最大内存,processors 是分配的 CPU 核心数。

重启 WSL:

完成后,重启 WSL 使设置生效。你可以通过以下命令在 PowerShell 或命令提示符下重启 WSL:

wsl --shutdown

检查设置是否生效: 你可以通过运行以下命令来查看分配的内存大小:

free -h

这样就可以调整 WSL 的内存和处理器资源。如果你在使用 WSL2 时遇到其他问题,调整这些设置可能有帮助。

image.png

其他的配置

slconfig 文件是一个配置文件,用于设置 WSL2 的资源分配和其他参数。除了 memory 和 processors,你还可以在 .wslconfig 中设置以下参数:

1. memory

说明:设置 WSL2 虚拟机可用的最大内存。

示例:

memory=4GB  # 设置内存为 4GB

2. processors

说明:设置 WSL2 虚拟机可用的 CPU 核心数。

示例:

processors=2  # 设置 2 核 CPU

3. swap

说明:设置 WSL2 使用的交换空间大小。通过设置 swap 可以在内存不足时使用硬盘作为虚拟内存。

示例:

swap=8GB  # 设置交换空间为 8GB

4. swapFile

说明:指定交换文件的位置。默认的交换文件位于 C:\Users<UserName>\AppData\Local\Packages...。

示例:

swapFile=D:\\WSL\\swap.vhdx  # 设置交换文件的位置

5. localhostForwarding

说明:控制是否启用 localhost 端口转发。设置为 false 会禁用 WSL 与 Windows 之间的 localhost 网络转发。

示例:

localhostForwarding=true  # 启用 localhost 转发

6. kernel

说明:指定自定义的 Linux 内核文件。如果你想使用不同的内核(例如,添加特定模块或修补),可以设置这个参数。

示例:

kernel=C:\\path\\to\\custom\\kernel  # 指定自定义内核路径

7. kernelCommandLine

说明:允许你在启动时给 Linux 内核传递命令行参数。这些参数会影响内核的启动行为。

示例:

kernelCommandLine=quiet splash  # 给内核传递参数

8. update

说明:控制 WSL2 是否自动更新。默认情况下,WSL2 会定期自动更新。

示例:

update=false  # 禁用自动更新

9. enableDriveSharing

说明:控制是否启用对 Windows 驱动器的共享。如果你不希望 WSL2 访问 Windows 文件系统,可以禁用此功能。

示例:

enableDriveSharing=true  # 启用驱动器共享

10. vmInherit

说明:允许 WSL2 从宿主机继承虚拟机设置,如网络设置等。适用于有特殊配置需求的场景。

示例:

vmInherit=true  # 启用虚拟机继承

总结: .wslconfig 是一个非常灵活的配置文件,可以帮助你优化 WSL2 的性能。你可以通过它来控制内存、CPU 核心数、交换空间等资源,甚至使用自定义内核。需要注意的是,wslconfig 主要是针对 WSL2 版本的配置,WSL1 并不支持这些设置。

参考配置示例:

[wsl2]
memory=4GB
processors=2
swap=8GB
swapFile=D:\\WSL\\swap.vhdx
localhostForwarding=true
kernel=C:\\path\\to\\custom\\kernel
kernelCommandLine=quiet splash
update=false
enableDriveSharing=true
vmInherit=true