在WSL2中安装多个Ubuntu实例

参考:How to install multiple instances of Ubuntu in WSL2

本文主要内容

第一步:在 WSL2 中安装最新的 Ubuntu

如果你的系统是 windows 10 2004或更高版本(Build 19041或以上),可以使用以下命令直接在 WSL 中安装最新版本的 Ubuntu 实例:

shell 复制代码
wsl --install

这将实现所有必需的步骤,比如:

  1. 在 Windows 上启用所需的可选组件(Windows Virtualisation Platform 等)
  2. 启用 Windows Subsystem for Linux 2(WSL2)
  3. 将 Linux 内核更新到最新版本
  4. 安装默认的 Linux 发行版,比如最新版的 Ubuntu

安装完成,只需要运行 wsl 命令即可打开 WSL2 shell,第一次运行时需要设置用户名和密码。

第二步:下载适用于 WSL2 的 Ubuntu 压缩包

可以从 Ubuntu WSL镜像 中下载适用于 WSL2 的 Ubuntu 镜像压缩包保存到本地。

使用 Windows Terminal 或者 Powershell 来下载,在下载之前先运行以下命令移除 curl 别名:

shell 复制代码
Remove-Item alias:curl

接着运行以下命令下载Ubuntu镜像,一定要将整个命令复制到 Windows Terminal 或者 Powershell 中并运行:

bash 复制代码
curl (("https://cloud-images.ubuntu.com",
"releases/hirsute/release",
"ubuntu-21.04-server-cloudimg-amd64-wsl.rootfs.tar.gz") -join "/") `
--output ubuntu-21.04-wsl-rootfs-tar.gz

如果有警告,直接点击"Paste Anyway"按钮然后敲 Enter 键执行即可,会将 Ubuntu WSL 镜像下载到当前目录。

第三步:在 WSL2 中安装第二个 Ubuntu 实例

以下命令即可实现:

bash 复制代码
wsl --import <Distribution Name> <Installation Folder> <Ubuntu WSL2 Image Tarball path>
  1. 将 <Distribution Name> 改成自己想要的名字,比如ubuntu-2,以后启停会用到
  2. 使用 Ubuntu 实例目标安装路径(文件夹)替换掉 <Installation Folder>
  3. 最后用上一步下载的 Ubuntu 镜像存储位置替换掉 <Ubuntu WSL2 Image Tarball path>

    以上命令运行成功后可以使用 wsl -l -v 查看已安装的发行版。

第四步:登录到第二个Ubuntu实例

首先将发行版实例(第二个Ubuntu实例)运行起来:

bash 复制代码
wsl -d <Distribution Name>

这里的 <Distribution Name> 很明显就是第三步中指定的名字。

第五步:设置用户账户

注意,上一步最后是使用的 root 用户登录进 Linux 的,接下来一起设置一个普通用户。

在使用 root 用户登录进 WSL2 的第二个 Ubuntu 实例后,先运行以下命令:

bash 复制代码
NEW_USER=<USERNAME>

其中将 <USERNAME> 换成你喜欢的用户名。

接着运行以下命令创建新用户账户并设置密码:

bash 复制代码
useradd -m -G sudo -s /bin/bash "$NEW_USER"
passwd "$NEW_USER"

其实上面的 NEW_USER=<USERNAME> 仅仅是定义了一个变量供后面的 useradd 和 passwd 两条命令使用而已(当然还有下一步的命令用到),完全可以直接将 <USERNAME> 直接放进这两条命令执行。

第六步:设定默认用户

接着,需要将 Ubuntu 实例默认登录用户从 root 用户替换为新创建的用户。为了实现这一点,运行以下命令(复制整个代码块到 Windows Terminal 或 PowerShell 然后敲 Enter):

bash 复制代码
tee /etc/wsl.conf <<_EOF
[user]
default=${NEW_USER}
_EOF

第七步:使用新账户登录

首先运行 logout 命令退出 WSL,接着通过以下命令关闭正在运行的第二个 Ubuntu 实例:

bash 复制代码
wsl --terminate <Distribution Name>

最后,再次启动第二个 Ubuntu 实例并登录:

bash 复制代码
wsl -d <Distribution Name>

注:以上所有的 <Distribute Name> 都是第二步安装实例时指定的,在本文中用的是 ubuntu-2

相关推荐
律宏阔6 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔6 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴6 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千7 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei377 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei377 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei377 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
GeW7 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
GeW7 小时前
工业场景中的Linux与数据库选型:高端化转型的技术底座
linux
yunwei377 小时前
eBPF 开发者教程: 简单的 XDP 负载均衡器
linux·后端·性能优化