使用 Multistrap 工具制作根文件系统,Multistrap是一个工具,可以用来构建一个完整的、可启动的、根文件系统。这个根文件系统可以被 Docker 和 WSL 使用。
首先需要下载 Linux 内核更新包,参考:旧版 WSL 的手动安装步骤 | Microsoft Learn
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
yangtze.multistrap 是配置文件。
bash build.sh
sudo tar -cf yangtze-rootfs.tar -C /yangtze-rootfs .
在新位置导入WSL。
选一个存放虚拟磁盘的文件夹,起名为openkylin。
将openkylin.tar复制到上面的文件夹里面,比如复制到了c:\openkylin
,然后执行下面的命令:
cd c:\openkylin
wsl --import openkylin .\ .\openkylin.tar --version 2
上面的openkylin是容器名,可以自定义,但是自己改完之后后面修改默认用户会比较麻烦。
默认用户为xxx,密码:35785214
Root密码:35785214
可以使用wsl -d openkylin
进入系统中,此时进入的是root账户。
- 使用
passwd root
可以修改root
账户密码。 - 新增用户xxxx到sudo组:
useradd -g sudo xxxx
- 修改xxxx密码:
passwd xxxx
- 添加家目录:
mkdir /home/xxxx
- 设置家目录权限:
chmod 777 -R ~
(本来应该设置755,但一些程序运行不对劲,所以这里改777了)
现在已经有了账户,但默认登陆还是root。
如果想改成上面的xxxx,可以随便找一个wsl的安装程序,比如deepin.exe
,用他来快速配置:
- 把
deepin.exe
拷贝到c:\openkylin
并改名成openkylin.exe
- 执行
.\openkylin.exe config --default-user xxxx
如果不报错,默认用户就变成xxxxx了
上面的方法可以用,但是不建议;可参考下面的方法设置默认用户:
使用 wsl.conf
进行配置,进入 wsl ,编辑 wsl.conf
配置文件:
sudo vim /etc/wsl.conf
添加如下内容:
[user]
default = xxx #xxx 是你想要设置的用户名、前提是已经创建并配置好了
保存配置并退出,同样在关闭 wsl 之后重新进入,便会发现默认用户已经修改了。
wsl --list --running
wsl --shutdown
wsl
wsl.conf
配置优先级 较高
-
参考 deepin-docker 制作deepin-docker
-
参考WSL 修改默认用户_wsl 设置默认用户-CSDN博客 设置默认用户