在 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盘空间实在不能放应用) 的相关文章

  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp

随机推荐