admin 管理员组

文章数量: 887836

0、电脑版本说明

版本:Windows10企业版

版本号:22H2

1、配置:控制面板->程序和功能->启或关闭Windows功能;

在默认的基础上,再勾选下面4个选项:
    1、虚拟机平台
    2、适用于Linux的Windows子系统
    3、Windows虚拟机监控程序平台
    4、Hyper-V

根据提示重启电脑;

2、打开Microsoft Store商店安装Terminal和Ubuntu22.04

2.1、安装Windows Terminal Preview

2.2、接着安装Ubuntu22.04.3 LTS(这里可以按自己需求,安装相应的发行版)

安装完成之后,在菜单栏找到,“Ubuntu22.04.3 LTS” 打开

进入后等待程序自动安装,并且按照提示,输入用户名和密码(建议全英文)

到现在为止,已经安装Ubuntu22.04成功了,现在安装的版本就是默认的WSL1版本;

至于进入Ubuntu的方法,可以从“上面所示的方式”进入

也可以从我们安装的Terminal终端程序进入(如图选择“Ubuntu 22.04.4 LTS”)即可

如果想要安装的是WSL1版本的子系统,那么到此为止就可以了;

下面介绍将子系统设置为“WSL2”版本,以及子系统迁移到其他盘符的操作;

3、设置子系统的版本为WSL2

现在在PowerShell(Windows10终端)

执行如下的命令程序:

#查看刚才安装的ubuntu22.04的WSL的版本
wsl -l -v


# 显示结果:
# PS C:\Users\user_ex38ms364> wsl -l -v
#   NAME            STATE           VERSION
# * Ubuntu-22.04    Running         1
# PS C:\Users\user_ex38ms364>
# 根据显示的结果,我们也知道,默认安装的Ubuntu22.04是WSL1版本

#更新WSL
wsl --update

#设置Ubuntu22.04的WSL版本为2
wsl --set-version Ubuntu-22.04 2

#设置后面安装Linux子系统的默认版本为2
wsl --set-default-version 2




通过上面的命令执行,那么Ubuntu22.04的WSL版本就被设置成了2号版本;

如果就不打算将LInux子系统迁出到其他盘(默认在C盘),那么到此结束就可以了;

4、将Linux子系统迁移到E盘(默认的Linux子系统安装在C盘)

默认的安装位置:

C:\Users\ll01\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState

现在在PowerShell(Windows10终端)

执行如下的命令程序:(注意迁移的位置,可以按照自己的需求进行更改

#关闭:wsl
wsl --shutdown

#关闭:Ubuntu-22.04
wsl -t Ubuntu-22.04

#首先需要有:“E:\App\wsl-images\” 文件夹,导出 “子系统Ubuntu”
wsl --export Ubuntu-22.04 E:\App\wsl-images\Ubuntu-22.04.tar

#注销原来的 “子系统Ubuntu”
wsl --unregister Ubuntu-22.04

#导入 “子系统Ubuntu” 到 “E:\App\wsl-images\Ubuntu-22.04”
wsl --import Ubuntu-22.04 E:\App\wsl-images\Ubuntu-22.04 E:\App\wsl-images\Ubuntu-22.04.tar --version 2

# “qwe” 就是你的Ubuntu子系统的用户名,这里是对 “新导入的子系统” 配置用户名
ubuntu2204 config --default-user qwe

5、Linux子系统和Windows系统的文件互相访问

5.1、在Linux子系统访问Windows系统的文件

windows系统的盘符默认会挂载在Linux子系统的 “/mnt” 目录

如上面所示,“c文件夹”代表Windows的c盘,d代表Windows的d盘

5.2、在window系统访问Linux子系统的文件

如图所示即可;

提示报错:如果你进入“/root目录会报没有权限访问”,进入“/home”目录可以,等等 !!!

这应该和你当前使用的子系统用户的权限有关,如果使用root用户进行登录使用,应该都可进入;

6、其他说明

6.1、Linux子系统的端口号和Windows主机的端口号是“共享的”

6.2、可以在Linux子系统安装ssh,然后在外界访问

6.3、可以在Windows主机通过vscode、clion等工具连接WSL进行编程(也就是使用WSL的编程环境);

6.4、如果同时安装了WSL2Ubuntu22.04和WSL2Ubuntu18.04,那么这两个Ubuntu的共享ip和端口号;

6.5、WSL2子系统共享主机的CPU和物理内存以及虚拟内存;

7、限制WSL2子系统使用的硬件资源

7.1、默认资源配置信息

下面是WSL2Ubuntu22.04swappiness

这个值可以简单理解为(当可用的内存剩下:100% - 60% == 40% 的时候开始使用虚拟内存,此值可以自己修改)

ubuntu@NdgjdAo451:~$ cat /proc/sys/vm/swappiness
60
ubuntu@NdgjdAo451:~$

如果要修改的话;

  1. 打开 WSL2 Ubuntu 22.04 终端。
  2. 输入以下命令以获取当前的 swappiness 值:
  3. cat /proc/sys/vm/swappiness
  4. 如果输出结果为 60,则表示当前的 swappiness 值为默认值。接下来,输入以下命令以将 swappiness 值修改为 65
  5. echo "vm.swappiness=65" | sudo tee -a /etc/sysctl.conf
  6. 修改完成后,您可以通过重新加载 sysctl 配置文件来使设置生效。输入以下命令即可
  7. sudo sysctl -p
  8. 注意:WSL2Ubuntu22.04和WSL2Ubuntu18.04,也就多台子系统之间是共享这个设置的值的;

对于我的8H16G的window电脑,WSL2默认设置的最大可用资源是:(0-8H)(0-8G)(2G虚拟内存);

也就是WSL2的动态资源范围是可以最多使用:电脑的全部CPU,一半的物理内存;

7.2、限制WSL2使用的硬件资源方式

在当前windows用户名文件下创建一个:" .wslconfig " 文件;

" .wslconfig " 文件的内容:

[wsl2]
processors=2
memory=2GB
swap=8GB
localhostForwarding=true

每一个代表WSL2子系统最多可以使用2个CPU,2GB物理内存,8GB虚拟内存;

然后关闭linux子系统,在windows终端运行如下命令,重新打开WSL2Ubuntu即可生效;

wsl --shutdown

打开Ubuntu22.04(WSL2)之后,运行如下命令,查看配置是否生效;

本文标签: 子系统 内存 文件 资源 WSL