欢迎光临散文网 会员登陆 & 注册

使用 ImDisk 保护自己的固态硬盘

2023-05-23 22:24 作者:柠檬味_LMei  | 我要投稿

ImDisk 简介

ImDisk,是一款免费的、功能实用的、体积超小的、适用于 Windows 平台的软件,这个工具可以让你挂载硬盘、CD-ROM 或软盘的镜像文件,还可以搭配一点参数创建 RAMDISKS(本文涉及)

This tool will let you mount image files of hard drive, cd-rom or floppy, and create one or several ramdisks with various parameters.

官网(?):

https://sourceforge.net/projects/imdisk-toolkit/


大量的缓存文件在耗损着你的固态硬盘寿命

现在的电脑 C 盘都是安装在固态中的吧(小声)

Windows 在日常使用中,会生成大量碎片化的缓存文件:

Temp 文件夹,一年的时间,10 个 GB,46800 个 文件

并且,根据自身的使用习惯的不同,习惯使用的某些软件也会生成大量的碎片文件,比如笔者偏爱的 Edge 浏览器:

轻度使用,在短短的 20 分钟内,Code Cache 文件夹下就累计了 79 个 js 文件!

大量的碎片文件不仅占据着宝贵的 C 盘空间,其清理也会消耗 SSD 的寿命:

笔者笔记本电脑的小小 C 盘已经告急。

接近五年的使用后,S.M.A.R.T. 中所显示的寿命也消耗了 18%:

所以,关闭各种“自动更新”,以及使用 RAM Disk 功能,将部分内存映射为磁盘,用于暂存缓存文件(关机后会自动丢失),有一定的延长 SSD 寿命的作用,是笔者目前可能有点在意的事情。



ImDisk 给缓存文件一个暂存地点

1. 创建 RamDisk:

打开“RamDisk 设置”

图标,名称

主页如图:

主页

按照自己的需要和使用习惯,并结合可分配的空闲内存空间容量,为内存磁盘指定空间大小,选择一个合适的驱动器号(本文使用 X),把“开机启动”和“创建TEMP文件夹”都勾上,点击确定,就创建完成了我个人电脑开机后一般不会连续运行超过一天,查了一下自己 Temp 目录下单日最多产生的垃圾没有超过 400 MB,自己电脑的总内存为 16 GB,所以为 RamDisk 分配了 1 GB 的空间。如果部分应用(推测如录屏软件、解压软件)在使用 RamDisk 后,出现了问题,可:1. 更改相关软件的缓存地址为硬件磁盘中的地址;2. 暂时修改环境变量中的 TEMP 和 TMP 为硬件磁盘中的地址(可能需要重启);3. 考虑为 RamDisk 分配更大的内存空间;4. 别入 RamDisk 这个坑。但是如果自己有预警,这种问题也是可以避免的(后文)。

2. 修改环境变量内的 TEMP 们:

系统搜素

环境变量
更改

将上面图片中所有 Temp、tmp 修改成刚刚创建的 RamDisk 下的 Temp 文件夹路径。重启电脑,然后就能新奇地发现,RamDisk 下的 Temp 目录中,开始接受缓存文件:

temp

3. 将单独应用的缓存地址更改至 RamDisk 之下

在 RamDisk 内创建的文件(夹),关机后就会自动丢失,所以,可以使用脚本辅助创建起到区分作用的缓存文件夹。

以 Edge 浏览器为例,Edge 浏览器下,有三个产出非常多碎片文件的目录,分别是:

在自己磁盘中,专门搞一个固定位置的文件夹,比如命名为“WindowsScripts”,里面存放接下来要创建的脚本:

该脚本用于在 RamDisk 下,新建相应的文件夹。

脚本写完后,双击运行,X 盘出现了相应的文件夹:

new folders

使用管理员权限打开 cmd:

方法一:右键 Windows 徽标
方法二:搜索

关闭 Edge 浏览器的状态下,将上面提到的 C 盘中那三个文件夹直接删除,再在 cmd 中使用 mklink 指令,创建对应的符号链接:[格式:mklink /D "链接入口" "链接到的地方"]

路径中包含空格,需要加英文双引号

原来的位置会出现这样的符号链接:

符号链接

然后打开浏览器使用,就会发现有源源不断的小文件出现在文件列表中了:

Edge Cache

有了脚本,还得实现自动化,这边使用 Windows 自带的“任务计划程序”来实现自动化

右键 Windows 徽标

创建基本任务:

右键

“当用户登录时自动执行脚本”:

操作

这样,就实现了让 Edge 浏览器在使用过程中生成的缓存文件不直接写入 C 盘(SSD)的操作。



进阶技巧

如果分配的空间太小,可能在使用某些软件时(例如:解压缩),会遇到“磁盘空间不足”的问题。那么应该如何解决这种问题呢?

解决方法一:部分应用支持单独设置缓存文件路径,可以自行更改为原磁盘内的地址(部分应用也许得重启才能生效该设置)。

解决方法二:使用批处理脚本,将 Temp 重新指向原空间地址。由于我个人确实不会写批处理,所以问了下 New Bing,并结合网上的资料,写了这样一段脚本,单独保存为一个 .bat 文件:

这样的话,就需要重新将上面步骤中的相关环境变量更改为原路径,并且在原路径创建由虚拟硬盘 Temp 指向原 Temp 路径的软链接,并且在原路径下创建一个空文件夹 Temp3,后面这话讲得很别扭,不妨看图:

Temp3 存在时,表示 Temp 指向虚拟硬盘;而 Temp2 存在时,表示 Temp 指向本磁盘

这样,执行上面的脚本就能将 Temp(软链接)重命名为 Temp2(软链接),同时将 Temp3(文件夹)重命名为 Temp(文件夹),再次执行将执行相反的操作。

但这样有个问题,电脑重启后,我还是希望它能够直接定向至虚拟硬盘,免去手动检查的步骤。那么,就需要对前文中那个自动创建其他需要的文件夹的脚本后面添加这样的内容:

是谁在产生碎片

笔者在过去的 Windows 使用过程中,偶然遇到了一款名为 SpaceSniffer 的软件,主要功能是“磁盘占用可视化”。巧合的是,这款软件可以通过相应方块闪烁的方式,让人找到是哪个文件夹下发生了文件更新。比如 Edge 的 IndexedDB 文件夹,就是笔者用这样的方式寻找到的。

官网?

方块们

傻傻分不清


使用 ImDisk 保护自己的固态硬盘的评论 (共 条)

分享到微博请遵守国家法律