前排提示:如果遇到什么服务名解析不出来或者无法访问的报错记得开加速。
安装
管理员身份打开 Powershell
。
PS C:> wsl --install
也可以更新下。
PS C:> wsl --update
可以采用图形界面方式打开子系统。命令行的话是:
PS D:> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
PS D:>Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
好了后根据提示重启就可以了。
然后需要安装下内核包:X86Linux内核包
现在好像默认开启后就是wsl2的版本了。不过为了保险可以自己设置下,避免遇到什么问题。
PS C:> wsl --set-default-version 2
安装Linux分发版。这个自己去MicroSoft Store自己搜然后安装就行。比如 Ubuntu。
启动
安装好了之后启动。
打开「开始」菜单找到 Ubuntu 并启动,或使用 wsl
命令从 Windows 命令行启动都随便你。
第一次打开需要初始化的:
Installing, this may take a few minutes...
然后会提示你输入用户名、密码等信息。好了之后会提示你创建成功的。
Installation successful!
然后就基本上完成了。
迁移
迁移前可以通过这个命令查看下当前运行的分发版本。
PS C:> wsl -l -running
- 终止当前运行的
wsl
PS C:> wsl --shutdown
- 导出。记得替换对应位置的内容。
PS C:> wsl --export {你安装的分发版本} {导出目标文件路径}/{导出文件名}.tar
- 将原来的分发卸载。
PS C:> wsl --unregister {你安装的分发版本}
- 导入
PS C:> wsl --import {你安装的分发版本} {导出路径} {导出目标文件路径}/{导出文件名}.tar --version 2
- 恢复用户。这个别忘记了,不然只能用
root
登录了。
{导出的分发版本} config --default-user {你原来的用户名}
如果这种方式不行,再提供一种解决方案,可以直接视野 root
登录,然后按下面流程操作:
# 查看用户组
ls /home
vim /etc/wsl.conf
# 添加下面内容
[user]
default=yourname
到这基本就完成了。可以启动下看看是不是能用对应账户登录了。 好像还可以通过修改注册表恢复,但是没试过。
换源+中文环境(可选)
比如 清华镜像。
- 查看自己wsl子系统的版本:
# 三种方式
$ cat /proc/version
Linux version 5.15.133.1-microsoft-standard-WSL2 (root@1c602f52c2e4) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Thu Oct 5 21:02:42 UTC 2023
$ uname -a
Linux localhost 5.15.133.1-microsoft-standard-WSL2 #1 SMP Thu Oct 5 21:02:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
- 镜像站找到对应版本的配置粘贴过去就行。
# 1. 切root
localhost:~$ sudo su
[sudo] password for :
root@localhost:#
root@localhost:# cp /etc/apt/sources.list /etc/apt/sources.list.bak
root@localhost:#
root@localhost:# vim /etc/apt/sources.list
# 拷贝镜像站提供的版本配置然后拷贝过去就完事了
# esc + :wq 保存退出
root@localhost:# apt update
root@localhost:# apt upgrade -y
localhost:~$
设置中文环境
# sudo apt install language-pack-zh-hans -y
# sudo apt install fontconfig -y
# sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei -y # 中文字体
# sudo dpkg-reconfigure locales
然后进入一个设置界面,第一个界面不用管直接回车。
下一个菜单中选择 zh_CN.UTF-8
回车。
然后重启wsl就行。
PS C:> wsl -l -v # 查看安装的分发版本
PS C:> wsl --shutdown #停止所有
PS C:> wsl -t {指定分发版本}
PS C:> wsl #启动
再依次输入下列命令,把 man
帮助页替换为中文。
# sudo apt install manpages-zh # sed -i 's\|/usr/share/man\|/usr/share/man/zh_CN\|g' /etc/manpath.config
可以用 man man
测试。
放个官方文档地址: 官方文档
WSL
部分使用问题记录
- 无法连接上
github
$ git pull
wsl ssh: connect to host github.com port 22: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
$ ssh -T git@github.com
# 下面清空说明可以连上
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
# 连不上可以查看具体原因 一般时dns之类的解析到本地地址了 (出现127.0.0.1xxx)
$ ssh -vT git@github.com
# 修改 /etc/resolv.conf 添加dns地址即可
$ sudo vim /etc/resolv.conf
nameserver 8.8.8.8