当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹(xp下是Documents and Settings文件夹,而windows7和vista下是users和programdata文件夹)存放在C盘之下,而且这些设置很不容易修改。这样的设置就会导致系统盘在用户使用的过程中越来越臃肿,系统运行速度越来越慢。相信使用Windows的大部分用户都有此体验。这篇随笔将把默认在C盘的users\用户名文件夹转移到其它分区。该文件夹不但存放着“我的文档”,“我的图片”等用户自己的文件,也包括用户自己的配置文件,IE的cookies,收藏夹以及上网过程中产生的临时文件。
在使用xp的时候,要完成这样的操作,一般需要再安装另外的软件来完成。幸好Windows 7 和 vista提供了mklink命令,让这样的操作变得非常简单。mklink是Windows 7 和 vista提供的创建符号链接和硬链接的一个命令。其实熟悉Linux系统的朋友都知道,linux系统下早就提供了类似的命令ln.
首先,先来介绍一下mklink这个命令。
C:>mklink
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件符号链接。
/H 创建硬链接,而不是符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径 (相对或绝对)。
文件和目录都可以通过mklink命令来建立符号链接和硬链接。不过只有NTFS格式的硬盘才可以实现目录链接。所以建议大家尽量使用NTFS来格式化硬盘。当然在下面的过程中,也要求硬盘格式为NTFS。
符号链接创建后的图标和快捷方式的图标很像。不过符号链接不占用系统空间,在文件系统中不是一个单独的文件,而快捷方式在系统中是一个单独的文件,占用系统空间,虽然很小。两者相同的地方就是,如果源文件被删除了,两者就都没有用了;移除链接和快捷方式都不会影响源文件。除此之外,两个还有一个最大的不同,比如说我们通过mklink命令在C盘目录下创建一个D盘下的文件夹usersdata的符号链接users。如果usersdata文件夹下有一个admin的子目录,那么我们可以访问C:\users\admin路径。而如果我们创建的是一个usersdata的快捷方式users。那么我们点击C:\users文件夹时,路径会自动转到D:\userdata下;我们无法访问C:\users\admin路径,或者说C:\users\admin路径根本不存在。
硬链接在系统占用的空间和源文件相同,图标和快捷方式的突变不同,移除源文件或硬链接均不会对另一方产生影响,而硬链接文件的任何更改都会影响到源文件,而如果源文件被删除的话,它的内容依然通过硬链接的形式存在着。
好了,现在言归正传,怎么把users文件夹定位到其他盘呢?
假设你经常用的登录帐号帐号名为admin,那么首先我们要把这个目录转移到其他盘。
1. 在“计算机管理“中把Administrator用户激活,注销admin后,使用Administrator登录。之所以要用Administrator登录,是因为只有管理员用户才有权访问其他用户的用户资料文件夹,创建相应的符号链接。
我的电脑(右键)–>管理–>本地用户和组(在左边的选项栏里)–>用户–>右边窗口找到Administrator–>右键打开Administrator属性,找到下面的帐户禁用那里,把那个禁用的勾勾去掉,点击确定。
之后注销当前用户admin,记住一定要注销当前用户,不然admin文件夹下的一些配置文件仍然在被使用而导致接下来的复制和删除操作没法顺利完成。然后切换到Administrator用户登录windows。首次使用Administrator登录,系统会进行相关的配置。
2.把“C:\users\admin”整个目录复制到其它盘上,比如说D:\admin文件夹中。之后删除C盘users文件夹下的整个admin文件夹。如果想将其它文件夹转移到非系统盘中,同样的方法,复制然后删除。
3.使用mklink命令创建符号链接,重新登录系统。
首先Windows键+r调出运行对话框,输入cmd,也可以在开始中搜索cmd,然后打开。
输入如下命令来创建符号链接:
mklink /D C:\Users\admin D:\admin
注意,C:\Users文件夹下面的admin子目录应该提前删除掉,不然会出现该文件已经存在,无法创建符号链接的错误提示。这样之后,就可以注销Administrator,重新以admin用户登录系统了。
注意重新登录系统之后,要按照1中的步骤禁用Administrator用户。不然,可能会对系统安全带来隐患。
这样之后,在使用Windows系统的时候,C盘便不会臃肿得那么快了。而且,即使你重装了系统,也可以保证自己常用的配置不被改变,省去了很多重装系统后的配置工作。
如果你要重新安装系统的话,
在安装Windows 7操作系统的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“Shift+F10”呼出DOS窗口,输入以下命令:
rmdir “C:\Users\admin” /S /Q
mklink /J “C:\Users\admin” “D:\admin”
而后关闭DOS窗口,按部就班继续安装直至完成。
如此安装的Windows 7操作系统,所有“用户特殊文件夹”(User Special Folder)的内容都已经被设置在D盘(非系统盘)上。那么安装完系统之后,你会发现,你所有的配置几乎都能保留下来。当然在平时使用的过程中,软件尽量不要安装在C盘。
如果要把C盘下的ProgramData文件夹转移到其它非系统盘的话,因为该文件夹下文件属性的特殊性,直接复制删除的话,在删除的时候会出现“You require permission from SYSTEM to make changes to this file”类似的错误。这样的话可以通过修改该文件夹下的属性来解决这个错误。步骤如下:
1. 右键单击,选择属性。如下图所示,选择安全选项卡,单击高级,然后在新出现的对话框中选择所有者选项卡,单击编辑,选择你使用的用户,并且勾选”check the Replace owner on subcontainers and objects”,接下来单击应用。一路点击确定按钮就可以了。
2. 重新打开属性。同样进入安全选项卡里的高级设置。在接下来出现的对话框中选择权限(permissions)选项卡,选择改变权限(change permissions)按钮。之后会出现一个新的对话框,在该对话框底部有两个供勾选的选项。第一个选项“Include inheritable permissions from this object‘s parent”,取消该选项,取消的时候会出现一个警告对话框,这个警告对话框给出三个选项add, remove, ignore,这时选择添加add就行了。第二个选项“Replace all child object permissions with inheritable permissions from this object”,勾选该选项即可。然后确定退出。
如果操作成功的话,就可对programdata文件夹进行删除了。
如果programdata文件夹的权限修改的过程中,出现了无法修改的文件,比如说cache文件,那么只能通过启动模式中的“Repair your computer”修复计算机模式来进行。在开机的过程中按F8,之后选择Repair your computer/修复计算机”模式来启动计算机,之后调出终端命令行cmd,再进行拷贝删除建立符号链接就可以了。命令运行如下:
robocopy C:\ProgramData\ D:\ProgramData\ /E /COPYALL /XJ
rmdir C:\ProgramData /S /Q
mklink /J C:\ProgramData\ D:\ProgramData\
即可。当然也可以将以上命令写入批处理文件.bat,然后在修复模式下,直接运行该批处理文件即可。这里建议使用后一种方法,因为这种方法相对来说比较简单,容易操作。当然,也可以使用Windows7安装光盘进入恢复模式来进行操作。
至此,C盘中相关系统文件夹的转移工作已经完成。
转载请注明出处:博客园 永不止步