WSL 虚拟机的磁盘文件
理解 WSL 磁盘文件的存储形式与位置
掌握磁盘文件的特点与空间管理
能找到对应发行版的磁盘文件
核心讲解
WSL2 的每个发行版都对应一个虚拟磁盘文件(.vhdx),整个 Linux 系统、文件、软件都存在这个文件里,方便备份、迁移和复制。
(1)磁盘文件的本质
格式:
.vhdxHyper-V 虚拟磁盘格式,动态大小特点:用多少占多少,最大自动扩容,不是固定大小
位置:默认在 C 盘用户目录下,不同发行版分开存储
(2)默认存储位置
默认安装的发行版,磁盘文件路径:
C:\Users\你的用户名\AppData\Local\Packages\
不同发行版的包名不同,在对应包的 LocalState\ 目录下,文件名一般是 ext4.vhdx。
Ubuntu:
CanonicalGroupLimited.Ubuntu22.04LTS_...开头的文件夹手动安装的发行版,路径各有不同
(3)磁盘空间特点
自动增长:文件越多,vhdx 文件越大,最高能自动扩容到几十 G
删除文件不会自动缩小:Linux 里删除文件,Windows 里的 vhdx 文件不会自动变小,需要手动压缩
性能影响:vhdx 所在盘剩余空间不足,会影响 WSL 的性能
备份简单:直接复制 vhdx 文件就是完整备份系统
(4)查看磁盘占用
Windows 端:看 vhdx 文件的大小
Linux 内:
df -h查看系统内的磁盘使用
操作示例
# ===== 1. 快速找到磁盘位置 =====
# 先获取发行版的包名
Get-AppxPackage *Ubuntu* | Select-Object InstallLocation
# 输出的路径就是安装位置,进去LocalState就能看到ext4.vhdx
# ===== 2. Linux内查看磁盘使用 =====
wsl
df -h
# / 挂载点就是系统盘,看已用、可用、使用率
# ===== 3. 查看vhdx文件大小 =====
# 找到文件后右键属性,或者PowerShell查看
Get-Item "C:\Users\xxx\AppData\Local\Packages\...\LocalState\ext4.vhdx" | Select-Object Length
常见误区
找不到 AppData 文件夹:默认是隐藏文件夹,要开启显示隐藏文件
删除文件 vhdx 就变小:Linux 删除文件只是标记可用,vhdx 不会自动收缩,需要手动优化
可以直接编辑 vhdx:不要直接修改虚拟磁盘文件,容易损坏系统,通过 WSL 操作文件
C 盘占用越来越大:WSL 用得越久 vhdx 越大,C 盘空间紧张要及时迁移
课后练习
找到你的 WSL 发行版对应的 vhdx 磁盘文件
查看磁盘文件的大小,和 Linux 内 df -h 对比
思考:为什么 Linux 删了文件,Windows 的 vhdx 没有变小?
