导入要与 WSL 一起使用的任何 Linux 发行版
```
sudo service docker start
本文内容通过使用tar文件导入任何Linux发行版,可在适用于Linux的Windows子系统(WSL)中使用该发行版(即使它不在Microsoft Store中提供)。本文演示了如何通过使用Docker容器获取Linux发行版CentOS的tar文件来将它导入,以便与WSL一起使用。此过程可应用于导入任何Linux发行版。
获取发行版的tar文件
首先,需要获取一个tar文件,其中包含发行版的所有Linux二进制文件。可通过多种方式获取tar文件,其中两种方式包括:
获取CentOS的tar文件示例
在本示例中,使用WSL发行版中的Docker来获取CentOS的tar文件。
- 先决条件从容器导出tar
打开已从Microsoft Store安装的Linux发行版(本例中是Ubuntu)的命令行(Bash)。 启动Docker服务:
docker run -t centos bash ls /
- 在Docker中运行CentOS容器:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
- 使用grep和awk获取CentOS容器ID:
docker export $dockerContainerID > /mnt/c/temp/centos.tar
- 将容器ID导出到装载的C盘上的tar文件:
此过程从Docker容器导出CentOS tar文件,这样我们现在就可以导入它,以在本地将其与WSL一起使用。
将tar文件导入WSL
准备好tar文件后,可使用以下命令导入它:wsl --import
- 将CentOS发行版tar文件导入WSL:
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
- 打开PowerShell,并确保已创建一个要存储发行版的文件夹。
使用命令wsl --import
导入tar文件。 使用命令wsl -l -v检查已安装的发行版。
最后,使用命令wsl -d CentOS运行新导入的CentOS Linux发行版。
添加特定于WSL的组件,例如默认用户
默认情况下,使用--import时,你总是作为根用户启动。可设置自己的用户帐户,但请注意,根据每个不同的Linux发行版,设置过程略有不同。
要使用刚导入的CentOS发行版设置用户帐户,首先打开PowerShell并使用以下命令引导到CentOS:
yum update -y && yum install passwd sudo -y
myUsername=caloewen
adduser -G wheel $myUsername
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf
passwd $myUsername
接下来,打开CentOS命令行。使用此命令将sudo和密码设置工具安装到CentOS中,创建用户帐户,并将其设置为默认用户。在此示例中,用户名为"caloewen"。
注意:你需要将用户名添加到sudoers文件,以便允许用户使用sudo。命令adduser -G wheel $myUsername会将用户myUsername添加到wheel组中。wheel组中的用户会被自动授予sudo权限,并且可以执行需要提升权限的任务。
wsl --terminate CentOS
wsl -d CentOS
现在必须退出该实例,并确保所有WSL实例都已终止。再次启动发行版,在PowerShell中运行以下命令以查看新的默认用户:
现在,你将看到[caloewen@loewen-dev]$作为基于此示例的输出。
要详细了解如何配置WSL设置,请参阅[链接]。
使用自定义Linux发行版
可创建自己的自定义Linux发行版(打包为UWP应用),其行为将与Microsoft Store中提供的WSL发行版完全一样。要了解如何操作,请参阅[链接]。 ```