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了

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

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

相关文章

微信小程序提示 miniprogram-recycle-view 引入失败

npm i --save miniprogram-recycle-view 安装需要使用的页面的json文件中配置 {"usingComponents": {"recycle-view": "miniprogram-recycle-view/recycle-view","recycle-item": "miniprogram-recycle-view/recycle-item"…

基于深度学习算法的AI图像视觉检测

基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今&#xff0c;它被广泛用于图像分类、人脸识别、图像中物体的识别等。那么什么是深度学习&#xff1f;深度学习是如何应用在视觉检测上的呢&#xff1f; 什么是深度学习&#xff1f; 深度学习是…

Go语言的 的基本数据类型(Primitive Data Types)核心知识

Go语言的基本数据类型&#xff08;Primitive Data Types&#xff09;核心知识 Go语言&#xff08;又称Golang&#xff09;是一种开源编程语言&#xff0c;由Google设计并开发。它以高效、简洁和强大的并发支持著称。Go语言支持多种数据类型&#xff0c;其中基本数据类型是构建…

ElasticSearch基础-文章目录

ElasticSearch学习总结1&#xff08;环境安装&#xff09; ElasticSearch学习总结2&#xff08;基础查询&#xff09; ElasticSearch学习总结3&#xff08;.NetCore操作ES&#xff09; ElasticSearch学习总结4&#xff08;sql操作ES&#xff09; ElasticSearch学习总结5&am…

使用 Docker 查看 Elasticsearch 错误日志

在使用 Elasticsearch&#xff08;简称 ES&#xff09;的过程中&#xff0c;我们可能会遇到各种问题。为了快速定位和解决这些问题&#xff0c;查看错误日志是关键。本文将介绍如何使用 Docker 查看 Elasticsearch 的错误日志&#xff0c;并提供一些实用技巧。 1. 安装 Docker…

HuatuoGPT-o1:基于40K可验证医学问题的两阶段复杂推理增强框架,通过验证器引导和强化学习提升医学模型的推理能力

HuatuoGPT-o1&#xff1a;基于40K可验证医学问题的两阶段复杂推理增强框架&#xff0c;通过验证器引导和强化学习提升医学模型的推理能力 论文大纲理解1. 确认目标2. 分析过程3. 实现步骤4. 效果展示 解法拆解全流程提问俩阶段详细分析 论文&#xff1a;HuatuoGPT-o1, Towards …

量子机器学习:当量子计算遇上人工智能,颠覆即将来临?

在当今科技飞速发展的时代&#xff0c;量子计算与人工智能宛如两颗璀璨的星辰&#xff0c;各自在不同的苍穹闪耀&#xff0c;正以前所未有的速度重塑着世界的面貌。当这两大前沿领域相互碰撞、深度融合&#xff0c;量子机器学习应运而生&#xff0c;犹如一场科技风暴在学界与产…

硬件基础知识笔记(2)——二级管、三极管、MOS管

Part 2 二级管、三极管、MOS管 1、二级管1.1肖特基二极管和硅二极管选型比较1.2到底是什么决定了二极管的最高工作频率&#xff1f;1.3二极管结电容和反向恢复时间都是怎么来的1.4肖特基二极管的工作原理1.5为什么要用肖特基二极管续流&#xff1f; 2、三极管2.1三极管工作原理…

vue3-dom-diff算法

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

Dell服务器升级ubuntu 22.04失败解决

ubuntu系统原版本20.04&#xff0c;服务器dell T40. 执行apt update后&#xff0c;再执行apt upgrade。 apt update执行成功&#xff0c;但apt upgrade执行中断&#xff0c;提示如下&#xff1a; Checking package manager Reading package lists... Done Building dependen…

【C++】B2093 查找特定的值

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述输入格式输出格式输入输出示例 &#x1f4af;题目分析与解题思路&#x1f4af;代码实现与对比分析我的实现代码老师的实现代码详细对比与分析1. 数组的定义方式2. …

计算机网络:网络层知识点及习题(一)

网课资源&#xff1a; 湖科大教书匠 1、概述 网络层实现主机到主机的传输&#xff0c;主要有分组转发和路由选择两大功能 路由选择处理机得出路由表&#xff0c;路由表再生成转发表&#xff0c;从而实现分组从不同的端口转发 网络层向上层提供的两种服务&#xff1a;面向连接…

CDP集群安全指南-动态数据加密

[〇]关于本文 集群的动态数据加密主要指的是加密通过网络协议传输的数据&#xff0c;防止数据在传输的过程中被窃取。由于大数据涉及的主机及服务众多。你需要更具集群的实际环境来评估需要为哪些环节实施动态加密。 这里介绍一种通过Cloudera Manager 的Auto-TLS功能来为整个…

Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)

最近在学习 Swift&#xff0c;总结相关知识 1. Protocols&#xff08;协议&#xff09; 1.1 协议的定义和实现 协议&#xff08;protocol&#xff09; 是一种定义方法和属性的蓝图&#xff0c;任何类、结构体或枚举都可以遵循协议。遵循协议后&#xff0c;需要实现协议中定义…

uni-app开发-习惯养成小程序/app介绍

目录 一:功能概述 二:功能部分代码和截图 一:功能概述 1 习惯目标生成 创建习惯:用户可以添加新的习惯目标,每个习惯可以包含名称、描述、图标、目标天数。 关联习惯完成:用户通过设定达成目标以后,生成习惯养成记录。 2 习惯打卡 简单快捷的打卡:提供一个直观的界面…

【HTML】Day02

【HTML】Day02 1. 列表标签1.1 无序列表1.2 有序列表1.3 定义列表 2. 表格标签2.1 合并单元格 3. 表单标签3.1 input标签基本使用3.2 上传多个文件 4. 下拉菜单、文本域5. label标签6. 按钮button7. div与span、字符实体字符实体 1. 列表标签 作用&#xff1a;布局内容排列整齐…

基于Spring Boot的车辆违章信息管理系统(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Git - 记录一次由于少输入了一个命令导致的更改丢失

Git - 记录一次由于少输入了一个参数导致的更改丢失 前言 某晚我激情开发了几个小时&#xff0c;中途没有进行commit存档。准备睡觉时&#xff0c;我想创建一个新的分支并将今晚所有更改提交到新分支上&#xff08;似乎应该开发时候就创建&#xff1f;&#xff09;。 然后因…

探索Rust在Web开发中的实际应用

近年来&#xff0c;Rust语言因其高性能、内存安全性和强大的工具链支持而迅速崛起。在Web开发领域&#xff0c;Rust提供了一套高效、现代化的框架和工具&#xff0c;使得开发者能够构建快速、安全的Web应用程序。在本文中&#xff0c;我们将深入探讨如何使用Rust进行Web开发&am…

Apache Celeborn 在B站的生产实践

背景介绍 Shuffle 演进 随着B站业务的飞速发展,数据规模呈指数级增长,计算集群也逐步从单机房扩展到多机房部署模式。多个业务线依托大数据平台驱动核心业务,大数据系统的高效性与稳定性成为公司业务发展的重要基石。如图1,目前在大数据基础架构下,我们主要采用 Spark、Fl…