Skip to content

WSL

WSL(Windows Subsystem for Linux)

WSL 中的高级设置配置

官方文档:WSL 中的高级设置配置

  • /etc/wsl.conf: WSL 在每一个发行版本上的当独配置
  • ~/.wslconfig: WSL 在 Windows 上的全局配置

WSL 默认需要 8 秒才能完全停止,可通过 wsl --shutdown [分发名] 快速停止

/etc/wsl.conf
ini
# 发行版启动时自动挂载 Windows 驱动器
[automount]

# 设置为 true 将在上面设置的根目录下自动安装具有 DrvFs 的固定驱动器(C:/ 或 D:/)。设置为 false 意味着驱动器不会自动安装,但需要手动或使用 fstab 安装。
enabled = true

# 设置自动安装固定驱动器的目录。此示例更改了安装位置,因此您的 C 驱动器将是 /c,而不是默认的 /mnt/c。
root = /

# 可以指定 DrvFs 特定的选项。
options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"

# 设置启动 WSL 发行版时要处理的“/etc/fstab”文件。
mountFsTab = true

# 启用 WSL 2 使用的 DNS 服务器的网络主机设置。此示例更改主机名,将generateHosts 设置为 false,防止 WSL 自动生成 /etc/hosts 的默认行为,并将generateResolvConf 设置为 false,防止 WSL 自动生成生成 /etc/resolv.conf,以便您可以创建自己的(即名称服务器 1.1.1.1)。
[network]
hostname = DemoHost
generateHosts = false
generateResolvConf = false

# 设置 WSL 是否支持互操作流程,例如启动 Windows 应用程序和添加路径变量。将这些设置为 false 将阻止 Windows 进程的启动并阻止添加 $PATH 环境变量。
[interop]
enabled = false
appendWindowsPath = false

# 使用 WSL 启动发行版时设置用户。
[user]
default = DemoUser

# 设置在新 WSL 实例启动时运行的命令。此示例启动 Docker 容器服务。
[boot]
command = service docker start
~/.wslconfig
ini
# Settings apply across all Linux distros running on WSL 2
[wsl2]

# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=4GB 

# Sets the VM to use two virtual processors
processors=2

# Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel
kernel=C:\\temp\\myCustomKernel

# Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6
kernelCommandLine = vsyscall=emulate

# Sets amount of swap storage space to 8GB, default is 25% of available RAM
swap=8GB

# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
swapfile=C:\\temp\\wsl-swap.vhdx

# Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free
pageReporting=false

# Turn on default connection to bind WSL 2 localhost to Windows localhost. Setting is ignored when networkingMode=mirrored
localhostforwarding=true

# Disables nested virtualization
nestedVirtualization=false

# Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging
debugConsole=true

# Enable experimental features
[experimental]
sparseVhd=true