Win11+WLS Ubuntu 鸿蒙开发环境搭建(一)
参考文章
Windows11安装linux子系统
WSL子系统迁移、备份与导入全攻略
如何扩展 WSL 2 虚拟硬盘的大小
Win10安装的WSL子系统占用磁盘空间过大如何释放
《Ubuntu — 调整文件系统大小命令resize2fs》
penHarmony南向开发笔记(一)开发环境搭建
一,windows11-wsl安装ubuntu子系统
1,任务栏右键->任务管理器->性能,查看电脑是否开启虚拟化(默认是开启的)
2,搜索“启用或关闭Windows功能”,启用“Hyper-V”、“Windows虚拟机监控程序平台”、“适用于Linux的Windows子系统”、“虚拟机平台”
完成后重启电脑
3,启用Hyper-V:管理员打开powershell,输入命令:
bcdedit /set hypervisorlaunchtype auto
4,设置WSL2,打开powershell,输入命令:
wsl --set-default-version 2
然后直接点击更新软件地址https://link.zhihu.com/?target=https%3A//wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
5,安装ubuntu,在Microsoft Store搜索Ubuntu,选择“Ubuntu20.04.6”
6,启动Ubuntu,进入powershell 输入命令;或者启动菜单点击新安装的应用ubuntu2004.exe 或者 Ubuntu-20.04,然后按提示设定 用户名和密码,关闭ubuntu终端,然后在powershell 输入命令:
wsl --shutdown
查看子系统状态
wsl --list --verbose
确保已经是stop,如果报错,应该是linux 没有更新原因,请先更新
7,将WSL转移到非C盘,备份Ubuntu,到指定盘F
wsl --export Ubuntu-20.04 F:\Ubuntu\ubuntu.bak
8,注销C盘的WSL
wsl --unregister Ubuntu-20.04
9,把WSL子系统导入备份并安装到F盘
wsl --import Ubuntu-20.04 F:\Ubuntu\ F:\Ubuntu\ubuntu.bak --version 2
导入完成后,可以在PowerShell中运行命令wsl -l -v,此时可以看到已经安装的子系统包。
10,设置默认用户和启动WSL
如果导入成功后默认以root用户启动,需要调整为以普通用户启动。运行命令下面命令关闭子系统
wsl --shutdown
然后在终端中运行下面命令,其中#aping为原用户名
ubuntu2004 config --default-user aping
再次启动Ubuntu 20.04,可以发现子系统默认用户已成为原先的用户名。
二,扩容子系统硬盘
在扩容之前, 先看下当前磁盘空间情况,sdb的256G空间需要扩容到600G,请注意,扩容不能超过实际物理空间,否则会导致后面再ubuntu系统执行resize2fs指令失败。
aping@HUAWEI-G540:~$ df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb 263174212 1391608 248344448 1% /
none 12242360 4 12242356 1% /mnt/wsl
tools 249724924 96871848 152853076 39% /init
none 12240276 0 12240276 0% /dev
none 12242360 0 12242360 0% /run
none 12242360 0 12242360 0% /run/lock
none 12242360 0 12242360 0% /run/shm
none 12242360 0 12242360 0% /run/user
tmpfs 12242360 0 12242360 0% /sys/fs/cgroup
drivers 249724924 96871848 152853076 39% /usr/lib/wsl/drivers
lib 249724924 96871848 152853076 39% /usr/lib/wsl/lib
drvfs 249724924 96871848 152853076 39% /mnt/c
drvfs 734003196 431056 733572140 1% /mnt/d
drvfs 1000189948 135488 1000054460 1% /mnt/e
drvfs 1000190972 2805024 997385948 1% /mnt/f
aping@HUAWEI-G540:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 256G 0 disk
sdb 8:16 0 256G 0 disk /
参考官方如何扩展 WSL 2 虚拟硬盘的大小文章提供方法
wsl.exe --shutdown #命令终止所有 WSL 实例
diskpart #使用管理员权限打开 Windows 命令提示符,然后通过输入以下命令打开 diskpart 命令解释器
Select vdisk file="<pathToVHD>" #填入ext4.vhdx 绝对路径
detail vdisk # 显示与此虚拟磁盘关联的详细信息,包括 虚拟大小,表示当前分配的 VHD 最大大小
expand vdisk maximum=<sizeInMegaBytes> #扩容,大小转换,GB 转换为 M,新值大于上步查询大小值
exit #退出wsl.exe -l -v #确保它在 WSL 2 中运行。可以使用命令确认这一点
1,终止所有WSL实例
PS C:\Users\HUAWEI> wsl -l --all
适用于 Linux 的 Windows 子系统分发版:
Ubuntu-20.04 (默认)
PS C:\Users\HUAWEI> wsl --shutdown
PS C:\Users\HUAWEI> wsl -l -vNAME STATE VERSION
* Ubuntu-20.04 Stopped 2
PS C:\Users\HUAWEI>
2,使用管理员权限打开 Windows 命令终端,然后输入以下命令来打开 diskpart 命令解释器,操作过程如下:
PS C:\Users\HUAWEI> diskpart Microsoft DiskPart 版本 10.0.22621.1Copyright (C) Microsoft Corporation.
在计算机上: LAPTOP-NXXXXXDISKPART> Select vdisk file="F:\Ubuntu\ext4.vhdx"DiskPart 已成功选择虚拟磁盘文件。DISKPART> detail vdisk设备类型 ID: 0 (未知)
供应商 ID: {00000000-0000-0000-0000-000000000000} (未知)
状态: 已添加
虚拟大小: 256 GB
物理大小: 1372 MB
文件名: F:\Ubuntu\ext4.vhdx
为子级: 否
父文件名:
找不到关联的磁盘号。DISKPART> expand vdisk maximum=614400100 百分比已完成DiskPart 已成功扩展虚拟磁盘文件。DISKPART> exit退出 DiskPart...
PS C:\Users\HUAWEI>
PS C:\Users\HUAWEI>
3,打开Ubuntu子系统,用lsblk指令查看下磁盘扩容情况
aping@HUAWEI-G540:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 256G 0 disk
sdb 8:16 0 600G 0 disk /
aping@HUAWEI-G540:~$
可以看出,空间已经有了,下步需要让WSL
知道它可以通过从WSL
分发命令行运行这些命令来扩展此分发的文件系统大小
aping@HUAWEI-G540:~$ sudo mount -t devtmpfs none /dev
[sudo] password for aping:
mount: /dev: none already mounted on /mnt/wsl.
aping@HUAWEI-G540:~$ mount | grep ext4
/dev/sdb on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
aping@HUAWEI-G540:~$
注意上面输出信息“/dev/sdb”,该名称类似于:/dev/sdX
(X 表示任何其他字符)。 在下面的示例中,这里X
的值是 b:
sudo resize2fs /dev/sdb <sizeInMegabytes>M
使用上面的示例,我们将vhd
大小更改为600G=614400M
,因此命令为:sudo resize2fs /dev/sdb 614400M
。
aping@HUAWEI-G540:~$ sudo resize2fs /dev/sdb 614400M
resize2fs 1.45.5 (07-Jan-2020)
open: No such file or directory while opening /dev/sdb 614400M
显然,执行 resize2fs指令失败了,可能是权限问题,需要root权限
aping@HUAWEI-G540:~$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
aping@HUAWEI-G540:~$
4,跟上面错误提示,参考《Ubuntu — 调整文件系统大小命令resize2fs》可知,resize2fs支持在线分区,按照其操作方法,执行过程如下:
aping@HUAWEI-G540:~$ su
Password:
root@HUAWEI-G540:/home/aping# resize2fs /dev/sdb
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/sdb is mounted on /; on-line resizing required
old_desc_blocks = 32, new_desc_blocks = 75
The filesystem on /dev/sdb is now 157286400 (4k) blocks long.root@HUAWEI-G540:/home/aping# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 590G 1.6G 562G 1% /
none 12G 4.0K 12G 1% /mnt/wsl
tools 239G 93G 146G 39% /init
none 12G 0 12G 0% /dev
none 12G 16K 12G 1% /run
none 12G 0 12G 0% /run/lock
none 12G 0 12G 0% /run/shm
none 12G 0 12G 0% /run/user
tmpfs 12G 0 12G 0% /sys/fs/cgroup
drivers 239G 93G 146G 39% /usr/lib/wsl/drivers
lib 239G 93G 146G 39% /usr/lib/wsl/lib
drvfs 239G 93G 146G 39% /mnt/c
drvfs 700G 421M 700G 1% /mnt/d
drvfs 954G 133M 954G 1% /mnt/e
drvfs 954G 3.9G 950G 1% /mnt/f
可以看到,sdb的分区夸大到600G了
相关文章:

Win11+WLS Ubuntu 鸿蒙开发环境搭建(一)
参考文章 Windows11安装linux子系统 WSL子系统迁移、备份与导入全攻略 如何扩展 WSL 2 虚拟硬盘的大小 Win10安装的WSL子系统占用磁盘空间过大如何释放 《Ubuntu — 调整文件系统大小命令resize2fs》 penHarmony南向开发笔记(一)开发环境搭建 一&a…...

[CSAW/网络安全] Git泄露+命令执行 攻防世界 mfw 解题详析
Home界面: Home界面翻译如下: 欢迎访问我的网站! 我自己从头开始写的! 您可以使用上面的链接浏览页面! About界面: 观察到Git,联想Git泄露 Git泄露 Git是一个非常流行的开源分布式版本控制系…...
MySQL 锁那些事
Q1 : MySQL有哪些锁,功能是什么,如何项目中使用?Q2 : 行锁是如何实现的?什么情况下会使用行锁?Q3 : 四种事务隔离形式的行锁有什么不一样?读未提交读提交可重复读串行 Q4 : MySQL 的读写都是怎样加锁的?Q5 : 需要注意什么? Q1 : MySQL有哪些锁,功能是什么,如何项目中使用…...
Linux中常用的基本指令和一些配套的周边知识详解
目录 一些基本指令 一些常用指令 注:配套的周边知识是直接跟在指令的讲解后面的。 补充:(重要) 如何看待这么多指令???记不住怎么办??? 首先,指令不用刻意去记…...

深入理解Java中的Set集合:特性、用法与常见操作指南
一、HashSet集合 1.HashSet集合的特点 2.HashSet常用方法 ①:add(Object o):向Set集合中添加元素,不允许添加重复数据。 ②:size():返回Set集合中的元素个数 ③.remove(Object o): 删除Set集合中的obj对…...
Oracle 使用 sql profile 固定执行计划
测试使用 sql profile 固定执行计划: Oracle 10g之前有outlines,10g之后 sql profile 。如果针对非绑定变量的sql,outlines则效果不佳,不建议使用 。 1、准备测试用表 SQL> create table zzh_ob as select * from dba_objects; SQL> create inde…...

数字电路期末复习
*前言:*写的东西不太全面,更多的是一个复习大纲,让你发现自己有哪些不懂的问题(不懂的地方就去翻书或者问AI),如果能够解决提出的所有问题,那么过期末考一定不是问题。 这里写目录标题 数制和码…...
正则表达式 - 使用总结
正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…...

通过Xshell远程连接wsl2
目录 一、WSL网络原理 二、 下载XShell 三、Ubuntu里配置ssh 1.查看是否已经安装SSH 2.安装SSH 3.修改SSH配置 4.重启ssh 5.查看ip 四、在Xshell中链接电脑 五、设置端口转发 1.设置主机端口映射到wsl2的端口 六、防火墙设置开放8989端口 方式一(推荐): 方式二:…...
【ubuntu】安装OpenSSH服务器
参考:https://blog.csdn.net/fanjufei123456/article/details/139264814 要在Ubuntu上使用SSH连接,需要确保系统上安装并运行了SSH服务器。SSH服务器负责接受来自其他计算机的SSH连接请求,并提供对目标系统的访问权限。 在Ubuntu上,默认情况…...

CESS 的 2024:赋能 AI,塑造去中心化数据基础
2024 年是加密与区块链行业的重要转折之年,行业在技术创新、监管明确和实际应用上取得了显著进展。全球范围内,多个国家相继推出加密货币和区块链技术的监管框架,美国的区块链政策峰会推动了关键议题的讨论,欧洲完成了 MiCA 监管的…...
Redission红锁
目录 一、什么是红锁 二、Redission红锁的使用 一、什么是红锁 Redis 的作者 Salvatore Sanfilippo(又名 antirez)提出的一种基于多个 Redis 实例实现分布式锁的算法。红锁(Redlock)旨在解决单点故障问题,即当使用单…...

使用 CSS 的 `::selection` 伪元素来改变 HTML 文本选中时的背景颜色
定义 ::selection 伪元素: 在你的 CSS 文件中,添加 ::selection 伪元素,并设置 background-color 属性来改变选中文本的背景颜色。 示例代码: ::selection {background-color: yellow; /* 你可以根据需要更改颜色 */color: black…...
Spring Boot AOP日志打印实现
在 Spring Boot 3.1.12 中使用 AOP 实现日志打印,记录前端传入的参数和后端返回的数据,可以按照以下步骤进行: 添加依赖 首先,确保你的 pom.xml 文件中包含了 Spring AOP 的依赖: <dependency><groupId>…...

Windows远程--如何使用IP访问服务器
1.第一步:在本地按下winR打开运行窗口,输入mstsc 打开window自带的远程桌面组件,在打开的窗口内输入公网ip。 2.第二步:输入远程电脑的登录用户名和密码,即可成功建立连接。...
vscode中设置默认格式化工具pretter
1. 安装 Prettier 插件 打开 VSCode 的扩展市场(快捷键 CtrlShiftX 或点击左侧的扩展图标)。 搜索并安装 Prettier - Code formatter 插件。 2. 设置 VSCode 使用 Prettier 格式化代码 打开 VSCode 的设置(快捷键 Ctrl, 或点击右下角齿轮图标…...
Hadoop、Flink、Spark和Kafka
Hadoop、Flink、Spark和Kafka是大数据处理领域中的四个重要工具,它们在架构、数据处理方式以及性能等方面都存在区别。以下是具体分析: 架构 Hadoop:Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce编…...
APP自动化测试元素定位及隐式等待
元素定位是UI自动化测试中最关键的一步,假如在自动化测试中没有定位到页面中素,也就无法完成对页面的测试操作。那么,我们在自动化测试中如何定位到是要部面元素呢? 下面聊一聊用 Appium 定位元素的方式。 定位页面元素有很多种…...
Element plus 的 upload 组件实现自定义上传
Element Plus 是一个基于 Vue 3 的 UI 组件库,提供了许多常用的 UI 组件。其中,Upload 组件用于文件上传功能。如果你想实现自定义上传逻辑,可以通过 before-upload 和 http-request 属性来实现。 以下是一个简单的示例,展示如何…...

力扣-数据结构-10【算法学习day.81】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...