当前位置: 首页 > article >正文

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 -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.kler.cn/a/471055.html

相关文章:

  • STM32-笔记34-4G遥控灯
  • Jmeter进阶篇(31)解决java.net.BindException: Address already in use: connect报错
  • Lianwei 安全周报|2024.1.7
  • Linux性能优化-系列文章-汇总
  • 实习总结(项目篇)
  • reactor的Hooks.enableAutomaticContextPropagation();不生效解决方案
  • ubuntu开机启动服务
  • INT305 Machine Learning
  • Docker Compose 启动 Harbor 并指定网络
  • Power BI如何连接Azure Databricks数据源?
  • 什么是Lua协同程序?和线程有什么区别?
  • vue.js sync修饰符
  • STM32拓展 低功耗案例1:睡眠模式 (hal)
  • 【学习笔记】数据结构(十)
  • NLP三大特征抽取器(CNN/RNN/TF)
  • 【Uniapp-Vue3】navigator路由与页面跳转
  • Elasticsearch与数据库数据一致性:最佳实践与解决方案
  • 基于大数据爬虫+Python+数据可视化大屏的慧游数据爬虫与推荐分析系统(源码+论文+PPT+部署文档教程等)
  • Linux 安装 meilisearch
  • NUTTX移植到STM32
  • c#使用SevenZipSharp实现压缩文件和目录
  • Appium(一)--- 环境搭建
  • 【简博士统计学习方法】1. 统计学习的定义与分类
  • Functions
  • CANN 学习——基于香橙派 KunpengPro(1)
  • 03-其他