发布于 

通过diskpart工具压缩userdata.vhdx来解决磁盘占用过多问题

# Intro

当你安装了 WSA 后随着你的使用,你会发现占用的空间越来越大。即使你把不需要的安卓程序卸载了之后,却依然满满的霸占着你的 C 盘。你只能眼睁睁地看他慢慢变大却无能为力。当然本篇文章的目的就是帮你解决这个问题。

# 移动 WSA 到其他盘符

你利用你聪明的头脑打开了百度并使用灵巧的双手在搜索框里输入 WSA 磁盘空间过大。很快你便看到了一种解决方式.

  1. 打开设置 - 程序 - 已安装的程序,找到 WSA
  1. 点击后面三个点选择移动。
    稍等一会就会帮你把 WSA 移动到对应的盘符了。

# 使用 diskpart 工具压缩

  1. 以管理员身份运行 cmd,输入 diskpart 命令按回车。
  2. 使用以下命令选择你的 userdata.vhdx
cmd
1
select vdisk file = "D:\WpSystem\S-1-5-21-3846526574-1502088438-2560978845-1001\AppData\Local\Packages\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata.vhdx"

如果提示

cmd
1
DiskPart successfully selected the virtual disk file.

就说明成功了。

  1. 输入 compact vdisk 来压缩。
1
2
DiskPart has encountered an error: The specified file is encrypted and the user does not have the ability to decrypt it.
See the System Event Log for more information.

这个就说明你没有权限压缩这个文件。
为了解决这个问题我百度了一晚上,最后发现,只要你把这个文件复制走,就会提示

这里选择是,然后就会复制走。
这个时候你再看你复制的文件就会发现上面的小黄锁已经不见了。

  1. 重新选择 userdata.vhdx 文件
cmd
1
select vdisk file = "D:\userdata.vhdx"
  1. 重新输入命令 compact vdisk 进行压缩,如果出现下面的提示那就说明压缩成功了。
cmd
1
2
3
4
5
6
7
DISKPART> compact vdisk

100 percent completed

DiskPart successfully compacted the virtual disk file.

DISKPART>

此时再看你复制出来的文件,就会发现大小缩小了很多,压缩成功了。
接着只需要剪切拷贝出来的文件,替换掉原来的文件就可以了。

# 成果

压缩前:

压缩后: