1.请确认windows的c盘空间充足, 建议c盘至少具有50G以上的空余空间
2.必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。
因最新的rk3568的编译必须基于wsl2才可以,wsl编译会阻塞直接不编译,所以如果电脑的版本是wsl的必须升级到wsl2,如果系统是win11则直接是wsl2。注意这里的wsl或者wsl2指的是在wsl中安装的Ubuntu所对应的版本,可通过以下命令查看:
命令wsl -l -v 是命令的缩写,后面VERSION即是所对应的版本,如果对应的版本是1则需要升级,如果是2则不需要升级。
C:\Users\wen_fei>wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Running 1
C:\Users\wen_fei>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 1
以管理员身份打开 PowerShell或者cmd窗口,然后输入以下命令并重启计算机:
(“开始”菜单 >“PowerShell”> 单击右键 >“以管理员身份运行”)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
其中,第一行代码为启用“适用于 Linux 的 Windows 子系统”可选功能,第二行代码为启用“虚拟机平台”可选功能,该步骤为安装wsl2必须,若不希望安装wsl2则不用输入第二行代码
链接:适用于x64计算机的WSL2 Linux内核更新包
打开 PowerShell或者cmd窗口,输入以下命令,将 WSL 2 设置为默认版本:
这里的设置表示后面基于wsl安装的系统(一般指Linux系统)都是wsl2
Note:本项设置只能使安装新的 Linux 发行版时将默认版本设置为WSL2,而不能更改已经安装的Linux分支
wsl --set-default-version 2
若希望将WSL1设置为默认版本则输入命令wsl --set-version
。
安装Linux分支
打开 Microsoft Store搜索Linux并选择需要的分支,此处建议选择Ubuntu 20.04 LTS,并点击获取
安装完成
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒
然后,需要为新的 Linux 分发版创建用户帐户和密码
修改已经安装的基于wsl的Linux发行版为wsl2
使用命令:wsl --set-version Ubuntu-20.04 2,这个过程会根据你该系统当前使用情况,越大时间越长,可能会持续几个小时,最好晚上操作。
操作之前需要使用命令:wsl -t Ubuntu-20.04先关闭Linux发行版
C:\Users\wen_fei>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 1
C:\Users\wen_fei>wsl -t Ubuntu-20.04
C:\Users\wen_fei>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 1
C:\Users\wen_fei>wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
C:\Users\wen_fei>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
控制面板--->程序和功能--->启用或关闭Windows功能
将Hyper-V全部勾选上
将适用于Linux的Windows子系统勾选上
下载Ubuntu20.04
打开Microsoft Store,输入Ubuntu,找到Ubuntu 20.04.4 LTS,点击获取安装即可
如果C盘空间足够大(1T及以上)可以不用考虑该步骤
关闭所有的Linux发行版本
wsl --shutdown
wsl查看已安装的linux发行版本
C:\Users\wen_fei> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
导出已安装的发行版本
C:\Users\wen_fei> wsl --export Ubuntu-20.04 D:\wsl\Ubuntu20.04.tar
将已经安装的Ubuntu-20.04打包成Ubuntu20.04.tar,注意磁盘分区空间应充足
注销已导出的发行版本
C:\Users\wen_fei> wsl --unregister Ubuntu-20.04
重新安装已导出的发行版本
C:\Users\wen_fei> wsl --import Ubuntu-20.04 D:\wsl\ubuntu20.04 D:\wsl\ubuntu20.04.tar
wsl --import <安装发行版本名称> <安装发行版本路径> <已导出的发行版本>
删除已导出的发行版本
删除 D:\wsl\ubuntu20.04.tar
设置wsl的Ubuntu默认登录账号
方法一:
打开Ubuntu的/etc/wsl.conf文件,没有就新建,写入如下内容后重新打开即可
[user]
default=username
方法二:
#如果是Ubuntu20.04:
ubuntu2004.exe config --default-user username
#如果是Ubuntu18.04:
ubuntu1804.exe config --default-user username
#如果是debian:
debian.exe config --default-user username
Ubuntu环境配置
参考文档进行环境搭建:Ubuntu环境配置
WSL 2 使用虚拟硬盘 (VHD) 来存储 Linux 文件。 在 WSL 2 中,VHD 在 Windows 硬盘驱动器上表示为 vhdx 文件。
WSL 2 VHD 使用 ext4 文件系统。 此 VHD 会自动调整大小以满足你的存储需求,并且其最大大小为 256GB。 如果 Linux 文件所需的存储空间超过此大小,则可能需要将其展开。 如果你的分发版大小增长到大于 256GB,则会显示错误,指出磁盘空间不足。 可以通过扩展 VHD 大小来纠正此错误。
【NOTE】:扩容的前提条件是电脑上wsl必须是wsl2,否则不能扩容。
下面介绍扩容的步骤:
关闭所有的Linux发行版本
wsl --shutdown
查找ext4.vhdx文件路径
直接进入以下路径,CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc
可能有所不同
C:\Users\wenfei\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\\LocalState\ext4.vhdx
通过Everything软件搜索ext4.vhdx名称找到该文件路径
以管理员权限打开cmd/PowerShell,执行如下命令进行扩容
diskpart
Select vdisk file="DISK_PATH"
detail vdisk
expand vdisk maximum=<sizeInMegaBytes>
exit
# 个人操作方法
PS C:\WINDOWS\system32> diskpart
Microsoft DiskPart 版本 10.0.22000.653
Copyright (C) Microsoft Corporation.
在计算机上: DESKTOP-JGDI2N8
DISKPART> Select vdisk file="D:\wsl\ubuntu20\ext4.vhdx"
DiskPart 已成功选择虚拟磁盘文件。
DISKPART> detail vdisk
设备类型 ID: 0 (未知)
供应商 ID: {00000000-0000-0000-0000-000000000000} (未知)
状态: 已添加
虚拟大小: 256 GB
物理大小: 248 GB
文件名: D:\wsl\ubuntu20\ext4.vhdx
为子级: 否
父文件名:
找不到关联的磁盘号。
DISKPART> expand vdisk maximum=512000 # 注意这里的单位是MB
100 百分比已完成
DiskPart 已成功扩展虚拟磁盘文件。
DISKPART> exit
退出 DiskPart...
打开虚拟机Ubuntu进行重新挂载
确认Ubuntu挂载的磁盘,在Ubuntu的shell中执行如下命令
sudo mount -t devtmpfs none /dev
mount | grep ext4
# 个人操作方法
wen_fei@DESKTOP-JGDI2N8:~
$ sudo mount -t devtmpfs none /dev
[sudo] password for wen_fei:
mount: /dev: none already mounted on /mnt/wsl.
wen_fei@DESKTOP-JGDI2N8:~
$ mount | grep ext4
/dev/sdb on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
# 确定挂载的磁盘是sdb
重新设置大小
sudo resize2fs /dev/sdb
# 个人操作方法
wen_fei@DESKTOP-JGDI2N8:~
$ sudo resize2fs /dev/sdb
[sudo] password for wen_fei:
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 = 63
The filesystem on /dev/sdb is now 131072000 (4k) blocks long.
至此扩容成功
有时候我们因为系统问题,或者操作不当导致我们无法通过Ubuntu2004.exe或者wsl等启动虚拟机,但是虚拟机对应的磁盘ext4.vhdx文件还在,这时我们想要将磁盘重新与Ubuntu2004.exe关联上的操作方法如下:
重新安装Ubuntu虚拟机
在搜索窗口找到Ubuntu 20.04 on Windows
程序,然后点击运行,或者通过命令wsl --install -d ubuntu-20.04
命令安装,安装成功后会在安装目录下生成文件ext4.vhdx
执行命令wsl --shutdown
关闭虚拟机
进入上面的安装目录,然后将ext4.vhdx文件删除
找到安装目录的方法很多种,可自行网上搜索,最快的方式是通过Everything软件直接搜索ext4.vhdx就能找到
将自己的ext4.vhdx拷贝到上面的安装目录下
**【Note】:**注意自己的Linux版本一定要和安装的Linux发行版本一致
此时重新打开虚拟机即是自己的磁盘内容了
如果需要迁移路径,可参考3.2 wsl修改默认安装路径
安装完成的最大空间是默认的256G,如果想扩容请参考3.4 wsl扩容
可以尝试将连接外网的适配器属性中更改Internet协议版本4首选DNS服务器为4.2.2.2,成功登陆后再改回自动获得即可
若以上尝试失败,可考虑在以下链接下载并安装
[Ubuntu 20.04][https://aka.ms/wslubuntu2004]
如果愿意,你也可通过命令行下载首选的发行版。 例如,下载 Ubuntu 20.04:
Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing
对本项目而言,使用WSL1进行编译时会在某些地方卡住相当一段时间,虽然最终编译通过了,但用时很久,而WSL2没有这个问题,故更推荐WSL2。
请参阅疑难解答
wsl -l:查看有电脑上有多少个运行的wsl
wsl -t xxxx:关闭执行的wsl
wsl --unregister xxxx:注销指定的wsl
wsl --terminate xxxx: 和wsl -t命令一样
where xxxx:xxxx命令在那个目录下
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。