沙滩星空的博客沙滩星空的博客

WSL2使用笔记

安装WSL

方法1:使用 WSL 命令安装

安装WSL后,重启 Windows

wsl --install
wsl --update

通过「Windows 功能」启用 WSL2

  1. 使用 Windows + R 快捷键打开 运行 对话框,输入 OptionalFeatures 打开 Windows 功能
  2. 勾选「适用于 Linux 的 Windows 子系统」和「虚拟机平台」,然后点击「确定」。

安装后重启Windows

更新WSL版本

wsl --version
wsl --update

# 安装最新的预发行版(可选):
wsl --update --pre-release

# 如果更新之后遇到问题或出现故障,可以回滚到上一版本:
wsl --update --rollback

文件系统

  1. 推荐使用 \\wsl$ 驱动器上的路径,性能速度更高。
  2. windows的C盘, D盘,默认挂载到 /mnt/c/mnt/d
  3. 在 WSL 的 Terminal 终端中,使用 explorer.exe . 命令,用文件资源管理器打开当前目录。
  4. 在 windows 中,运行linux命令。如 wsl ls -la, wsl sudo apt-get update
  5. 在 WSL 中运行 windows 工具。如 notepad.exe "C:\temp\foo.txt"
// 虚拟磁盘路径:
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
// WSL共享目录位置(文件资源管理器打开):
\\wsl$

导入导出

// 1. 关闭wsl
wsl --shutdown
// 2. 查看wsl信息
wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Running         1
  Ubuntu-20.04    Running         2
// 3. 导出虚拟机到.tar文件  wsl --export <DistroName> <PathToTarArchive>
wsl --export Ubuntu-20.04  E:\WSL2\Ubuntu-20.04-WSL2\ubuntu.tar
// 4. 注销原有虚拟机  wsl --unregister <DistroName>
wsl --unregister Ubuntu-20.04
// 5.导入虚拟机至新位置 wsl --import <DistroName> <PathToDistroNewDirectory> <PathToTarArchive>
wsl --import Ubuntu-20.04 E:\WSL2\Ubuntu-WSL2 E:\WSL2\Ubuntu-20.04-WSL2\ubuntu.tar
// 6. 使用 wsl -d <DistroName> 运行新导入的 Linux 发行版。
wsl -d Ubuntu-20.04

开启SSH连接

sudo vim /etc/ssh/sshd_config
...
Port 22
PasswordAuthentication yes
...
sudo /etc/init.d/ssh start
// 若提示: sshd: no hostkeys available -- exiting 错误。执行如下命令:
cd /etc/ssh && ssh-keygen -A

WSL2 中访问宿主机Windows 的代理

#!/bin/sh
# proxy.sh
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')
port=1080

PROXY_HTTP="http://${hostip}:${port}"

set_proxy(){
    export http_proxy="${PROXY_HTTP}"
    export HTTP_PROXY="${PROXY_HTTP}"

    export https_proxy="${PROXY_HTTP}"
    export HTTPS_proxy="${PROXY_HTTP}"
}

unset_proxy(){
    unset http_proxy
    unset HTTP_PROXY
    unset https_proxy
    unset HTTPS_PROXY
}

test_setting(){
    echo "Host ip:" ${hostip}
    echo "WSL ip:" ${wslip}
    echo "Current proxy:" $https_proxy
}

if [ "$1" = "set" ]
then
    set_proxy

elif [ "$1" = "unset" ]
then
    unset_proxy

elif [ "$1" = "test" ]
then
    test_setting
else
    echo "Unsupported arguments."
fi

运行 . ./proxy.sh setsource ./proxy.sh set 设置代理。
unset 取消代理,test 查看代理状态
可以在 ~/.bashrc 文件中加入以下2行:

# 为脚本设置别名 proxy
alias proxy="source /path/to/proxy.sh"
# 每次启动shell时自动设置代理
. /path/to/proxy.sh set

Docker 远程容器入门

https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers

Docker Desktop ext4.vhdx 文件位置: %LOCALAPPDATA%\Docker\wsl
C:\Users\yourname\AppData\Local\Docker\wsl\data
C:\Users\yourname\AppData\Local\Docker\wsl\distro

https://www.cnblogs.com/yanglang/p/13518449.html

拯救被WSL占满的C盘

项目首页: https://github.com/pxlrbt/move-wsl

  1. PowerShell中运行 wsl --shutdown 命令停止WSL
  2. 下载项目zip压缩包并解压缩, 运行 .\move-wsl.ps1. 详见项目首页README.md文件。
  3. 回收Docker环境中的空间:
> wsl --shutdown
# open window Diskpart
> diskpart
# 选择虚拟机文件执行瘦身
> select vdisk file="D:\WSL\docker-desktop-data\ext4.vhdx"
> attach vdisk readonly
> compact vdisk
> detach vdisk
> exit

WSL 的基本命令 https://docs.microsoft.com/zh-cn/windows/wsl/basic-commands
Windows 11:WSL 2 安装和管理指南,3 种方法任你选 https://www.sysgeek.cn/install-wsl-2-windows/
wsl/wsl2 更换虚拟硬盘位置(导出,导入) https://www.ownpublic.com/post/29.html
拯救被WSL占满的C盘 https://mdnice.com/writing/eaa47325d1c341f2b6e814b4385bcd77
WSL2 中访问宿主机Windows 的代理 https://zinglix.xyz/2020/04/18/wsl2-proxy/
未经允许不得转载:沙滩星空的博客 » WSL2使用笔记

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址