Windows11+wsl+ubuntu开发环境搭建
Windows11+wsl+ubuntu开发环境搭建
文章目录
使用 win11 +wsl 构建本地编译环境, 无需虚拟机很方便. win11 自带的商店中输入 linux 找到对应版本的ubuntu 18.04.6, 下载并安装
1. 报错 Error: 0x800701bc WSL 2
1.1 打开相关配置重启电脑
在启用或关闭windows功能中打开以下选项,hyper-v,适用于linux的windows子系统,虚拟机平台
1.2 2 按照官网步骤配置安装linux内核更新包
配置安装linux内核更新包, 注意前 5 步每一步都要按照官网要求安装,完成后即可打开 ubuntu
2. 挂载新的需要大小的磁盘
我第一次直接扩大ubuntu的磁盘大小, 系统损坏导致磁盘损坏, 导致磁盘里的东西都不能用了,因此不能直接扩容, 要将磁盘和系统分开. 即使系统崩溃了也不影响数据.
2.1 申请需要的空间
输入名字点击保存
填入对应需要的磁盘大小, 我的磁盘是 1.4t 的预留了0.1t
等待磁盘创建完成, 创建完成后如下所示创建出一个 vhd 的磁盘.
使用管理员打开power shell 输入下面命令找到我们添加的磁盘
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
\\.\PHYSICALDRIVE1
即为我们添加的磁盘, vhd 是虚拟磁盘.
2.2 将这个磁盘挂载到 wsl
运行下面命令即可挂载磁盘到 wsl
wsl --mount \\.\PHYSICALDRIVE1 --bare
2.3 在linux下初始化磁盘并挂载到系统
经过上述挂载之后, 打开 wsl 输入 sudo fdisk -l
即可找到对应的磁盘
运行下面命令初始化硬盘为 ext4 注意盘符可能不一样以自己的为准
sudo parted /dev/sdc mklabel gpt
sudo parted /dev/sdc mkpart primary ext4 0% 100%
sudo mkfs.ext4 /dev/sdc
接着运行
sudo mount /dev/sdc work/
挂载硬盘, 至此添加硬完成
3. 备份 wsl
为了避免意外系统崩溃导致系统无法使用, 因此在配置完成之后对我们的系统进行备份.
1) 关闭运行的子系统
关闭所有正在运行的子系统
wsl --shutdown
2) 导出子系统
wsl --export Ubuntu-18.04 E:\export-Ubuntu.tar
我这里导出到 e 盘
3) 在需要的时候导入WSL环境
如果自己原本的 ubuntu 坏了可以尝试通过此方法恢复.
wsl --import <NAME> <IMPORTLOCATION> <EXPORTFILE>
wsl --import Ubuntu-18.041 E:\wsl E:\export-Ubuntu.tar
导入完成之后 wsl -l -v 查看结果
4. 修改 wsl ubuntu 占用物理内存
运行一段时间发现 wsl 快把 c 盘吃光了, 实际虚拟磁盘占用的内存太多了.解决方法参考
缩小 WSL2 VHDX 文件的大小
diskpart> select vdisk file="C:\Users\<Username>\AppData\Local\Packages\<Linux-Distribution-AppPackageName>\LocalState\ext4.vhdx"
diskpart> compact vdisk
此时应进入到 WSL2 中,运行 zerofree 将 ext4 文件系统内已经不用的块填零,但 zerofree 不能运行在已经挂载为 rw 的文件系统上,那就把文件系统挂载为 readonly 就行了
mount /dev/sda -o remount,ro
zerofree /dev/sda
运行结束后,在 Windows 下关闭 WSL2
wsl --shutdown
然后再运行最开始 diskpart 的 compact
diskpart> select vdisk file="C:\Users\<Username>\AppData\Local\Packages\<Linux-Distribution-AppPackageName>\LocalState\ext4.vhdx"
diskpart> compact vdisk
问题解决.
5. 报错 Error code: Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_FILE_NOT_FOUND
重装wsl报错, 使用一下命令手动安装, 首先通过 --list --online
注意需要开科技, 否则无法在线下载.
PS C:\Users\sheng.zhao> wsl.exe --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumblewee
然后下面命令等待安装完成
wsl.exe --install Ubuntu-22.04
更多推荐
所有评论(0)