WSL2使用中关于虚拟内存的两个问题

######WSL2使用中关于虚拟内存的问题

win10+Ubuntu22.04
计划WSL2从C盘(SSD)迁移到了D盘(SSD)
我原来WSL设置内存为为2G物理内存,2G虚拟内存,一直以来都能用,但是现在配置深度学习内存就不够了,上网查建议使用20G以上的内存,但我内存只有16G,我想直接加虚拟内存30G,不知道WSL2支不支持这么做,这个虚拟内存支不支持指定硬盘,因为我目前安装的C盘已经没有20G空间可以分配,计划迁移到D盘,D盘有900G可用,也是固态硬盘。

[wsl2]
memory=2GB
swap=2GB
localhostForwarding=true
想改成
[wsl2]
memory=2GB
swap=30GB
localhostForwarding=true,同时指定swap位于D盘

swap=8GB
swapfile=C:\temp\wsl-swap.vhdx
具体看
https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config

【以下回答由 GPT 生成】

首先,WSL2是支持自定义虚拟内存大小的,可以根据需要增加到30GB。另外,你也可以将虚拟内存分配到D盘上。

以下是解决问题的具体步骤:

  1. 首先在Windows上将WSL2迁移到D盘。可以按照以下步骤进行操作:
  2. 打开PowerShell或命令提示符,并以管理员权限运行。
  3. 运行以下命令来将WSL2默认分发的位置更改为D盘: wsl --set-default-location D:\
  4. 等待操作完成后,WSL2将迁移到D盘。

  5. 接下来,你需要调整WSL2的虚拟内存大小。首先,进入WSL2终端。

  6. 在WSL2终端中,执行以下命令来编辑WSL2的配置文件: sudo nano /etc/wsl.conf

  7. 在打开的文件中,添加以下内容: [wsl2] swap=30GB

  8. 保存并关闭文件。请确保这些更改在[user][network]部分之后。

  9. 重新启动WSL2以使更改生效: wsl --shutdown

  10. 再次打开WSL2终端,运行以下命令来验证虚拟内存的更改: free -h

在输出中,你应该能够看到虚拟内存已增加到30GB。

  1. 如果你想将虚拟内存指定到D盘上,你可以按照以下步骤进行操作:
  2. 在Windows上,打开计算机的属性设置。
  3. 在左侧导航栏中,选择"高级系统设置"。
  4. 在"性能"部分的"设置"中,选择"高级"选项卡。
  5. 在"虚拟内存"部分,选择"更改"按钮。
  6. 取消选中"C盘"上的"自动管理分页文件大小"选项,并选择"D盘"。
  7. 选中"D盘"上的"自定义大小"选项,并设置初始大小和最大大小为30GB。
  8. 确认更改并重启计算机。

以上步骤应该可以帮助你将WSL2的虚拟内存增加到30GB,并将其指定到D盘上。请注意,这些操作可能需要管理员权限,并且可能需要重新启动WSL2和计算机才能生效。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^