Table of Contents
wsl2的坑
- 没有systemd服务,导致很多依赖systemd的程序运行不了或者要手动管理其生命周期,比如ssh,docker,gitlab;
- 和virutualbox6.1(我的PC上装的是这个版本)有冲突,导致virtualbox的虚拟机老是崩溃;
https://github.com/MicrosoftDocs/WSL/issues/798 - wsl2需要Hyper-V的支持,而Hyper-V只和Vmware workstation 16及以后的版本兼容。
玩转wsl2
官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/install
安装一个wsl2:
wsl --install
安装一个指定的发行版:
wsl --install -d <DistroName>
查看已经安装的wsl2:
wsl -l -v
查看支在线安装的wsl2发行版:
wsl --list --online
设置默认安装的发行版:
wsl -s <DistributionName>
;或者
wsl --set-default <DistributionName>
将安装的发型版从wsl1改为wsl2:
wsl --set-version <distro name> 2
从wsl2改为wsl1同理,
wsl --set-version <distro name> 1
安装linux发行版后需要设置用户名和密码,https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment#set-up-your-linux-username-and-password
wsl2命令列表
https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
注销或卸载 Linux 发行版:
wsl --unregister <DistributionName>
修改linux发行版安装位置
一个关键问题,wls2实例默认是安装在C盘的,但是鉴于C盘的空间很宝贵,所以要更改安装的wsl2实例的位置。https://superuser.com/questions/1714345/change-of-wsl-installation-location
关键命令:
mkdir D:\WSL\images # For example
mkdir D:\WSL\instances\<newDistroName>
cd D:\WSL
wsl -l -v # Verify distro name to export
wsl --export <distroname> .\images\<distroname>.tar
wsl --import <newDistroName> .\instances\<newDistroName> .\images\<distroname>.tar
wsl --set-default <newDistroName>
上面更改安装Linux发行版安装位置的方式是先导出镜像(image)再导入到指定位置。
这个方法的问题是我导入image后,wsl默认进入导入发行版的用户名变成了root而不是原来设置的用户名。
另一种方式是找到直接用wsl命令安装的ext4.vhdx文件,然后把这个文件拷贝到要安装的位置,再in-place安装:
wsl --import-in-place <Distribution Name> <FileName>
见这个页面就地导入发行版一节:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands。
用指定用户名进入linux发行版
wsl -u <username>
近期评论