AI 摘要
文章讲解了WSL的三种安装方式(在线、离线内核、离线系统)、将系统迁移到D盘的方法,以及常见命令(如启用systemd、环境变量控制)和端口转发等隐藏知识。

windows sub linux

一、基本安装

官方文档

1.1 法一:在线安装

  1. 安装 wsl
1
wsl --install
  1. 在线查看可安装的系统
1
wsl --list --online
  1. 安装指定的系统
1
wsl --install -d <系统名称>

1.2 法二:离线安装WSL,在线安装系统

网慢,法一安装不上。

  1. 启用 WSL 和虚拟机平台
1
2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启计算机

  2. 下载并安装 WSL 2 Linux 内核更新包
    官方地址

  3. 设置 WSL 2 为默认版本

    1
    wsl --set-default-version 2

1.3 法三:离线安装系统

依旧网卡,法二安装不上系统。直接下载系统的安装包。

Github仓库找链接。

二、迁移到 D

  1. 关闭 wsl
1
wsl --shutdown
  1. 导出系统
1
wsl --export <系统名称> D:\<system-name>.tar
  1. 注销原有的系统
1
wsl --unregister <系统名称>
  1. 在 D 盘创建目标文件夹
1
mkdir D:\WSL\<系统名称>
  1. 导入系统到 D 盘
1
wsl --import <新的系统名称> D:\WSL\<新系统的path> D:\<旧系统的镜像>.tar
  1. 登入新系统
1
wsl -d <新的系统名称>

三、常见命令

  1. 显示安装的系统
1
wsl --list --verbose
1
wsl -l -v
  1. WSL 默认不用 systemd,需要手动开启
1
echo -e "[boot]\nsystemd=true" > /etc/wsl.conf
  1. 关闭 WSL,触发重启
1
wsl.exe --shutdown

​ 还不可以的话,更新 WSL 的版本

1
wsl --update
  1. 关闭自动引入的环境变量
1
vim /etc/wsl.conf
1
2
[interop]
appendWindowsPath = false
  1. 手动引入环境变量
  • 追加到 PATH
1
vim ~/.bashrc
1
export PATH="$PATH:/mnt/d/Program Files/Microsoft VS Code/bin"
  • 软链接到 ~/.local/bin(推荐)
1
2
mkdir -p ~/.local/bin
ln -s "/mnt/d/Program Files/Microsoft VS Code/bin/code" ~/.local/bin/code

四、隐藏知识

  1. windows自动做了端口转发,不需要找wsl的ip,依旧可以localhost
  2. windows默认引入了 windows 的环境变量,但有时候会造成一些困扰

五、关闭 WSL

  1. 关闭 hyper-V,管理员执行,当然就无法使用 WSL 、以及基于 WSL 的 Docker Desktop 、等。
    1
    bcdedit /set hypervisorlaunchtype off