赞
踩
使用 win11 +wsl 构建本地编译环境, 无需虚拟机很方便. win11 自带的商店中输入 linux 找到对应版本的ubuntu 18.04.6, 下载并安装
在启用或关闭windows功能中打开以下选项,hyper-v,适用于linux的windows子系统,虚拟机平台
配置安装linux内核更新包, 注意前 5 步每一步都要按照官网要求安装,完成后即可打开 ubuntu
我第一次直接扩大ubuntu的磁盘大小, 系统损坏导致磁盘损坏, 导致磁盘里的东西都不能用了,因此不能直接扩容, 要将磁盘和系统分开. 即使系统崩溃了也不影响数据.
输入名字点击保存
填入对应需要的磁盘大小, 我的磁盘是 1.4t 的预留了0.1t
等待磁盘创建完成, 创建完成后如下所示创建出一个 vhd 的磁盘.
使用管理员打开power shell 输入下面命令找到我们添加的磁盘
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
\\.\PHYSICALDRIVE1
即为我们添加的磁盘, vhd 是虚拟磁盘.
运行下面命令即可挂载磁盘到 wsl
wsl --mount \\.\PHYSICALDRIVE1 --bare
经过上述挂载之后, 打开 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/
挂载硬盘, 至此添加硬完成
为了避免意外系统崩溃导致系统无法使用, 因此在配置完成之后对我们的系统进行备份.
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 查看结果
运行一段时间发现 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
问题解决.
重装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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。