WSL使用杂记
WSL安装注意
Windows功能中确保
Windows虚拟机监控程序平台
和适用于Linux的Windows子系统
均开启,Hyper-V
可开可不开。运行
bcdedit
确保hypervisorlaunchtype
设为auto
。1
bcdedit /set hypervisorlaunchtype auto
建议将wsl默认版本设为2.
1
wsl --set-default-version 2
概念介绍
分发(distribution)
可以理解为docker里的容器。包括在Windows中储存的配置和在硬盘上储存的镜像文件。
WSL1和WSL2的区别[1]
WSL1和WSL2实现不同,理论上WSL2效率更高,同时WSL2的分发镜像是一个vhdx
文件,而WSL1的分发镜像是rootfs
目录下一堆散的文件。
WSL所用工具介绍
官方工具wsl
- 支持WSL1和WSL2,但是缺乏部分实用功能;
- 导入分发只支持
.tar
和.tar.gz
,不支持.tar.xz
;
第三方工具LxRunOffline
[2]
- 有导出WSL分发配置、迁移WSL分发镜像等实用功能
- 对WSL2支持有限(截止到v3.5.0)
无脑操作流程
导出分发
使用
wsl
导出分发镜像1
wsl --export Ubuntu-18.04 D:\export\Ubuntu-1804.tar
LxRunOffline暂时不支持WSL2,因此不使用。
注意
wsl
命令导出的分发镜像是未压缩的,LxRunOffline
导出的分发镜像目录结构稍有不同,且使用tar压缩。使用
LxRunOffline
导出分发配置屏幕输出配置可使用
1
LxRunOffline summary -n Ubuntu-18.04
导出配置表可使用
1
LxRunOffline export-config -n Ubuntu-18.04 -f D:\export\Ubuntu-1804.xml
注意这个配置表就拿来看看而已,导入给WSL2的分发会直接导致配置损坏!
重新部署分发
使用
wsl
导入分发镜像1
wsl --import Ubuntu-18.04 D:\WSL-Ubuntu1804\ D:\export\Ubuntu-1804.tar --version 2
wsl
使用--version 2
参数可以导入为WSL2的分发,LxRunOffline
导入的必是WSL1的分发,因此需要使用WSL2时必定使用wsl
。经过测试
wsl
导入分发镜像只支持.tar
和.tar.gz
,不支持.tar.xz
设置导入分发的配置
由于
LxRunOffline
导入配置出现了分发直接挂掉的问题,因此.xml
仅供存档参考,具体的设置使用LxRunOffline
手动配置。设置默认账户(默认账户的uid一般是1000)
1
LxRunOffline set-uid -n Ubuntu-18.04 -v 1000
其余设置
查看LxRunOffline的帮助,直到
LxRunOffline summary -n Ubuntu-18.04
输入与D:\export\Ubuntu-1804.xml
相同。WSL1和WSL2都能正常使用。
其他:
直接复制
ext4.vhd
然后调用1
LxRunOffline register -n Ubuntu-18.04 -d D:\WSL-Ubuntu1804\
也许可以,并没有试过。
移动分发路径
wsl没有提供相应功能,因此只能使用LxRunOffline:
1 | wsl --shutdown |
WSL1和WSL2都可以正常使用。
WSL分发配置损坏的一种修复方法
LxRunOffline注销分发
1
LxRunOffline unregister -n Ubuntu-18.04
注意:
1
2
3uninstall Uninstall a distribution.
...
unregister Unregister a distribution but not delete the installation directory.LxRunOffline重新注册分发
1
LxRunOffline register -n Ubuntu-18.04 -d D:\WSL-Ubuntu1804\
重新设定分发配置