在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> 仅仅是定义了一个变量供后面的 useraddpasswd 两条命令使用而已(当然还有下一步的命令用到),完全可以直接将 <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

相关推荐
haluhalu.12 分钟前
Linux系统下进程池设计与实现详解
linux·运维·服务器
小麦嵌入式18 分钟前
Linux驱动开发实战(十三):RGB LED驱动并发控制——自旋锁与信号量对比详解
linux·c语言·驱动开发·stm32·单片机·嵌入式硬件·物联网
一只旭宝30 分钟前
Linux专题四:静态库,动态库,进程进阶以及fork()函数初步
linux·运维
KingRumn1 小时前
Linux进程间通信之D-Bus
linux·算法
fufu03111 小时前
Linux环境下的C语言编程(四十九)
linux·c语言·算法
SCBAiotAigc1 小时前
Chrome的cookie编辑插件EditThisCookie
人工智能·chrome·python·ubuntu
淮北也生橘121 小时前
Linux驱动开发:移植一个MIPI摄像头驱动并将其点亮(基于Sstar 2355平台)
linux·运维·驱动开发·嵌入式linux
遇见火星1 小时前
Linux运维:RPM包配置管理指南
linux·运维·服务器·rpm
QQ__17646198241 小时前
Windows 免密 SSH 登录 Ubuntu配置全流程(可复用到 VS Code)
运维·ubuntu·ssh
HABuo2 小时前
【Linux进程(一)】进程深入剖析-->进程概念&PCB的底层理解
linux·运维·服务器·c语言·c++·后端·进程