在WSL2中安装多个Ubuntu教程

news2024/11/16 5:21:51

文章目录

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


前言

适用于 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 2
wsl --set-version Ubuntu-20.04 2 

2.获取Ubuntu16.04的tar文件

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

从容器中导出tar

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

  1. 新建一个build.sh,设置 Docker 的apt存储库
# build.sh
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo 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/null
sudo apt-get update
#运行build.sh
sudo sh ./build.sh
  1. 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 测试
sudo docker run hello-world

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

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

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

  1. 导出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 >

  1. 打开 PowerShell,并确保已创建一个要存储发行版的文件夹。
cd C:\temp
mkdir E:\wslDistroStorage\ubuntu1604
  1. 使用命令 wsl --import < DistroName> < InstallLocation> < InstallTarFile> 导入 tar 文件。
 wsl --import Ubuntu-16.04 E:\wslDistroStorage\ubuntu1604 .\ubuntu1604.tar
  1. 检查结果
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. 设置默认用户

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

安装sudo

apt-get update
apt-get install sudo
  1. 设置用户账户
root@DELL:/mnt/c/temp# NEW_USER=ztl
root@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
  1. 设定默认用户,将 Ubuntu 实例默认登录用户从 root 用户替换为新创建的用户
tee /etc/wsl.conf <<_EOF
[user]
default=${NEW_USER}
_EOF

在这里插入图片描述

  1. 使用新用户登录

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

  1. 设置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中导入才行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1510501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

H12-811_19

19.(多选题)如下图所示的网络&#xff0c;下列哪些命令可以使RouterA可以转发目的IP地址为10.0.3.3的效据包? A.ip route-static 10.0.3.3 255.255.255.255 10.0.12.2 B.ip route-static 10.0.2.2 255.255.255.255 10.0.12.2 ip route-static 10.0.3.3 255.255.255.255 10.0…

7、设计模式之桥接模式(Bridge)

一、什么是桥接模式 桥接模式是一种结构型设计模式。它将抽象部分和实现部分分离&#xff0c;使它们可以独立地变化。 二、角色组成 抽象部分&#xff08;Abstraction&#xff09;&#xff1a;定义了抽象部分的接口&#xff0c;并包含对实现部分的引用。 实现部分&#xff08;…

GPU技术文档汇总

GPU 进阶笔记&#xff08;二&#xff09;&#xff1a;华为昇腾 910B GPU 相关&#xff08;2023&#xff09;https://arthurchiao.art/blog/gpu-advanced-notes-2-zh/

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的铁轨缺陷检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;开发铁轨缺陷检测系统对于物流行业、制造业具有重要作用。本篇博客详细介绍了如何运用深度学习构建一个铁轨缺陷检测系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&#xff0c;展示了不同模…

做嵌入式编程,为什么用的是C语言而不是C++呢?

做嵌入式编程&#xff0c;为什么用的是C语言而不是C呢&#xff1f; 在开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些 电气工程师学习方法和资料&#xff0c;让我…

【阿里云系列】-如何实现两个VPC网络资源互通

背景 由于实际项目预算有限&#xff0c;两套环境虽然分别属于不同的专有网络即不同的VPC&#xff0c;但是希望借助一台运维机器实现对两个环境的监控和日常的运维操作 网络架构 如下是需要实现的外网架构图&#xff0c;其中希望实现UAT环境的一台windows的堡垒机可以访问生产…

光学硬件——二向色片

二向色镜&#xff08;Dichroic Mirrors &#xff09;又称双色镜&#xff0c;常用于激光技术中。 产品介绍&#xff1a; 指45度入射或大角度入射时&#xff0c;把光源分离出特定的光谱改变部分光谱光路方向&#xff0c;常用于酶标仪器、荧光显微镜系统、投影光引擎系统、激光灯…

β2-肾上腺素能受体激动剂通过重建T细胞分化的稳态来纠正血小板减少-AbMole

免疫性血小板减少症&#xff08;ITP&#xff09;是一种自身免疫性出血性疾病&#xff0c;其特征是血小板的增加破坏和减少产生。ITP的发病机制尚未完全明了&#xff0c;但已知与自身抗体介导的血小板破坏和脾脏中Fc依赖性吞噬作用有关。 此外&#xff0c;T细胞免疫的异常在ITP的…

解决:黑马webpack视频中出现的问题总结

问题 1 ERROR in main Module not found: Error: Can‘t resolve ‘./src‘ 解决 Webpack 中 ERROR in main Module not found: Error: Can‘t resolve ‘./src‘ 问题 黑马AJAX-Node.js-Webpack教学视频&#xff08;BV1MN411y7pw 其中P98&#xff09;中webpack部分&#xff0c…

《JAVA与模式》之合成模式

系列文章目录 文章目录 系列文章目录前言一、合成模式二、安全式合成模式的结构三、透明式合成模式的结构四、两种实现方法的选择前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

综合知识篇00-综合知识考点汇总目录(2024年软考高级系统架构设计师冲刺知识点总结-综合知识篇-先导篇)

专栏系列文章推荐&#xff1a; 2024高级系统架构设计师备考资料&#xff08;高频考点&真题&经验&#xff09;https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】&#xff08;2024年软考高级…

springboot网页时装购物系统链接

链接:https://pan.baidu.com/s/1mCmCSbqUCv48_a6wiLBdJg?pwdfalz 提取码:falz 2600套项目源码 https://kdocs.cn/l/cuAdxEBfLiqA 工作室精心制作&#xff0c;包括小程序项目&#xff0c;springboot项目&#xff0c;传统ssm项目&#xff0c;前后端分离项目。你可以用来制作自…

TCP/IP模型中网络层和网络接口层的区别 通俗解释

问题 TCP/IP模型中的网络层和网络接口层有什么区别&#xff0c;或者说 ip地址和mac地址有什么区别&#xff0c;通过ip不就能找到要发送的设备了吗 为什么还需要mac地址用简单的语言来解释一下。 TCP/IP模型中的网络层和网络接口层主要的区别在于它们处理的信息和功能不同&…

打字通小游戏制作教程:用HTML5和JavaScript提升打字速度

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

混合测试写一写

题目 服务器IP地址规划&#xff1a;client&#xff1a;12.0.0.12/24&#xff0c;网关服务器&#xff1a;ens36:12.0.0.1/24、ens33&#xff1a;192.168.44.1/24&#xff0c;Web1&#xff1a;192.168.44.30/24&#xff0c;Web2&#xff1a;192.168.44.50/24&#xff0c;Nginx&am…

2.4GHz SOC芯片SI24R03无线网络传感器方案

随着科技的不断进步&#xff0c;智能环境监测已成为现代社会发展的必然趋势。为了满足不同场景下对环境参数的实时监测需求&#xff0c;我们推出了适用于无线网络传感器方案的2.4GHz芯片&#xff0c;旨在为用户打造高效、智能的环境监测体系。 01方案介绍 1、技术原理&am…

2024年最便宜的阿里云服务器购买图文教程,2核2G61元,2核4G99元

2024年&#xff0c;阿里云推出了多款价格非常便宜的云服务器和轻量应用服务器&#xff0c;其中轻量应用服务器2核2G3M带宽50G系统盘只要61元/1年&#xff0c;2核4G4M带宽60G系统盘只要165元/1年。云服务器2核2G3M带宽40G系统盘只要99元/1年&#xff0c;2核4G5M带宽80G系统盘只要…

VS Code搭建windows+远程Linux上Docker的开发环境

在本地windows桌面系统远程Linux上Docker搭建开发环境主要步骤如下&#xff1a; 一、安装vs code和插件 在windows系统上安装vs code&#xff0c;并安装好remote-ssh、dev-container插件&#xff0c;也可以直接安装Remote Development&#xff0c;他会默认把vs code远程的几种…

【计算机视觉】图像处理算法(形态学滤波篇)

来源&#xff1a;《OpenCV3编程入门》&#xff0c;怀念毛星云大佬&#x1f56f;️ 说明&#xff1a;本系列重点关注各种图像处理算法的原理、作用和对比 形态学滤波(1 ):腐蚀与膨胀 形态学槪述 数学形态学的概念&#xff1a; 数学形态学(Mathematical morphology)是立在格论…

通过案例学习提高沟通绩效的方法

在工作过程中&#xff0c;是否经常听到员工抱怨费力不讨好&#xff0c;而上级总是对员工工作不满意&#xff0c;认为员工理解力太差、工作不认真&#xff0c;员工很冤枉&#xff0c;上级很恼火&#xff0c;总之是双方谁也不认为谁错。面对这样的问题&#xff0c;我们该如何解决…