跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > 在WSL2中安装多个Ubuntu教程

在WSL2中安装多个Ubuntu教程

时间:2024-04-11 15:25:20 来源:网络cs 作者:利杜鹃 栏目:卖家故事 阅读:

标签: 教程  安装 
阅读本书更多章节>>>>

文章目录

前言一、前期准备1、WSL安装2、Docker安装 二、安装第二个Ubuntu系统1.切换为WSL22.获取Ubuntu16.04的tar文件从容器中导出tar 3. 将tar文件导入WSL4. 设置默认用户 总结


前言

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。通常WSL默认仅安装一个默认的Ubuntu系统,但是在实际使用过程中,我们经常需要多个Ubuntu系统,因此本教程将详细介绍在WSL2中安装多个Ubuntu,希望对大家有所帮助。


一、前期准备

1、WSL安装

wsl --install -d Ubuntu-18.04

详细安装过程请参考:WSL install官方链接

wsl --set-version Ubuntu-18.04 2

2、Docker安装

建议直接安装Docker-Desktop,不需要命令行操作,一步到位。
详细安装教程参考:Docker官网

Docker测试:

docker --version

二、安装第二个Ubuntu系统

下面介绍通过使用tar文件导入Ubuntu16.04系统

1.切换为WSL2

#将 WSL 2 设置为默认版本wsl --set-default-version 2#将 Ubuntu 20.04 发行版设置为使用 WSL 2wsl --set-version Ubuntu-20.04 2 

2.获取Ubuntu16.04的tar文件

首先,需要获取一个 tar 文件,其中包含发行版的所有 Linux 二进制文件。
在本示例中,使用 WSL 发行版中的 Docker 来获取 Ubuntu16.04 的 tar 文件。

从容器中导出tar

进入到先前安装好的Ubuntu20.04系统,并在子系统中再安装一个Docker,Docker安装命令如下:

新建一个build.sh,设置 Docker 的apt存储库
# build.sh# Add Docker's official GPG key:sudo apt-get updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc# Add the repository to Apt sources:echo \  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \  sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update
#运行build.shsudo sh ./build.sh
安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
测试
sudo docker run hello-world

Docker安装完成之后,我们需要在Ubuntu20.04中再启动一个Ubuntu16.04的Docker容器:

拉取Docker镜像
sudo docker pull ubuntu:16.04
创建容器
 docker run -it ubuntu:16.04 /bin/bash
检查docker容器
luu@DELL:/mnt/c/Users/ding$ docker ps -aCONTAINER ID   IMAGE          COMMAND       CREATED              STATUS                      PORTS     NAMES2ed6c4e7cbe7   ubuntu:16.04   "/bin/bash"   About a minute ago   Exited (0) 16 seconds ago             angry_dijkstrac5743d46ac51   centos         "bash ls /"   48 minutes ago       Exited (0) 48 minutes ago             wizardly_carson

注意:这里的Ubuntu16.04必须是在Ubuntu20.04的子系统创建,而不是在Window系统中创建,这个十分重要!!不然导出的tar文件无法导入到WSL中。

导出tar文件
luu@DELL:/mnt/c/Users/ding$ dockerContainerID=$(docker container ls -a | grep -i ubuntu:16.04 | awk '{print $1}')luu@DELL:/mnt/c/Users/ding$ docker export $dockerContainerID > /mnt/c/temp/ubuntu1604.tar

注意:需要在C盘新建一个空的temp/**.tar文件。

3. 将tar文件导入WSL

准备好 tar 文件后,可使用以下命令导入它:wsl --import < Distro > < InstallLocation > < FileName >

打开 PowerShell,并确保已创建一个要存储发行版的文件夹。
cd C:\tempmkdir E:\wslDistroStorage\ubuntu1604
使用命令 wsl --import < DistroName> < InstallLocation> < InstallTarFile> 导入 tar 文件。
 wsl --import Ubuntu-16.04 E:\wslDistroStorage\ubuntu1604 .\ubuntu1604.tar
检查结果
PS C:\temp> wsl --import Ubuntu-16.04 E:\wslDistroStorage\ubuntu1604 .\ubuntu1604.tar正在导入,这可能需要几分钟时间。操作成功完成。PS C:\temp> wsl -l -v  NAME                   STATE           VERSION* Ubuntu-18.04           Running         2  CentOS                 Stopped         2  docker-desktop-data    Running         2  docker-desktop         Running         2  Ubuntu-16.04           Stopped         2

4. 设置默认用户

进入Ubuntu-16.04系统
PS C:\temp> wsl -d Ubuntu-16.04

安装sudo

apt-get updateapt-get install sudo
设置用户账户
root@DELL:/mnt/c/temp# NEW_USER=ztlroot@DELL:/mnt/c/temp# useradd -m -G sudo -s /bin/bash "$NEW_USER"root@DELL:/mnt/c/temp# passwd "$NEW_USER"Enter new UNIX password:Retype new UNIX password:passwd: password updated successfully
设定默认用户,将 Ubuntu 实例默认登录用户从 root 用户替换为新创建的用户
tee /etc/wsl.conf <<_EOF[user]default=${NEW_USER}_EOF

在这里插入图片描述

使用新用户登录

在这里插入图片描述
红框部分为关键操作,重启Ubuntu-16.04,实现用户从root切换到ztl。

设置su密码
sudo passwd

参考:Linux su密码忘记如何重置

7.将用户添加到 sudo 用户组

在 Ubuntu 上,最简单的授予一个用户 sudo 权限的方式就是将用户添加到“sudo”用户组。该组成员可以以 root 身份执行任何命令,并且在使用sudo命令,被提示时,使用他们自己的密码进行认证

sudo whoami#如果用户有 sudo 权限,这个命令将会打印“root”

将用户添加到sudoers文件中,授权sudo特权:

sudo visudo#在“User privilege specification”下面添加:username ALL=(ALL:ALL) ALL #username替换成想要添加的用户名

总结

之前一直出现导入失败的情况,来回折腾了好几次,后面发现问题出在了系统切换上,不能从Window上导出Ubuntu16.04,必须进入到一个WSL子系统,然后从子系统导出相应的tar文件,最后再在Window的WSL中导入才行。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-11/157135.html,文章来源:网络cs,作者:利杜鹃,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论