WSL2改变空间vhdx大小

文章介绍了如何通过Powershell命令行以管理员权限,关闭WSL2,列出并选择需要修改的Linux实例,使用diskpart工具扩展VHD文件大小,然后在WSL内使用mount和resize2fs命令更新文件系统大小,从而增加WSL2的磁盘空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

wsl2对vhd的限制大小默认为256GB,对一些工作是不够用的

微软官方教程

Comparing WSL 1 and WSL 2​docs.microsoft.com/en-us/windows/wsl/compare-versions#understanding-wsl-2-uses-a-vhd-and-what-to-do-if-you-reach-its-max-size正在上传…重新上传取消

1、以管理员身份打开powershell或者cmd

2、关闭全部wsl

wsl --shutdown

3、列出所有的Linux实例,确定需要更改vhd实例的全称

Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName  //根据自己安装的wsl2分发,将代码中"*<distro>*"改为"*ubntu*"或其他。

4、如果是通过应用商店安装的linux分发,默认目录一般为

C:\Users\'User name'\AppData\Local\Packages\CanonicalGroupLimited.***\LocalState\ext4.vhdx
//该路径为下一步diskpart中需要用到的路径,暂时将其命名为pathToVHD
//***为实例全称

5、powershell运行diskpart,并且加载vdisk

$diskpart
DISKPART> Select vdisk file=<pathToVHD>
DISKPART> detail vdisk //查看VHD的详细信息

可以看到虚拟大小为256GB

6、拓展vdisk空间

DISKPART> expand vdisk maximum=<sizeInMegaBytes> 
//等号后边为空间大小,以MB为单位,默认为256000,我准备拓展到512000

可以看到,更改之后的虚拟大小为500GB

7、退出DISKPART,进入wsl

DISKPART> exit
$wsl

8、在wsl中操作,使wsl知道磁盘大小限制已经更改

bash> sudo mount -t devtmpfs none /dev
//将none挂载到/dev目录下,若返回'mount: /dev: none already mounted on /dev.',可忽略
bash> mount | grep ext4
//得到none挂载到/dev目录下的磁盘路径名
//本句命令返还的信息 '/dev/sdX' 即为磁盘路径名,X可能是a,b,c等
bash> sudo resize2fs /dev/sdX <sizeInMegaBytes>M

大概算了算131072000x4/1024/1024 = 500,vhd大小更改成功

一些注释是按照自己的理解写的,若有不对,感谢指正。

wsl2改变vhd大小 - 知乎

### 扩展 WSL 2 中 Ubuntu 的磁盘空间 为了扩展 WSL 2 中 Ubuntu 的磁盘空间,可以按照如下方法操作: #### 停用当前的 WSL 实例 在执行任何更改之前,建议先关闭所有的 WSL 实例以防止数据损坏。这可以通过命令 `wsl --shutdown` 完成[^1]。 #### 修改 VHD 文件大小 WSL 2 使用虚拟硬盘 (VHD) 来存储 Linux 文件,在 Windows 硬盘驱动器上表现为 `.vhdx` 文件。要增大此文件的空间分配,可利用 PowerShell 或者命令提示符来调整其尺寸。具体来说,通过使用 `wsl --list -v` 查看正在使用的分发版名称及其状态之后,应用以下指令设置新的最大容量(例如增加至50GB): ```powershell wsl --terminate <DistributionName> wsl --resize-disk <PathToVHDX> --size 50G ``` 请注意 `<DistributionName>` 需替换为实际发行版本的名字,而 `<PathToVHDX>` 则应指向具体的 `.vhdx` 文件位置。 #### 更新内部文件系统表 即使外部 VHDX 文件已经被放大,Linux 内部的分区可能仍然保持原样。此时需要进入对应的 WSL 发行版终端并执行相应的命令来增长根文件系统的可用空间。对于 ext4 类型的文件系统而言,通常做法是在启动时传递特定参数给内核以便允许动态调整分区大小;另一种方式则是借助工具如 `resize2fs` 进行动态扩展: ```bash sudo resize2fs /dev/sdXN ``` 这里 `/dev/sdXN` 表示目标设备节点名,可通过 `df -hT` 获取确切信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值