Win11+WLS Ubuntu 鸿蒙开发环境搭建(一)

news2025/3/10 10:46:02

参考文章

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 -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2
PS C:\Users\HUAWEI>

2,使用管理员权限打开 Windows 命令终端,然后输入以下命令来打开 diskpart 命令解释器,操作过程如下:

PS C:\Users\HUAWEI>  diskpart 

Microsoft DiskPart 版本 10.0.22621.1

Copyright (C) Microsoft Corporation.
在计算机上: LAPTOP-NXXXXX

DISKPART> 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=614400

  100 百分比已完成

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了

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

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

相关文章

flink cdc oceanbase(binlog模式)

接上文&#xff1a;一文说清flink从编码到部署上线 环境&#xff1a;①操作系统&#xff1a;阿里龙蜥 7.9&#xff08;平替CentOS7.9&#xff09;&#xff1b;②CPU&#xff1a;x86&#xff1b;③用户&#xff1a;root。 预研初衷&#xff1a;现在很多项目有国产化的要求&#…

和为0的四元组-蛮力枚举(C语言实现)

目录 一、问题描述 二、蛮力枚举思路 1.初始化&#xff1a; 2.遍历所有可能的四元组&#xff1a; 3.检查和&#xff1a; 4.避免重复&#xff1a; 5.更新计数器&#xff1a; 三、代码实现 四、运行结果 五、 算法复杂度分析 一、问题描述 给定一个整数数组 nums&…

某xx到家app逆向

去官网下载app即可 https://www.dongjiaotn.com/#/home查壳 360的壳子 直接脱壳即可 抓包 请求地址 https://api.gateway.znjztfn.cn/server/user/index 请求参数 {"lng": "xxxx","lat": "xxxx","city_id": "1376&…

docker搭建gitlab和jenkins

搭建gitlab 搭建gitlab首先需要一个gitlab的镜像 其次最好为他设置一个单独的目录 然后编写一个docker-compose文件 version: 3.1 services:gitlab:image: gitlab_zh:latest //此处为你的镜像名称container_name: gitlab //容器名称restart: always …

嵌入式linux中socket控制与实现

一、概述 1、首先网络,一看到这个词,我们就会想到IP地址和端口号,那IP地址和端口各有什么作用呢? (1)IP地址如身份证一样,是标识的电脑的,一台电脑只有一个IP地址。 (2)端口提供了一种访问通道,服务器一般都是通过知名端口号来识别某个服务。例如,对于每个TCP/IP实…

推荐系统重排:MMR 多样性算法

和谐共存&#xff1a;相关性与多样性在MMR中共舞 推荐系统【多样性算法】系列文章&#xff08;置顶&#xff09; 1.推荐系统重排&#xff1a;MMR 多样性算法 2.推荐系统重排&#xff1a;DPP 多样性算法 引言 在信息检索和推荐系统中&#xff0c;提供既与用户查询高度相关的文…

概述(讲讲python基本语法和第三方库)

我是北子&#xff0c;这是我自己写的python教程&#xff0c;主要是记录自己的学习成果方便自己日后复习&#xff0c; 我先学了C/C&#xff0c;所以这套教程中可能会将很多概念和C/C去对比&#xff0c;所以该教程大概不适合零基础的人。 it seems that python nowadays 只在人工…

【python因果库实战16】双重稳健模型1

这里写目录标题 双重稳健模型数据简单双重稳健模型双重稳健 IP 特征模型 双重稳健模型 基本上&#xff0c;这些是利用加权模型增强结果模型的不同集合模型。 本笔记展示了不同的结果模型和倾向性模型组合方式&#xff0c; 但由于可能的组合非常多&#xff0c;本笔记并不打算展…

如何恢复已删除的 Telegram 消息 [iOSamp;Android]

Telegram 是一款功能强大的消息应用程序&#xff0c;因其易用性、隐私保护和众多炫酷功能而深受用户喜爱。然而&#xff0c;有时我们会不小心删除重要的消息。在这种情况下你应该做什么&#xff1f; 本文将为您提供简单有效的解决方案来恢复 Telegram 上已删除的消息&#xff…

第431场周赛:最长乘积等价子数组、计算字符串的镜像分数、收集连续 K 个袋子可以获得的最多硬币数量、不重叠区间的最大得分

Q1、最长乘积等价子数组 1、题目描述 给你一个由 正整数 组成的数组 nums。 如果一个数组 arr 满足 prod(arr) lcm(arr) * gcd(arr)&#xff0c;则称其为 乘积等价数组 &#xff0c;其中&#xff1a; prod(arr) 表示 arr 中所有元素的乘积。gcd(arr) 表示 arr 中所有元素的…

【微服务】2、网关

Spring Cloud微服务网关技术介绍 单体项目拆分微服务后的问题 服务地址问题&#xff1a;单体项目端口固定&#xff08;如黑马商城为8080&#xff09;&#xff0c;拆分微服务后端口各异&#xff08;如购物车808、商品8081、支付8086等&#xff09;且可能变化&#xff0c;前端难…

使用JMeter玩转tidb压测

作者&#xff1a; du拉松 原文来源&#xff1a; https://tidb.net/blog/3f1ada39 一、前言 tidb是mysql协议的&#xff0c;所以在使用过程中使用tidb的相关工具连接即可。因为jmeter是java开发的相关工具&#xff0c;直接使用mysql的jdbc驱动包即可。 二、linux下安装jmet…

2024网络安全运营方案概述(附实践资料合集)

以下是网络安全运营方案的详细内容&#xff1a; 一、目标与原则 目标&#xff1a;建立一套安全高效、灵活性强的网络安全运营体系&#xff0c;实现对网络安全的全面监控、防护和应急响应。原则&#xff1a; 全员参与&#xff1a;网络安全是全员共同的责任&#xff0c;所有员工…

使用Python进行图像裁剪和直方图分析

一、简介 在数字图像处理领域&#xff0c;裁剪和分析图像的直方图是两个非常基本且重要的操作。本文将通过一个简单的Python项目&#xff0c;展示如何使用skimage和matplotlib库来裁剪图像并分析其RGB通道的直方图。 二、环境准备 在开始之前&#xff0c;请确保你已经安装了以…

vue3-dom-diff算法

vue3diff算法 什么是vue3diff算法 Vue3中的diff算法是一种用于比较虚拟DOM树之间差异的算法&#xff0c;其目的是为了高效地更新真实DOM&#xff0c;减少不必要的重渲染 主要过程 整个过程主要分为以下五步 前置预处理后置预处理仅处理新增仅处理后置处理包含新增、卸载、…

【U8+】用友U8软件中,出入库流水输出excel的时候提示报表输出引擎错误。

【问题现象】 通过天联高级版客户端登录拥有U8后&#xff0c; 将出入库流水输出excel的时候&#xff0c;提示报表输出引擎错误。 进行报表输出时出现错误&#xff0c;错误信息&#xff1a;找不到“fd6eea8b-fb40-4ce4-8ab4-cddbd9462981.htm”。 如果您正试图从最近使用的文件列…

[SMARTFORMS] 创建样式模板

通过事务码SMARTFORMS创建样式模板 选择样式&#xff0c;自定义样式模板名称ZST_DEMO_2025 点击"创建"按钮&#xff0c;跳转至样式模板详情页面&#xff0c;我们可以在该页面上设置SMARTFORMS表单相关的样式 在段落样式处&#xff0c;右键选择创建节点&#xff0c;输…

基于51单片机和DS3231时钟模块、LCD1602(I2C通信)模块的可调时钟+温度测量+计时+闹钟

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、延时函数2、定时器03、定时器14、独立按键5、DS3231时钟模块6、LCD1602模块&#xff08;PCF8574T驱动&#xff09; 四、主函数总结 系列文章目录 前言 之前做过一个类似的&#xff0c;用到了很多外设&#xff…

通义视觉推理大模型QVQ-72B-preview重磅上线

Qwen团队推出了新成员QVQ-72B-preview&#xff0c;这是一个专注于提升视觉推理能力的实验性研究模型。提升了视觉表示的效率和准确性。它在多模态评测集如MMMU、MathVista和MathVision上表现出色&#xff0c;尤其在数学推理任务中取得了显著进步。尽管如此&#xff0c;该模型仍…

企业级Nosql数据库和Redis集群

一、关系数据库和Nosql数据库 关系数据库 定义&#xff1a;关系数据库是建立在关系模型基础上的数据库。它使用表格&#xff08;关系&#xff09;来存储数据&#xff0c;通过行和列的形式组织信息。例如&#xff0c;一个简单的学生信息表可能有 “学号”“姓名”“年龄”“班级…