wsl2安装与基本环境配置

上一级页面:index-wsl

安装

如何安装wsl:官方文档. 安装 WSL | Microsoft Docs

现在,可以在管理员 PowerShell 或 Windows 命令提示符中输入此命令,然后重启计算机来安装运行适用于 Linux 的 Windows 子系统 (WSL) 所需的全部内容。

1
wsl --install

安装完WSL,可以在Windows Store中安装Linux发行版,我目前装的是Ubuntu

wsl --list --online 以查看可用发行版列表并运行

wsl --install -d <DistroName> 以安装发行版。

因为是开发环境,以ubuntu20.04为例

1
wsl --install -d Ubuntu

安装完毕后,设置默认发行版为Ubuntu

1
wsl -s Ubuntu

打开刚刚安装的Ubuntu,设置默认用户和密码

设置WSL2为默认版本

在Windows Termial输入wsl -l -v查看当前的子系统是否为wsl2

1
wsl -l -v

设置WSL2为默认版本

1
wsl --set-default-version 2

将原本wsl1的Linux分发版,转化为wsl2版本:

1
2
3
wsl --set-version <distribution name> <versionNumber>

* <distribution name>就是distro,也就是Linux发行版,对应我的发行版就是Ubuntu。

我们需要wsl1转换为wsl2,

<distribution name>是发行版名称,<versionNumber>要填2,

1
wsl --set-version Ubuntu 2

安装报错

在安装wsl启动后可能会遇到如下报错:

Pasted%20image%2020220508233252.png

解决方法如下

关闭hyper-v,虚拟机平台,windows-subsystem-liunx

三个Windows功能,重启PC后,重写开启这三个功能

powershell 管理员模式使用下列命令(询问是否重启,全部选no),完成后重启PC

1
2
3
4
disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V 
disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

powershell 管理员模式使用下列命令(询问是否重启,全部选no),完成后重启PC

1
2
3
4
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

使用wsl命令可以成功进入

1
wsl

如果成功进入,问题就解决了,否则就接着往下看:

继续排查问题

先尝试更改wsl默认版本为1。将liunx发行版转换为wsl1

1
wsl --set-default-version 1
1
wsl --set-version Ubuntu 1

使用wsl命令

1
wsl

如果这时候可以成功进入,说明你的bios里没有开启虚拟化,请自行到bios开启虚拟化.

然后重新设置WSL2为默认版本,然后再将wsl1的liunx发行版转换为wsl2

wsl迁移到其他盘–导出和导入(可选)

因为虚拟机(Ubuntu20.04)默认安装在C盘,大量占用系统盘的空间,所以迁移到其他盘中

关闭所有正在运行的虚拟机

1
wsl --shutdown

对需要迁移的分发或虚拟机导出

虚拟机名称:我的是Ubuntu,

查看安装的虚拟机名称

1
wsl -l -v

文件导出路径:填写一个tar结尾的路径,例如D:\u.tar

1
wsl --export 虚拟机名称 文件导出路径
1
wsl --export Ubuntu D:\\u.tar

卸载虚拟机(删除原本的虚拟机数据)

1
wsl --unregister 虚拟机名称
1
wsl --unregister Ubuntu

导入新的虚拟机

目标路径:新的虚拟机文件路径(理解为软件的安装路径就对了,我安装在D:\wsl\Ubuntu

虚拟机文件路径:前文export导出的文件(D:\\u.tar

--version 2:指定使用WSL2,如果填1就是指定使用WSL1

1
wsl --import 虚拟机名称 目标路径 虚拟机文件路径 --version 2
1
2
mkdir D:\\wsl\\Ubuntu
wsl --import Ubuntu D:\\wsl\\Ubuntu D:\\u.tar --version 2
1
2
mkdir C:\\Users\\la\\WSL\\Ubuntu
wsl --import Ubuntu C:\\Users\\la\\WSL\\Ubuntu D:\\u.tar --version 2

查看安装的虚拟机

1
wsl -l -v

安装完毕后,设置默认发行版为Ubuntu

1
wsl -s Ubuntu

需要更改默认登陆用户,

WSL修改登陆用户

以下方法适用于 Fall Creators Update(20h2) 及更高版本:

假如我们在 WSL 版本的 Ubuntu 18.04 LTS 中忘记密码的时候,需要切换到 root 用户修改密码。

使用管理员打开 PowerShell,输入:

1
ubuntu1804.exe config --default-user root

即可修改成默认使用用户名为 root 的用户登录。

同理,如果是Ubuntu,可以这样输入

1
Ubuntu.exe config --default-user root

如果是Ubuntu,可以这样输入

1
Ubuntu.exe config --default-user username

查看Ubuntu.exe在哪,cmd运行

1
2
3
# in cmd
where.exe Debian
#C:\Users\la\AppData\Local\Microsoft\WindowsApps\debian.exe
1
where.exe Ubuntu

但是,如果您有多个实例,现在有更好的方案:

在实例中,以 root 身份创建/编辑并添加以下行:/etc/wsl.conf

1
2
# in cmd,
wsl -d Ubuntu
1
sudo vim /etc/wsl.conf
1
2
[user]
default=username

然后关闭它,在 PowerShell 中运行,然后重新启动它。wsl --terminate <distro name>

但现在/etc/wsl.conf正式成为支持的解决方案。

请重启电脑或者使用管理员CMD重启LxssManager。

要重启 LxssManager, 请管理员CMD运行:

1
net stop lxssmanager && net start lxssmanager

查看是否修改成功

1
whoami

更新 WSL 主机名

更新 WSL 主机名,以防止主机 Windows 计算机和 WSL 发行版之间的主机名冲突,尤其是在两者之间来回通信时

最近的 WSL 版本允许在每台主机的 wsl.conf 中分别设置 WSL 分发的主机名

如果想更新 WSL 主机名,编辑/etc/wsl.conf

1
sudo vim /etc/wsl.conf

注意,主机名不包含特殊字符、不应包含中文、不应包含控制字符、空白字符,

应当使用字母+数字+-的组合,且长度适中(不允许超过15 个字符)

生成主机名可以去在线的随机字符串生成器网站,随机密码生成器 - 随机字符串生成器 - Random Password Generator | 小影的工具箱 (c7sky.com)

1
2
3
# see https://docs.microsoft.com/en-us/windows/wsl/wsl-config
[network]
hostname="WSL-b6OupkEv"

之后重启系统

设置用户密码

有root权限的情况下,

使用命令passwd更改用户密码

修改root用户密码

1
sudo passwd root

修改用户lamirs密码

1
sudo passwd lamirs

删除用户密码

如果想将某个用户设置为无密码,输入命令如下

1
sudo passwd -d lamirs

忘记密码怎么办

打开cmd

1
wsl -u root
1
2
# wsl内输入,username是要更改用户的用户名
passwd username

需要更改默认用户和root用户的密码

1
passwd root
1
passwd lamirs

设置Ubuntu国内下载源(可选)

下载的东西会比较多,默认的源是外国的,下载速度很慢,这里建议换成国内的源,参见我的这篇博客:

https://blog.csdn.net/qq_43878324/article/details/113619644

WSL2设置网络代理(可选)

index-proxy

使用apt更新wsl2的基本环境依赖

  • 更新源
1
sudo apt update
  • 修复破损包
1
sudo apt -f install
  • 更新软件
1
sudo apt upgrade

配置wsl config

Advanced settings configuration in WSL | Microsoft Learn

限制WSL占用的内存大小

限制wsl2占用内存大小-vmmem

参考、引用、致谢

(24条消息) Ubuntu删除添加的PPA源_gfdgd xi的博客-CSDN博客_PPA源

旭日酒馆 (xueyp.github.io)

解决:zsh环境下,/etc/profile.d文件夹下的脚本不执行_TKONIY的博客-CSDN博客