解决wsl2使用遇到的问题
本文最后更新于:2023年6月17日 晚上
1. 系统安装
1.1 选择发行版
展示选择的发行版wsl --shutdown
1 |
|
安装
建议安装Ubuntu,或者Arch 一个用的人多;一个软件新,社区活跃;Debian 日常使用软件包太老了
1 |
|
1.2 修改安装位置
首先关闭运行的linux发行版
1
wsl --shutdown
在D盘创建一个目录用来存放新的WSL,比如我创建了一个
D:\Environment\UbuntuWSL
,导出它的备份1
wsl --export Ubuntu-22.04 D:\Environment\UbuntuWSL\Ubuntu.tar
注销原有的发行版
1
wsl --unregister Ubuntu-22.04
正常卸载也是这么卸载,再注销之后直接在开始菜单搜索安装的发行版名字点击卸载就可以从磁盘中删除了
备份文件回复到新的子系统中,可以重命名
import 发行版名称 新的磁盘位置 导出压缩包位置
1
wsl --import Ubuntu D:\Environment\UbuntuWSL D:\Environment\UbuntuWSL\Ubuntu.tar
恢复默认用户
f7kyyy
1
Ubuntu2204 config --default-user f7kyyy
这里应该是纯英文或者纯数字,如果名字叫做
Ubuntu-22.04
就改为Ubuntu2204
不知道为什么,我在使用Ubuntu的时候,powershell 提示找不到命令,始终未解决。
建议前往网站,手动下载发行版,然后将后缀改为
zip
,在想要安装的位置解压,然后双击.exe
文件手动安装。
2. 更新系统提示
2.1 安装cuda前
你会发现没有这个文件夹
/usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
解决方法:
从
C:\Windows\System32\lxss\lib
删除libcuda.so
andlibcuda.so.1
以管理员打开powershell,输入
wsl
,进入wsl环境,执行1
2sudo ln -sr /mnt/c/Windows/System32/lxss/lib/libcuda.so.1.1 /mnt/c/Windows/System32/lxss/lib/libcuda.so.1
sudo ln -sr /mnt/c/Windows/System32/lxss/lib/libcuda.so.1.1 /mnt/c/Windows/System32/lxss/lib/libcuda.so
2.2 安装cuda后
不同的系统安装位置不一样,一般来说会安装在/usr/local/cuda/
文件夹下,但是我使用的是arch
linux,使用pacman 直接安装会安装在/opt/cuda
文件夹中
使用以下命令建立软连接
1 |
|
3. 系统代理
3.1 系统代理
wsl1没有独立的IP,可以直接给127.0.0.1:port
,进行代理
更新wsl2后,需要使用正则获取IP地址
在.bashrc
,.zshrc
中加上
1 |
|
config.fish
1 |
|
注意端口,在windows代理软件中打开allow LAN
,或者允许局域网代理
测试:
执行setproxy
后,curl google.com
,返回html文件

3.2 为git设置代理
写一个简单的python 脚本setgitproxy.py
,为git设置代理
先使用pip安装IPy
1 |
|
使用git 命令或者其他git
GUI客户端前,执行python setgitproxy.py
为git添加代理

最新更新,Clash Tun 模式使用全局代理解决一切问题