我有一个现有的 Ubuntu 发行版,我想要一个新的 Ubuntu 映像的第二个。
我怀疑我可以:
- 将我现有的发行版导出到 tar
wsl.exe --export
- 注销我现有的发行版
wsl unregister
- 从 Microsoft Store 卸载 Ubuntu
- 从 Microsoft Store 重新安装 Ubuntu,给我一个全新的安装
- 通过从 tar 导入
wsl --import
那应该给我 2 个发行版,我现有的加上一个新鲜的。有没有更简单/更好的方法?
这是最新的(截至撰写时)Windows 10 Build 19035
重要提示:以下过程仅适用于Windows 10 Build 18305 或更高版本。请确保在命令行中
wsl.exe
有--import
选项。对于较旧的 Windows 10 版本,请尝试此替代方法。程序:
首先我们需要来自 Ubuntu 的 rootfs 压缩包。 在 Web 浏览器中打开https://cloud-images.ubuntu.com/releases/ 。转到具有所需 Ubuntu 版本的文件夹。
下载
ubuntu-x.x-server-cloudimg-amd64-wsl.rootfs.tar.gz
文件(xx 用作版本号)。确保文件名具有amd64-wsl
且文件类型为.tar.gz
(GZIP tarball)。例如,直接链接将如下所示:wsl.exe
命令行安装它。打开命令提示符。实际的命令格式如下:wsl.exe -d DistroA
。笔记:
该过程可用于任何 GNU/Linux 发行版用户空间。
这不使用 Windows 应用商店。因此,Windows 应用商店既不显示名称也不更新安装。
在 Windows 10 ARM64 (AArch64) 中,使用
arm64-wsl
Ubuntu 的云映像。在此过程中,同一台机器上的其他用户可以访问安装文件夹。如果您使用的是共享计算机,请使用适当的权限。
如果您愿意与同一台机器的其他用户共享安装,那么只需导出此注册表
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
。然后将其导入同一台机器的其他用户。进一步阅读:
Biswapriyo的回答效果很好,但需要额外的步骤来更改默认用户。请注意,这需要构建 18980 及更高版本。
adduser
通过命令添加非root用户:启用 sudoer 权限
${NEW_USER}
:在 /etc/wsl.conf 中添加设置默认用户:
通过 退出 WSL
logout
,然后发出 WSL 关闭命令以使更改生效:下次
wsl -d DistroA
调用时,${NEW_USER}
用户将处于活动状态。也许有点晚了,但找到了你的帖子并尝试了不同的方式。
我想要 2 xa Ubuntu 20.04 LTS 映像。第一个很简单,只是 Windows 商店的标准。对于第二个,我为 Windows Store 安装了 Ubuntu 18.04 LTS 映像,并执行了“do-release-upgrade”以将其升级到 Ubuntu 20.04 LTS。
我最近遇到了同样的问题,因为我同时与不同的公司合作,并且需要一个可以轻松创建新 WSL2 实例并同样轻松删除它的脚本。
删除本身并不难,因为官方命令
wsl --unregister <distro_name>
工作得很好,并且完美地摆脱了 WSL2 实例,不留任何痕迹。然而,创作可能是麻烦的,甚至是乏味的。我的脚本就是这样做的:https ://github.com/IAL32/WSL2-Create-Distro
以下示例使用 Ubuntu20.04 (Focal Fossa) 使用先前下载的压缩包创建 WSL2 实例(示例使用以下压缩包:https ://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg- amd64-wsl.rootfs.tar.gz),使用用户名创建用户
myuser
并将其添加到组sudo
中。它还将用户密码设置为管道中给定的密码,以及 root 用户的密码,也在管道中给出。在幕后,如果创建了一个新用户,它也会将其默认 shell 从 更改
/bin/sh
为/bin/bash
。我建议改用 Ubuntu“基础”图像(比“云”图像更不臃肿):
您下载 rootfs 并导入它:
UPDATE的第一行或+
/etc/passwd
中定义的用户定义启动的应用程序。/etc/wsl.conf
passwd
要进行故障排除,您可以自己指定入口点
-e
:wsl -d BaseUbuntu -e /bin/sh
您可以查看 rootfs 存档以查看
/bin
/中的应用程序/usr/bin
。找到 shell 后,您可以以 root 身份运行映像:chsh
并使用或其他可用工具更新默认外壳。