wsl2安装与基本环境配置
上一级页面:index-wsl
安装
如何安装wsl:官方文档. 安装 WSL | Microsoft Docs
现在,可以在管理员 PowerShell 或 Windows 命令提示符中输入此命令,然后重启计算机来安装运行适用于 Linux 的 Windows 子系统 (WSL) 所需的全部内容。
wsl --install
安装完WSL,可以在Windows Store中安装Linux发行版,我目前装的是Ubuntu
wsl --list --online
以查看可用发行版列表并运行
wsl --install -d <DistroName>
以安装发行版。
因为是开发环境,以ubuntu20.04为例
wsl --install -d Ubuntu
安装完毕后,设置默认发行版为Ubuntu
wsl -s Ubuntu
打开刚刚安装的Ubuntu,设置默认用户和密码
设置WSL2为默认版本
在Windows Termial输入wsl -l -v
查看当前的子系统是否为wsl2
wsl -l -v
设置WSL2为默认版本
wsl --set-default-version 2
将原本wsl1的Linux分发版,转化为wsl2版本:
wsl --set-version <distribution name> <versionNumber>
* <distribution name>就是distro,也就是Linux发行版,对应我的发行版就是Ubuntu。
我们需要wsl1转换为wsl2,
<distribution name>
是发行版名称,<versionNumber>
要填2,
wsl --set-version Ubuntu 2
安装报错
在安装wsl启动后可能会遇到如下报错:
解决方法如下
关闭hyper-v,虚拟机平台,windows-subsystem-liunx
三个Windows功能,重启PC后,重写开启这三个功能
powershell 管理员模式使用下列命令(询问是否重启,全部选no),完成后重启PC
disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
powershell 管理员模式使用下列命令(询问是否重启,全部选no),完成后重启PC
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
使用wsl命令可以成功进入
wsl
如果成功进入,问题就解决了,否则就接着往下看:
继续排查问题
先尝试更改wsl默认版本为1。将liunx发行版转换为wsl1
wsl --set-default-version 1
wsl --set-version Ubuntu 1
使用wsl命令
wsl
如果这时候可以成功进入,说明你的bios里没有开启虚拟化,请自行到bios开启虚拟化.
然后重新设置WSL2为默认版本,然后再将wsl1的liunx发行版转换为wsl2
wsl迁移到其他盘--导出和导入(可选)
因为虚拟机(Ubuntu20.04)默认安装在C盘,大量占用系统盘的空间,所以迁移到其他盘中
关闭所有正在运行的虚拟机
wsl --shutdown
对需要迁移的分发或虚拟机导出
虚拟机名称:我的是Ubuntu,
查看安装的虚拟机名称
wsl -l -v
文件导出路径:填写一个tar结尾的路径,例如D:\u.tar
wsl --export 虚拟机名称 文件导出路径
wsl --export Ubuntu D:\\u.tar
卸载虚拟机(删除原本的虚拟机数据)
wsl --unregister 虚拟机名称
wsl --unregister Ubuntu
导入新的虚拟机
目标路径:新的虚拟机文件路径(理解为软件的安装路径就对了,我安装在D:\wsl\Ubuntu
)
虚拟机文件路径:前文export
导出的文件(D:\\u.tar
)
--version 2
:指定使用WSL2,如果填1就是指定使用WSL1
wsl --import 虚拟机名称 目标路径 虚拟机文件路径 --version 2
mkdir D:\\wsl\\Ubuntu
wsl --import Ubuntu D:\\wsl\\Ubuntu D:\\u.tar --version 2
mkdir C:\\Users\\la\\WSL\\Ubuntu
wsl --import Ubuntu C:\\Users\\la\\WSL\\Ubuntu D:\\u.tar --version 2
查看安装的虚拟机
wsl -l -v
安装完毕后,设置默认发行版为Ubuntu
wsl -s Ubuntu
需要更改默认登陆用户,
WSL修改登陆用户
以下方法适用于 Fall Creators Update(20h2) 及更高版本:
假如我们在 WSL 版本的 Ubuntu 18.04 LTS 中忘记密码的时候,需要切换到 root 用户修改密码。
使用管理员打开 PowerShell,输入:
ubuntu1804.exe config --default-user root
即可修改成默认使用用户名为 root 的用户登录。
同理,如果是Ubuntu,可以这样输入
Ubuntu.exe config --default-user root
如果是Ubuntu,可以这样输入
Ubuntu.exe config --default-user username
查看Ubuntu.exe在哪,cmd运行
# in cmd
where.exe Debian
#C:\Users\la\AppData\Local\Microsoft\WindowsApps\debian.exe
where.exe Ubuntu
但是,如果您有多个实例,现在有更好的方案:
在实例中,以 root 身份创建/编辑并添加以下行:/etc/wsl.conf
# in cmd,
wsl -d Ubuntu
sudo vim /etc/wsl.conf
[user]
default=username
然后关闭它,在 PowerShell 中运行,然后重新启动它。wsl --terminate <distro name>
但现在/etc/wsl.conf
正式成为支持的解决方案。
请重启电脑或者使用管理员CMD重启LxssManager。
要重启 LxssManager
, 请管理员CMD运行:
net stop lxssmanager && net start lxssmanager
查看是否修改成功
whoami
更新 WSL 主机名
更新 WSL 主机名,以防止主机 Windows 计算机和 WSL 发行版之间的主机名冲突,尤其是在两者之间来回通信时
最近的 WSL 版本允许在每台主机的 wsl.conf
中分别设置 WSL 分发的主机名
如果想更新 WSL 主机名,编辑/etc/wsl.conf
sudo vim /etc/wsl.conf
注意,主机名不包含特殊字符、不应包含中文、不应包含控制字符、空白字符,
应当使用字母+数字+-
的组合,且长度适中(不允许超过15 个字符)
生成主机名可以去在线的随机字符串生成器网站,随机密码生成器 - 随机字符串生成器 - Random Password Generator | 小影的工具箱 (c7sky.com)
# see https://docs.microsoft.com/en-us/windows/wsl/wsl-config
[network]
hostname="WSL-b6OupkEv"
之后重启系统
设置用户密码
有root权限的情况下,
使用命令passwd更改用户密码
修改root用户密码
sudo passwd root
修改用户lamirs密码
sudo passwd lamirs
删除用户密码
如果想将某个用户设置为无密码,输入命令如下
sudo passwd -d lamirs
忘记密码怎么办
打开cmd
wsl -u root
# wsl内输入,username是要更改用户的用户名
passwd username
需要更改默认用户和root用户的密码
passwd root
passwd lamirs
设置Ubuntu国内下载源(可选)
下载的东西会比较多,默认的源是外国的,下载速度很慢,这里建议换成国内的源,参见我的这篇博客:
https://blog.csdn.net/qq_43878324/article/details/113619644
WSL2设置网络代理(可选)
使用apt更新wsl2的基本环境依赖
- 更新源
sudo apt update
- 修复破损包
sudo apt -f install
- 更新软件
sudo apt upgrade
配置wsl config
见Advanced settings configuration in WSL | Microsoft Learn