如何扩展 WSL 2 中 Ubuntu 22.04 的磁盘大小
WSL 2(Windows Subsystem for Linux 2)是一个强大的工具,允许你在 Windows 上运行 Linux 环境。然而,默认的磁盘大小可能不足以满足某些需求。在这篇文章中,我们将详细介绍如何扩展 WSL 2 中 Ubuntu 22.04 的磁盘大小,并确保虚拟硬盘文件不会固定占用指定的最大大小。
步骤 1:启用 Hyper-V 功能
首先,你需要确保你的 Windows 系统已启用 Hyper-V 功能,因为我们将使用 Resize-VHD
命令来扩展虚拟硬盘文件。
-
打开 PowerShell 以管理员身份运行:
- 在开始菜单中搜索 “PowerShell”,右键点击 “Windows PowerShell” 并选择 “以管理员身份运行”。
-
启用 Hyper-V:
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
-
重启计算机:
- 在启用 Hyper-V 功能后,重启计算机以使更改生效。
步骤 2:扩展虚拟硬盘文件
-
打开 PowerShell 以管理员身份运行。
-
导入 Hyper-V 模块(如果尚未自动导入):
Import-Module Hyper-V
-
扩展虚拟硬盘文件:
- 使用
Resize-VHD
命令扩展.vhdx
文件的大小。假设你要扩展到 1000GB:Resize-VHD -Path "D:\Application\WSL\Ubuntu22.04\ext4.vhdx" -SizeBytes 1000GB
- 使用
步骤 3:调整文件系统大小
扩展虚拟硬盘文件后,你需要在 WSL 2 内部调整文件系统的大小。
-
启动 WSL 2:
- 打开 Windows Terminal 或 PowerShell,然后启动 WSL 2:
wsl
- 打开 Windows Terminal 或 PowerShell,然后启动 WSL 2:
-
进入你的 Ubuntu 22.04 发行版。
-
调整文件系统大小:
- 在 WSL 2 中,使用
resize2fs
工具来调整文件系统的大小:sudo resize2fs /dev/sdb
- 在 WSL 2 中,使用
-
验证调整结果:
- 使用以下命令查看文件系统大小:
df -h
- 使用以下命令查看文件系统大小:
步骤 4:确保虚拟硬盘文件不会固定占用最大大小
WSL 2 的虚拟硬盘文件(.vhdx
)是动态分配的,它会根据你在 WSL 2 内部实际使用的空间动态增长,而不是立即占用你指定的最大大小。你可以通过以下步骤回收未使用的空间:
-
在 WSL 2 内部填充零空间:
- 使用
dd
命令创建一个全零文件来填充未使用的空间:dd if=/dev/zero of=zerofile bs=1M
- 使用
-
删除全零文件:
- 一旦空间填满,删除全零文件:
rm zerofile
- 一旦空间填满,删除全零文件:
-
使用 PowerShell 压缩
.vhdx
文件:- 打开 PowerShell 以管理员身份运行,并使用
Optimize-VHD
命令:Optimize-VHD -Path "D:\Application\WSL\Ubuntu22.04\ext4.vhdx"
- 打开 PowerShell 以管理员身份运行,并使用
总结
通过以上步骤,你可以成功扩展 WSL 2 中 Ubuntu 22.04 的磁盘大小,并确保虚拟硬盘文件不会固定占用指定的最大大小。这使得你能够更灵活地管理和使用 WSL 2 的磁盘空间。如果你在操作过程中遇到任何问题,请确保你以管理员权限运行相关命令,并且你的 Windows 版本支持 Hyper-V。
希望这篇博客文章对你有所帮助!如果你有任何问题或建议,请在评论区留言。
评论区