给 C 盘腾地方

Windows 软件默认都爱往系统分区里拉屎(存放数据),很容易导致 C 盘红温(磁盘空间耗尽)。目前 C 盘是一整块独立的固态硬盘,无法再通过合并分区来扩容,只能把一些体积较大的数据迁移到数据盘。

WSL

以 Ubuntu 为例,其镜像默认路径为 %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu_XXX\LocalState\ext4.vhdx,此处迁移到 D:\WSL\Ubuntu.vhdx

cmdwsl --shutdown
wsl --export Ubuntu D:\WSL\Ubuntu.vhdx --vhd
wsl --unregister Ubuntu
wsl --import-in-place Ubuntu D:\WSL\Ubuntu.vhdx

实际关于路径的信息保存在注册表中,分支如下:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{**GUID**}

迁移后大概能腾出数十 GB 空间。

Hyper-V

Hyper-V 默认数据存放路径为 C:\ProgramData\Microsoft\Windows\Hyper-V。可以在创建虚拟机时,勾选「将虚拟机存储在其他位置」。对于已经创建的虚拟机,可以在虚拟机实例右键菜单里选择「移动」来将其数据迁移到别处。

迁移后大概能腾出数十 GB 空间。

VirtualBox

VirtualBox 的虚拟机数据默认存放在 %USERPROFILE%\VirtualBox VMs 目录下。打开 VirtualBox 管理器,在「全局设定」-「常规」里,修改「默认虚拟电脑文件夹」路径即可。对于已经创建的虚拟机,可以在虚拟机实例右键菜单里选择「移动」来将其数据迁移到别处。

迁移后大概能腾出数十 GB 空间。

Vagrant

Vagrant 默认数据存放在 %USERPROFILE%\.vagrant.d 目录下。创建环境变量 VAGRANT_HOME,将其值设置为迁移后的路径,然后将数据文件夹移动过去即可。

迁移后大概能腾出数 GB 空间。

Ollama

Ollama 的模型文件默认存放在 %USERPROFILE%\.ollama\models 目录下。创建环境变量 OLLAMA_MODELS,将其值设置为迁移后的路径,然后将模型文件夹移动过去即可。

如果安装的是 Ollama 完整版,可以在图形界面里直接设置。

迁移后大概能腾出数十 GB 空间。

mise

mise 的工具链默认存放在 %LOCALAPPDATA%\mise 目录下。创建环境变量 MISE_DATA_DIR,将其值设置为迁移后的路径,然后将整个文件夹移动过去即可。

迁移后大概能腾出数 GB 空间。

uv

uv 的数据分散在两处,分别是 %APPDATA%\uv%LOCALAPPDATA%\uv。并且由多个环境变量控制,分别是:

由于文件夹移动后软连接失效,因此建议直接放弃原有数据,重新安装 Python 和工具。此外,移动 UV_PYTHON_INSTALL_DIR 后,使用 uv 管理的旧项目中的虚拟环境的 Python 指向也会失效,可以通过编辑 pyvenv.cfg 配置文件重新指定 Python 可执行文件路径。

迁移后大概能腾出数 GB 空间。

Scoop

Scoop 软件默认安装路径是 %USERPROFILE%\scoop。在安装 Scoop 时,可以通过设置环境变量 SCOOPSCOOP_GLOBAL 来控制软件安装路径。如果已经安装好,则可以通过修改配置文件来手动迁移。

配置文件路径为 %USERPROFILE%\.config\scoop\config.json。修改其中的 root_pathglobal_path 来指定迁移后的路径。不过直接移动已安装的软件可能会导致各种问题,建议仅保留 persist 文件夹内的数据,软件都重新安装。

迁移后大概能腾出数十至数百 GB 空间。

vcpkg

vcpkg 默认二进制缓存路径是 %LOCALAPPDATA%\vcpkg\archives。创建环境变量 VCPKG_DEFAULT_BINARY_CACHE,将其值设置为迁移后的路径,然后将缓存文件夹移动过去即可。

迁移后大概能腾出数十 GB 空间。

其他

另外某些桌面软件——特别是国产软件,比如微信、飞书等,也爱在系统盘里大坨大坨地拉屎,且这些软件不提供官方的数据迁移方案,只能使用符号链接的方式迁移。