Windows子系统保存位置更改释放C盘(最简单)

本文介绍了如何解决Windows子系统Linux(WSL)占用C盘空间的问题。通过关闭WSL,找到默认的Ubuntu22.04磁盘文件位置,将其剪切至D盘新建的wsl文件夹,然后在命令行使用mklink创建符号链接,将子系统的存储路径指向D盘,从而释放C盘空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows子系统保存位置更改

使用场景

使用WSL(Linux子系统)做深度学习开发,在微软的应用商店安装的Ubuntu22.04会将系统默认安装在C盘,随着使用时间测增长,子系统的体积越来越大,本来就捉襟见肘的C盘更是雪上加霜。本文教你解决这个困扰。

解决思路

使用文件夹链接将存放磁盘文件的目录映射到D盘,这样不需要对WSL配置做更改,操作简单。

操作流程

关闭子系统

在windows下使用Win+x打开快捷方式,选择终端(Win11)或者Windows PowerShell(Win10),在命令行中输入wsl --shutdown关闭所有子系统。

找到文件存放地址

我是直接使用应用商店安装的Ubuntu22.04,一般默认的磁盘文件放在以下的地址

C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState

这里面 Administrator是我的用户名,CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc是安装程序创建的文件夹(找不到可以搜索一下Ubuntu)。在上述的路径中有一个ext4.vhdx文件,这个文件就是子系统的磁盘文件。

新的路径

把文件放在D盘,所在在D盘创建文件夹wsl用于存放新的文件,你也可以选择其他路径。

文件迁移

将第二步的ext4.vhdx文件直接ctrl+x剪切到D:\wsl文件夹。移动结束后,删除ext4.vhdx的上层文件夹LocalState,不删除下一步程序不能运行。

创建链接

使用Win+r,输入cmd打开命令行(一定是cmdPowerShell会报错)。然后输入命令:

mklink /j C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState  D:\wsl

就创建好了,记得将其中的路径改成你的。再运行Ubuntu,程序正常运行。C盘空间也释放了。

### 如何清理 Windows Server C 空间的最佳实践 #### 使用内置磁清理工具 Windows 提供了一个名为 `cleanmgr` 的磁清理实用程序,可以用来释放上的未使用空间。 ```powershell cleanmgr.exe /d C: ``` 这条命令将会打开图形界面让用户选择要删除哪些类型的文件[^1]。 #### 手动删除临时文件 对于更深入的清理工作,可以通过批处理脚本来自动清除指定位置下的临时文件: ```batch @echo off rem 关闭命令回显并执行批量指令 rd /s /q %temp% md %temp% echo Temporary files have been cleaned. pause ``` 上述代码片段展示了如何创建一个简单的批处理文件来清空系统的临时目录 `%TEMP%` 并重建它。这有助于移除不再需要的大容量缓存数据和其他无用项。 #### 配置页面文件设置 调整虚拟内存大小也可以有效减少占用的空间。进入系统属性中的高级选项卡,在性能部分点击“设置”,然后切换到“高级”标签页找到“更改”。这里可以选择自定义分页文件的位置及其最大最小尺寸[^2]。 #### 审查不必要的更新和服务日志 定期审查并管理 Windows 更新历史记录,卸载不需要的应用程序版本;同样地,压缩或迁移事件查看器里的大型日志文件也能节省不少存储资源。 #### 移动用户配置文件和应用程序数据 考虑将用户的个人资料夹重定向到另一卷上,或者利用组策略对象 (GPO) 来设定默认保存位置为非系统分区内的路径。此外,某些企业级软件可能允许重新定位其数据库或其他大体积的数据集[^3]。 #### 利用 PowerShell 自动化任务 编写 PowerShell 脚本可以帮助自动化以上提到的一些维护活动。例如,下面是一个用于查找超过一定天数的老旧文件的例子: ```powershell $daysOld = 7 $pathToCheck = "C:\Path\With\LotsOfFiles" Get-ChildItem $pathToCheck | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$daysOld)} | Remove-Item -Force -Recurse ``` 这段脚本会遍历给定路径 `$pathToCheck` 下的所有项目,并删除最后写入时间早于当前日期减去七天之前的所有文件及子文件夹[^4]。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值