跳转到内容

❧ WSL2使用说明

一、Windows Termimal 设置 WSL默认打开目录

{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "//wsl$/Ubuntu/home/difei/"
}

二、WSL手动设置DNS

  • 首先 sudo vim /etc/wsl.conf 添加内容为:
[network]
generateResolvConf = false
  • 保存以后 Powershell 或 Windows Terminal 内 wsl --shutdown 关机WSL,然后重新打开WSL

  • /etc目录下删除软连接 rm resolv.conf

  • sudo vim /etc/resolv.conf 手动设置新的DNS即可:

nameserver 172.22.16.1
  • 重启试一下,手动设置的DNS已经生效

三、动态获取DNS设置代理

在文件 ~/.bashrc 最下方添加以下内容:

Terminal window
# 翻墙代理设置
export windows_host=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`
export ALL_PROXY=http://$windows_host:10809
export HTTP_PROXY=$ALL_PROXY
export HTTPS_PROXY=$ALL_PROXY
# git代理
if [ "`git config --global --get proxy.https`" != "socks5://$windows_host:10808" ]; then
git config --global proxy.https socks5://$windows_host:10808
fi

执行 source ~/.bashrc 使配置生效

四、WSL迁移

  • 首先打开PowerShell窗口,输入命令 wsl -l -v 查看已安装的子系统,显示如下:
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
  • 导出wsl
wsl --export Ubuntu D:\WSL\Ubuntu.tar
  • 注销待迁移的wsl
wsl --unregister Ubuntu
  • 新位置导入wsl
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\Ubuntu.tar
  • 迁移后WSL的默认用户变成了root,可切换默认用户
ubuntu config --default-user difei
  • 完毕!

五、WSL设置

  • 启动目录
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
// 启动目录
"startingDirectory": "//wsl$/Ubuntu/home/difei"
}
  • 背景图像 自定义背景图像和图标时要记住的最有用的 URI 方案是:
URI 方案相应的物理路径使用描述
ms-appdata:///Local/%localappdata%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\计算机文件
ms-appdata:///Roaming/%localappdata%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState\常见文件
"defaults": {
"backgroundImage": "ms-appdata:///Roaming/5812cf7189d5fbef2f0c5ccc86108914.jpeg",
"backgroundImageOpacity": 0.25,
"useAcrylic": false,
"acrylicOpacity": 0.5
}

六、vhdx方法移动硬盘

虚拟文件系统路径会有一个名为【ext4.vhdx】的文件

  • 创建注册表 lxss.reg
Windows Registry Editor Version 5.00
[HKEY_USERS\【SID】\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{【UUID】}]
"State"=dword:00000001
"DistributionName"="【子系统名称】"
"Version"=dword:00000002
"BasePath"="【虚拟文件系统所在文件夹路径】"
"Flags"=dword:0000000f
"DefaultUid"=dword:000003e8

SID查询:whoami /USER

UUID生成:https://www.uuidgenerator.net

例如:

Windows Registry Editor Version 5.00
[HKEY_USERS\S-1-5-21-2992538072-3000541683-241254537-1001\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{4dc0958f-8f73-412a-8474-f45175104931}]
"State"=dword:00000001
"DistributionName"="Ubuntu"
"Version"=dword:00000002
"BasePath"="D:\\WSL2\\Ubuntu"
"Flags"=dword:0000000f
"DefaultUid"=dword:000003e8
  • 双击执行即可

  • 应用商店安装 Windows Terminal

  • 运行 wt 打开 Ubuntu 看是否正常运行

  • code 命令找不到解决办法:

    • echo $PATH 查看环境变量code的二进制文件路径是否正确
    • vi ~/.profile 在文件尾末添加行 export PATH="$PATH:/mnt/c/Users/22236/AppData/Local/Programs/Microsoft VS Code/_/bin"
    • source ~/.profile 刷新环境变量
    • code . 此时已经可以正常打开项目