记录一次win11的wsl2安装配置记录

记录一次win11的wsl2安装配置记录

三月 09, 2023

前言: 最近把能迁移的开发服务器几乎服务全部迁移到了docker上,本着能上docker的就不在本地安装的原则,把我以前工作的电脑安装上wsl2+docker 并且wsl和docker迁移到其他磁盘 (C盘战士狂怒)

提示您需要提前了解的知识:
部分wsl命令,跨越功夫网,了解.bashrc的作用,windows terminal的配置还有如何进入自己电脑的bios。

第一步(下载):

​ 当然像什么主板开启虚拟化啥的还有在控制面板–应用与功能–启用或者关闭windows功能上开启虚拟化平台和适用于windwos的linux子系统我就不赘述了。

微软商店下载对应的发行版,还有安装wsl,直接搜索就好,这里我安装的是ubuntu22.04.2

(如果下载不了比如:0x80072EFD错误,请检查直接的windwos是否更新或者是使用loopback工具,这个文档不会介绍关于商店的东西,默认可以正常访问并且下载。)

第二步(安装与启动wsl):

下载完成后打开你下载的发行版本:

​ 如果打开后报错,请检查您是否开启虚拟化平台和适用于windwos的linux子系统,当然还有wsl2是否有安装。

如果遇到:WslRegisterDistribution failed with error: 0x800701bc
您可能是从wsl1升级到wsl2后未更新内核请到微软官网升级:传送门

如果遇到:WslRegisterDistribution failed with error: 0x8007019e
请检查你在控制面板的应用与功能处是否开启了适用于windows的linux子系统。或者在powershell(管理员)执行Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,回车,输入Y或者y,然后系统重启。

如果遇到:WslRegisterDistribution failed with error: 0x80370102
请在bios上打开处理器的虚拟化选项,具体开启方法请自行百度。

正常情况

等待后就能正常进入系统了

按下ctrl+d或者输入exit退出wsl

然后查看自己安装的发行版与wsl的版本号:

记住自己发行版的名称(复制一下)我的是ubuntu22.0.4

第三步(迁移到其他盘):

彻底关闭wsl

wsl --shutdown

导出分发版为tar文件到D盘

wsl --export Ubuntu-22.04 D:\Ubuntu.tar

注销当前分发版

wsl --unregister Ubuntu-22.04

重新导入并安装WSL在D盘

wsl --import Ubuntu-22.04 D:\wsl\ubuntu2204 D:\Ubuntu.tar --version 2

删除ubuntu22.04.tar

del D:\Ubuntu.tar

第四步(配置systemctl和默认启动用户):

迁移完成后你会发现的你默认启动用户变成了root这个这是很危险的所以我们需要切换回自己之前创建的用户,然后启用systemctl支持。

先升wsl程序(Releases · microsoft/WSL (github.com)

完成后进入wsl后修改/etc/wsl.conf

1
2
3
4
5
#/etc/wsl.conf
[boot]
systemd=true
[user]
default=你的用户名

然后exit + wsl –shudown 二连彻底停掉wsl再重新进入

之后验证:

如果你进入后发现默认用户不是root并且输入ps --no-headers -o comm 1返回为systemd即为成功!

第五步(docker安装与迁移):

直接下载docker Desktop安装就行

接着在设置里面更改存储位置和与wsl2集成

迁移软件

使用services.msc停止docker服务

剪切C:\Program Files\Docker到D盘C:\Program Files\
使用mklink软连接程序
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

迁移磁盘文件

和迁移ubunutu 方法一样

彻底关闭wslwsl --shutdown

导出分发版为tar文件到D盘

wsl --export docker-desktop-data D:\docker-desktop-data.tar

注销当前分发版

wsl --unregister docker-desktop-data

重新导入并安装WSL在D盘

wsl --import docker-desktop-data D:\wsl\docker-desktop-data D:\docker-desktop-data.tar --version 2

删除docker-desktop-data.tar

del D:\docker-desktop-data.tar


导出分发版为tar文件到D盘

wsl --export docker-desktop D:\docker-desktop.tar

注销当前分发版

wsl --unregister docker-desktop

重新导入并安装WSL在D盘

wsl --import docker-desktop D:\wsl\docker-desktop D:\docker-desktop.tar --version 2

删除docker-desktop.tar

del D:\docker-desktop.tar

重启doker服务

启动后使用wsl 拉一个镜像试试:

第六步(调整与美化):

打开windows terminal 我比较喜欢用powershell 设置好背景图和透明度之后的效果:

到此为止算是结束一步份了后面安装ohmyposh等主题和windows terminal自定义快捷键后面有时间更新吧((((