在 Win11安装 Ubuntu20.04子系统 WSL2 到其他盘(此处为D盘,因为C盘空间实在不能放应用)

2023-11-18

该篇文章记录了在 win11 中安装 Ubuntu20.04 子系统。
先安装到 C盘 ,再通过打包的方式 安装到 D盘 上。
因为是安装后写的文章,可能会有所疏漏,所以有任何问题可以在评论区留言

0. 设置 windows 功能

打开这三个:
在这里插入图片描述
配置功能后记得重启。

之后还可能要安装一个软件(下载速度有些慢):

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
在这里插入图片描述

在这里插入图片描述

接下来的全过程只有设置用户名和密码的时候以及设置 su 的密码时候在 Ubuntu 上操作,其余都是在 Windows PowerShell 上操作的

首先,用管理员权限打开 Windows PowerShell

在 Windows PowerShells 操作的时候:
记住:一定要在Ubuntu 关闭的时候操作
记住:一定要在Ubuntu 关闭的时候操作
记住:一定要在Ubuntu 关闭的时候操作

用管理员权限打开 Windows PowerShell

1. 先将其变为 wsl1

执行:

wsl --set-default-version 1

2. 从应用商店直接安装到 C盘 中

在这里插入图片描述

在这里插入图片描述

3. 打开 Ubuntu 并设置用户名和密码:

这个时候如果用 su,输入密码时会显示错误。所以我们要设置su的密码。

$ sudo passwd

在这里插入图片描述
这样就能使用 su了。

此时运行

wsl -l -v 

就能看到安装的子系统了。

4. 接下来开始打包搬迁到 D盘下

首先,用管理员权限打开 Windows PowerShell
并运行指令:
因为我这里 wsl -l -v 显示安装的是Ubuntu 20.04,所以这里指明的是 Ubuntu20.04。将其打包放在D:/export.tar ,这里的目录可以自定义。

wsl --export Ubuntu20.04 D:/export.tar

4. 已经打包一份到D盘中,所以将C盘下的注销掉。

注销指令

wsl --unregister Ubuntu-20.04

现在再运行 wsl -l -v 就能看到原先的那个子系统已经没有了。

5. 我们现在将打包好的安装到指定目录上

先将 wsl 提升到 wsl2

wsl --set-default-version 2

然后安装打包后的 Ubuntu20.04 :
这里的D:、Ubuntu_20_04 就是我设置的安装目录。
D:\export.tar 就是之前的打包的位置。
–version 2 代表这个子系统以 wsl2 的形式安装。

wsl --import Ubuntu-20.04 D:\Ubuntu_20_04\ D:\export.tar --version 2

此时如果出现了错误:在这里插入图片描述
运行:

bcdedit /set hypervisorlaunchtype off

或是

bcdedit /set hypervisorlaunchtype auto

解决后:
设置为默认的子系统

wsl --setdefault Ubuntu-20.04 

6. 打开Ubuntu 后发现此时默认的是 root 用户。

我们要恢复默认普通的用户,我们原先的用户名为 orange. 安装的是Ubuntu-20.04 所以:

Ubuntu2004 config --default-user orange

再打开就恢复默认普通用户了。

此时 wsl -l -v 查看:
version 2 就是 wsl2 的意思。此时就已经搬家成功了。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Win11安装 Ubuntu20.04子系统 WSL2 到其他盘(此处为D盘,因为C盘空间实在不能放应用) 的相关文章

  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v

随机推荐