扩容Windows Server 2025 WSL2的磁盘空间
00 分钟
2025-4-27
2025-5-10
type
status
date
slug
summary
tags
category
icon
password
适用于 Linux 的 Windows 子系统 (WSL 2) 使用虚拟化平台将 Linux 发行版与主机 Windows 操作系统一起安装,创建虚拟硬盘 (VHD) 来存储你安装的每个 Linux 发行版的文件。 这些 VHD 使用 ext4 文件系统类型,并在你的 Windows 硬盘驱动器上表示为 ext4.vhdx 文件。
WSL 2 会自动调整这些 VHD 文件的大小,以满足存储需求。 默认情况下,WSL 2 使用的每个 VHD 文件最初被分配了 1TB 的最大磁盘空间量(在 WSL 版本 0.58.0 之前,此默认值设置为最大 512GB,在那之前为最大 256GB)。
 
若要将 Linux 发行版的 VHD 大小扩展到超过默认的 1TB 上限(所分配的磁盘空间量),请执行以下步骤。 (对于尚未更新的早期 WSL 版本,此最大默认值可能设置为 512GB 或 256GB)。
 
  1. 使用wsl.exe —shutdown 命令终止所有的wsl实例
  1. 将目录路径复制到与计算机上安装的 Linux 发行版关联的 ext4.vhdx 文件。
 
若要查找 Linux 发行版的 .vhdx 文件和目录路径,请打开 PowerShell 并使用以下脚本,将 <distribution-name> 替换为实际的发行版名称:
 
结果输出如下:
 
notion image
 
 
 

软件环境

 

问题描述

首先,我们知道WSL 2 使用虚拟化平台将 Linux 分发版与主机 Windows 操作系统一起安装,创建虚拟硬盘 (VHD) 来存储安装的每个Linux发行版的文件。 这些 VHD 使用 ext4 文件系统类型 ,并在Windows 硬盘驱动器上表示为 ext4.vhdx 文件:
WSL 2 会自动调整这些 VHD 文件的大小以满足存储需求。 默认情况下,WSL 2 默认安装只会给到1T的硬盘空间,老版本甚至只有512G( WSL 版本 0.58.0之前),更老的版本只有256G(更早之前)!
notion image
 

扩展 WSL 2 虚拟硬盘的大小

1. 使用wsl.exe --shutdown 命令终止所有 WSL 实例
2. 查找 Linux 分发版的 .vhdx 文件和磁盘路径
打开 PowerShell 并使用以下脚本,将 distribution-name替换为实际分发名称
结果将显示类似于: %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx的路径。
notion image
将此目录路径复制到与计算机上安装的 Linux 分发版关联的 ext4.vhdx 文件。
3. 使用管理员权限打开 Windows 命令提示符,然后通过输入以下命令打开 diskpart 命令解释器:
notion image
4.现在会出现一个 DISKPART> 提示。 输入以下命令,将 pathToVHD替换为步骤 2中复制的与 Linux 分发关联的文件的目录路径 ext4.vhdx 。
notion image
6. 将虚拟大小转换为兆字节。
例如,如果虚拟大小:1024 GB,则将其转换为 1024000。 你输入的新值必须大于此原始值。 例如,若要将 1024GB 的虚拟大小加倍到 2048GB,需要转换为 MB 并输入值 :2048000。
notion image
7. 使用 Windows 命令提示符 DISKPART> 提示输入要分配给此 Linux 发行版的新最大硬盘空间的值
8.退出 DISKPART> 提示
9. 启动此 Linux 分发版。 (确保它在 WSL 2 中运行。可以使用命令确认这一点: wsl.exe -l -v。)
10. 让 WSL 知道它可以通过从 WSL 分发命令行运行这些命令来扩展此分发的文件系统大小。
 
11. 复制10中得到的名称,用于修改硬盘空间大小
该名称类似于:/dev/sdX(X 表示任何其他字符)。 在下面的示例中,X 的值是 c
使用上面的示例,我们将 vhd 大小更改为 2048000,因此命令为:
PS: 可能需要安装 resize2fs。 如果是这样,可以使用此命令进行安装:sudo apt install resize2fs。

4.结果预览🤔

此 Linux 发行版的虚拟驱动器 (ext4.vhdx) 现已成功扩展到新大小:
之前:
notion image
之后:
notion image
上一篇
VirtualBox创建虚拟机报错
下一篇
一条命令,激活 JetBrains 全家桶,支持 Win、Linux、macOS,全平台激活就是这么简单!