摘要:
正式版Google软件在安装时无法选择安装位置,默认安装到系统分区(C盘)Program Files或Application Data目录中。Chrome浏览器、Desktop桌面搜索、Earth地图等软件,由于本身特性,在运行时会储存大量缓存或数据库文件在磁盘中。这些文件单个体积小而数量庞大,如果按照一般使用习惯,长期不清理,则会对文件系统(File System)造成严重的负担,这些影响包括储存空间占用,磁盘碎片,以及目录查询的问题,最终将严重影响操作系统的运行速度。
本文设计了一种方法,可以将Google软件安装到非系统分区(如D盘)的任意目录中,从而解决大量数据文件造成的系统性能影响。
系统环境需求及使用的工具:
本方案的核心是NTFS文件系统(版本5.0以上)所具备的Junction(结) / Mounting Point(挂载点)功能。
为完成双分区的Junction操作,需要用户的系统分区(安装操作系统的那个分区)为NTFS格式,并且有另一分区(非系统分区)也是NTFS格式。
操作系统应为Windows,版本XP或更高。
免费软件Link Shell Extension是一个第三方的NTFS HardLink / Junction的GUI管理工具,他将HardLink和Junction的创建、移除操作,集成到文件浏览器的上下文菜单中,用户在使用时只需点击鼠标右键或拖动鼠标右键,激活上下文菜单,即可使用HardLink / Junction功能。
根据来自该软件作者的授权协议,该软件可以免费下载,但本文必须提供该软件的原始下载地址,读者可以自行下载。下载地址如下:
该软件的安装十分简单,只需运行安装向导按照提示进行即可。安装完成之后,可能需要重新启动计算机。
安装完成之后,在任意NTFS格式的磁盘分区中,右键单击任意文件,在上下文菜单中即可看到崭新的选项:Pick Link Source,出现此选项即标志安装成功。
工作原理:
显然,Google软件的官方安装程序,是没有办法选择安装目录的。
按照默认,只能安装在指定的位置,他们分别是:
- Chrome浏览器安装在C:\Documents and Settings\用户名\Local Settings\Application Data\Google\Chrome,数据存放在相同目录;
- Desktop桌面搜索安装在C:\Program Files\Google\Google Desktop Search,数据存放在C:\Documents and Settings\用户名\Local Settings\Application Data\Google\Desktop,程序体积不大,可不必考虑,而数据文件繁多且庞大,需要搬移到非系统分区;
- Earth地球安装在C:\Program Files\Google\Google Earth,缓存数据可以在程序界面中指定,故本例中没有对地球软件做搬移。
Junction将存在于磁盘中的某个路径映射到被指定的另外的路径,可以在同一个分区内映射,也可以跨区映射。另外,HardLink(在本例中未使用)将某个(单个)文件映射到其他位置,两份文件使用相同的磁盘区域存储,也就是说两个文件对应的真实数据在磁盘上是相同的。那么,就可以利用Junction,把Google软件的安装目录映射到其他分区,这样,尽管操作系统认为Google软件仍然安装在了默认的目录中,但是由于文件系统的操作,实际上程序和数据已经被搬移到其他位置。
另外,可将NTFS的结/挂载点与Unix/Linux操作系统中的ln -s(符号链接)/mount -o bind(重挂载点)作类比。在Android手机用户圈中,盛传着APP2SD这样的补丁,并且有着各种各样的方案,但归结下来都是使用了符号链接命令,将/data/app等路径映射到了SD卡上。因此,本文也可以算是Windows版的APP2SD,任意的程序都可以搬移。例如:Adobe Master Collection全集将消耗近10G的硬盘空间,开启NTFS压缩之后也要有5-7G,而Photoshop,AfterFX等点阵图像编辑软件需要使用大量第三方插件,这些插件又要消耗大量硬盘空间。如果恰巧软件安装所在的分区空间耗尽,就可以用Junction功能无限扩展软件安装目录的储存空间,直到整个硬盘空间耗尽。另外,Adobe在系统分区还要安装很多公共文件,这些文件无视用户指定的安装目录,都要安装到系统分区。特别是Flash组件,要储存上千个网页文件(帮助文件,笔者很是不解为什么要采取这样的储存方式),如果处理不妥,将会大大增加系统分区产生磁盘碎片的可能性,从而降低系统性能。
操作步骤:
下面将讲述如何将Chrome浏览器的安装目录搬移到非系统分区。以此为例,读者可类比进行其他软件的搬移操作。
方法1:先安装,再搬移,适用于已经安装好的应用软件
此时,双击Junction结,就可读取E:\net\Google中的内容。如果不成功,请重试。
特别注意:
若需删除Junction,请务必不要直接在右键上下文菜单中选择“删除”或其他等价的操作,这样做会删除实际(被映射的)目录中的所有内容,而不会删除Junction本身。
正确的操作如图7所示,在Junction图标上点击鼠标右键,激活上下文菜单,选择其中的“Delete Junction”选项。
方法2:先搬移,再安装,适用于尚未安装且计划做路径映射的应用软件
-
Step 0. 获知应用软件的默认安装位置。因为本方案要面对的软件,在安装时都不允许用户指定安装位置,因此预先获知安装目录是必要的,也需要一些手段。
-
Step 1. 在非系统分区的希望位置新建文件夹,与方法1中Step 2相似。
-
Step 2. 将上一步中新建的文件夹映射到系统分区,与方法1中Step 4-6类似。
-
Step 3. 正常安装应用软件,此时应用软件认为它被安装到了默认指定的位置,但实际上由于文件系统的硬链接存在,文件都被储存到了用户所映射的位置。
此时,去往期望的文件夹,应可以看到应用软件的存储文件;去往系统分区的默认安装位置,双击Junction结进入该结,也可以看到相同内容。
参考文章:
- END -
摘自:lirycdtm.wordpress.com