wsl2 使用经验

1、问题:无法运行 docker,无法升级

1-1、问题描述

win10 中安装的 wsl2,启动 docker desktop 时提示 wsl2 有问题:
在这里插入图片描述
于是点击推荐的地址连接到微软,下载 wsl2 的更新文件。之后运行,又报错:
在这里插入图片描述
更新被卡住。

1-2、解决方法

Win+R 输入 cmd 打开命令行窗口,输入

wsl --update

自动完成 wsl2 的更新。

随后重启 docker desktop 确认,启动顺利,问题解决。

2、win10修改wsl2配置以降低vmmem进程内存占用过高问题

2-1、问题描述

默认情况下,wsl2 运行之后,占用 2g 内存,希望能降低它的占用。

2-2、解决方法

2-2-1、打开powershell,执行以下命令·
# 关闭所有正在wsl中运行的linux发行版
wsl --shutdown
2-2-2、修改.wslconfig配置文件

注意,该配置文件仅对wsl2生效。wsl1需要修改wsl.conf文件。详见官方文档。
在 C:\Users\你的用户名 查看是否有 .wslconfig 文件,没有的话就新建一个。
也可以在文件管理器地址栏中输入 %UserProfile% 跳转。

.wslconfig文件的内容如下:

# Settings apply across all Linux distros running on WSL 2
[wsl2]

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

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

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

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

以上修改内容是:
a、将内存大小改为1G(默认值是电脑内存的一半)。
b、将处理器改为4个(默认值是实际cpu数量)。
c、交换文件大小设置为1G(默认值是电脑内存的四分之一)。
d、交换文件保存于 C:\temp\wsl-swap.vhdx

2-2-3、在 powershell 中执行以下代码,以重启wsl2,使得配置生效。
wsl --shutdown
2-2-4、检查修改结果
# 查看内存、swap大小
free -m
# 查看处理器个数
cat /proc/cpuinfo| grep "processor"| wc -l

再次打开任务管理器查看vmmem进程,内存占用明显降低。

x、参考资料

1、win10修改wsl2配置以降低vmmem进程内存占用过高问题

<think>好的,用户的问题是如何在WSL2中重启Ubuntu。我需要先回忆一下相关的知识,并结合提供的引用内容来回答。 首先,用户提到了三个引用,其中引用[1]和[2]是关于安装WSL2和Ubuntu的步骤,引用[3]是关于安装SMAC的conda命令。虽然引用中并没有直接提到如何重启Ubuntu,但可能需要结合WSL2的基本操作知识。 在WSL2中,Ubuntu作为一个子系统运行,和完整的虚拟机不同,因此重启的方式可能和普通Linux系统不一样。通常,在物理机或虚拟机中,重启Linux系统会使用`sudo reboot`命令,但WSL2的处理方式可能不同,因为它是集成在Windows中的子系统。 根据微软的文档,WSL2的实例可以通过终止对应的进程来停止,然后重新启动。例如,使用`wsl --shutdown`命令会关闭所有正在运行的WSL实例,之后再启动Ubuntu就会相当于重启。不过这样会关闭所有WSL发行版,可能不够精确。 另外,可能还有更直接的方法来重启特定的发行版。比如,使用`wsl -t <发行版名称>`来终止特定实例,然后再次启动。例如,如果Ubuntu的名称是Ubuntu-22.04,可以用`wsl -t Ubuntu-22.04`,然后运行`wsl -d Ubuntu-22.04`来启动它,这样就完成了重启。 同时,用户可能在寻找在Ubuntu内部的重启命令,比如`sudo reboot`,但在WSL2中,这个命令可能不会生效,因为系统没有作为独立的init系统运行。所以需要告知用户正确的方法。 结合以上思考,正确的步骤应该是通过Windows命令行工具(如PowerShell或CMD)来终止Ubuntu的WSL实例,然后重新启动它。或者使用wsl命令来重启。 需要确认用户是否需要完全重启Ubuntu子系统,还是只是停止和启动服务。根据经验,用户可能需要的是完全重启,所以推荐使用wsl的命令行工具来操作。 总结步骤: 1. 在Windows中打开PowerShell或CMD。 2. 终止Ubuntu实例:`wsl -t Ubuntu`(具体名称可能根据安装时命名不同)。 3. 重新启动Ubuntu:`wsl -d Ubuntu`。 或者,使用关闭所有WSL实例的命令,再启动。 同时,可能需要检查用户是否知道如何查看已安装的发行版名称,可以通过`wsl -l -v`来列出所有发行版及其状态。 另外,在Ubuntu内部,如果用户运行`sudo reboot`,可能会发现系统并没有真正重启,而是退出了,这时需要手动重新启动,这时候也应该建议用户使用外部命令行的方式来重启。 需要确保回答清晰,步骤正确,并且考虑到用户可能对WSL2的操作不太熟悉,所以分步骤说明,并给出两种方法:一种是终止特定发行版,另一种是关闭所有WSL实例再启动。 最后,生成相关问题,可能涉及如何关闭、如何查看运行状态,或者其他WSL2管理任务。</think>在WSL2中重启Ubuntu子系统的方法如下: ### 方法一:通过WSL命令重启特定发行版 1. 打开**Windows PowerShell**或**CMD** 2. 终止Ubuntu实例: ```powershell wsl --terminate Ubuntu ``` (注:若自定义过发行版名称,需替换`Ubuntu`为实际名称,可通过`wsl -l -v`查看完整列表) 3. 重新启动Ubuntu: ```powershell wsl -d Ubuntu ``` ### 方法二:完全关闭WSL后重启 1. 关闭所有WSL实例: ```powershell wsl --shutdown ``` 2. 重新从开始菜单或终端启动Ubuntu ### 注意事项 - 在Ubuntu内部直接运行`sudo reboot`会触发子系统退出但**不会真正重启**[^1],需通过上述外部命令操作 - WSL2的轻量化设计使其无需完整系统重启,此特性提高了资源利用率[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值