最近因为升级WM上的两个小程序,又重新玩起了Windows系统,正好听说Windows 7发布了Beta以及官方中文语言包,就顺便安装了一下,发现Windows 7确实在性能和资源占用上要比Vista有不少的改进,特别是系统启动速度快了不少,稳定性不相当不错,看来MS这两年没少花工夫。好了废话不说转入正题!
   
   之前一直在玩ubuntu linux,被它那清晰高效的文件系统和文件结构所深深折服,特别是它的系统文件的结构,可以完全将系统文件和用户自己的文件(包括用户自己的文档、图片等内容和用户自己的大量配置文件)放在完全不同的分区内,这样当系统需要升级或重装时,存放用户文件的分区根本无需有任何变动,当系统重装后,只有还是用这个用户名,那你所有文档和设置都将和重装前完全一样!这就省去了大量的时间和精力,也保证了用户自己重要文件的安全性!
   
   而Windows在安装的时候是无法实现这样的分区存放方式的,但从Vista开始,微软提供了一个它至少10年前就应该提供的文件系统的功能:符号链接,命令行工具是mklink.exe(相当于linux下的ln),这是一个在linux广泛使用的功能,说的简单一点,有点像Windows的.lnk文件,但又完全不一样,一样之处在于访问它和访问目标文件本身没什么区别,不一样之处在于所有第三方程序都需要自己去解析这个.lnk文件,而不像符号链接那样对程序是无缝透明的!
   
   那么这个Vista提供了link有什么好处呢,至少第一个好处就是,当我们安装完Vista或Windows 7时,发现系统盘下面没有了名字又长又难以理解的"Documents and Settings"目录,事实上它被当成系统文件隐藏起来了,当你用dia /a的时候还能看到它,但它被link到了另一个新目录:ProgramData,这可以说是Windows的一大改进,它把软件生成的数据和用户自己的数据分离开来了,原先的"Documents and Settings"里的内容事实上被分开来放在”\ProgramData“和”\Users“这两个地方,而后者更像是linux的home目录,或者OSX的Users目录,它将所有用户自己的配置文件(包括注册表的HKEY_LOCAL_USER的内容)以及“我的文档”、“我的图片”之类的用户自己的内容都放在了一起,当然,配置文件相当的都放在一个隐藏的叫“AppData”的目录下面,它和“我的图片”之类都位于“\Users\我的用户名”下面,这几乎和linux以及OSX的文件结构完全一致!
   
   上面说了这么多的铺垫,不知道大家看明白了没,接下来才是最关键的部分了。以上所有这些目录在系统安装完以后,都还在同一个分区下面,一般情况下都是在C:\下面,也就是说C:\Windows和C:\Users都在一起,这样万一我的系统坏了需要重新就很麻烦了,我得先把“C:\Users\我的用户名”目录里的东东都先备份出来(当然你可以说你自己的文件都不是放在C盘里的或者你自己重新定义了“我的文档”的位置,这另当别论,至少你没有好好利用这个目录。而之前像“番茄花园”之类的XP优化版都是默认将“我的文档”重定向到D盘或其它盘上的,这也是为了更方便的让用户管理自己的文档)。
   
   而现在我们有了更方便的方法,那就是用mklink.exe这个小工具,以下是一些简要的步骤:
   1。在“计算机管理”里把Administrator用户激活,注销后用Administrator登录;
   2。把“C:\Users\我的用户名”整个目录移到其它盘上,假设移到“D:\我的用户名”;
   3。用mklink.exe创建目录链接:mklink.exe /D C:\Users\我的用户名 D:\我的用户名,提示会显示链接已经建立,并且会有“<==>”这样一个符号告诉你这两个目录是等同的;
   4。重新登录你自己的帐号,发现一切都没有变化,变化的只是你的文件将和系统分离,它们将更安全!
   5。下次重装时,还用同一个用户名,先用Administrator登录后把新系统中的"C:\Users\我的用户名"删除(否则mklink.exe会报无法创建链接),再用第3步把你位于D盘上的目录重新做下链接即可

   如果你登录系统就是用的帐号本身就是Administrator怎么办?用PE启动!有人已经在PE下测试过mklink.exe是可用的,当然在PE下你得用绝对路径来执行,在系统分区上搜索一下mklink.exe所在的目录即可。

   前几天我的Windows 7总是无法与PPC同步,就重装了一下,用上面的步骤重新后,发现我所有的用户相关的配置都还存在,包括注册表里的HKEY_LOCAL_USER的内容,收藏夹,IE的cookies,等等内容。。。

   用mklink.exe实现系统和用户目录分离只是一个简单应用,事实上有了链接这个功能后,我们还能将更多的东西分离出来存放,比如Windows的Temp和Log目录等(可以参考这个帖子:http://www.51nb.com/forum/tid774315),这些在linux都是完全可以独立挂载到其它分区上的,要是Vista/Windows 7在安装的时候就能让用户选择将用户目录重定向到其它分区就完美了!
   
我的文章 | 评论(21) | 引用(1) | 阅读(10568)
ryanxiao Email
2009/07/12 06:57
拜读大作后, 感觉十分精彩, 感谢兄弟介绍得如此详细; 虽然没有完全吃透,但我理解按照这样操作----将用户所有数据移动到非系统分区就可以实现:当重装系统后,(包括对系统备份----GHOST,IMAGEX或其他备份工具所做的C盘镜像还原后)只要所安装程序的分区(目录)不变-----比如所有软件安装在"D:\program files\"下,则当用同样的用户名登录,之前建立好用户目录链接,则所有的软件安装、设置,都不需要了,因为所有的软件安装/设置/包括注册表部分,都在其他分区的用户文件目录好好的呆着--------这样理解对吗?; 但系统备份事关重要,为了证实我的想法,以及验证这一方法的可靠性, 我照着操作了一下,结果是: 喜乐参半!我的尝试具体如下:
  a. 用MKLINK将要备份的用户文件在移动到E区后,建立链接,结果和介绍的一样,在C和E都出现了用户目录, 查看C盘用户目录的属性, 发现指向E盘的用户文件, 大小/目录结构完全一样(有些不太理解的是, 既然建立了链接, C盘的用户文件目录应该只是一些快捷方式, 整个目录应该是不占磁盘容量才对啊, 而且在用MKLINK之前已将C盘的用户文件目录删除(移动到E),怎么会出现C盘E盘完全一样两套目录的情况?)
  b. 之后对系统做一个备份备用,我用的是DRIVECLONE的系统快照功能 (能在数秒之内对系统按扇区建立快照,还原也不超过1分钟,是我系统必装的软件之一)
  c. 安装一个软件(hotspot shiled) 到D:\program files\....,完成后在程序组/桌面/快速启动都有快捷方式,而其在设备管理中会出现虚拟的网卡, 在服务里多出3条服务项目,控制面板程序添加删除有项目
  d. 用之前建立的快照还原C盘, 重启后发现: 程序组/桌面/快速启动都有快捷方式中还有hotspot的快捷方式----就像没有还原一样; 只不过设备管理/服务/添加删除中的项目没有了;这点很强悍, 再不用担心软件安装和设置的问题(比如: OFFICE07的菜单, 设置; outlook的设置等等)
  
高兴之余有了一个疑问: 比方说有朝一日系统出项问题,不得不重装或者用之前正常状态下备份的镜像还原系统, 由于所有用户文件都在E盘, 还原后,系统仍然调用E盘(有错误)的用户文件, 这种情况怎么办?就拿我上面的例子来看, 比如: 我发现装了hotsopt shiled系统有问题且没法卸载(或卸载不干净),想通过还原撤销他对系统的影响, 但问题是, 还原后他还在那, 对系统还会有影响吗? 我没用过Unix, 不知道这种用户文件与系统分开存放,在系统还原后,能撤销对系统的影响吗?看您对这个问题研究得相当深入, 请不吝指教,谢谢!
leosin
2009/05/18 23:09
你好。我的64位的WIN7也是无法同步,无法选中联系人,日历等。至今没解决,不知道LZ的是不是也出现这样的问题。而我后来装个32位的就可以同步了,可惜。。。。一下子把手机里的联系人给同步没了。我倒!!

所以请问,同步时的设置。选哪种?
1冲突时替换设备上的。2冲突时替换台式机的
或者3.根据需要临时改变。。
移动Windows 7/Vista中用户文件夹的位置
[2009/05/14 23:01]
来源:Betty
内容:使用Windows XP时习惯将#8220;我的文档#8221;文件夹重定向到其他盘上,这样重装系统时丢失的数据少一点。在Win 7/Vista下情况有了变化,所有的用户数据都被放到了#8220;C:Users用户名#8221;这个...
Yonsm
2009/05/03 18:58
发现一个问题,mklink.exe 是不存在的,mklink是 CMD.EXE 内置的命令。
要更改 Administrator,可以先建立一个具有超级用户权限的账户,注销登录更改,一样的操作。

另外:

创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      创建目录符号链接。黙认为文件
                符号链接。
        /H      创建硬链接,而不是符号链接。
        /J      创建目录联接。
        Link    指定新的符号链接名称。
        Target  指定新链接引用的路径
                (相对或绝对)。

不知道/H 硬链接和 /J目录联接有什么好处没。没找到详细说明
nanling 回复于 2009/05/03 20:19
/H 硬链接,好像是指把链接删除的时候,原文件也被会删除
/J 好像可以隐藏链接,微软似乎用它来兼容以前的目录,比如:C:\Documents and Settings就被链接到C:\Users下了
panda Email Homepage
2009/05/01 12:26
节日的问候!五一节快乐!
非常喜欢你的软件
andy
2009/03/12 23:21
是 dir /a吧
枫间残月 Email
2009/03/05 20:36
用了那个QCellcore才来到这时里的。。看了这篇文章我觉得把目录挂载到分区的功能在win2000里就有了吧,在磁盘管理中,可以把NTFS分区,挂载到空白的文件夹里,那时候我做无盘的读写分离的时候做过。
子言 Email
2009/02/16 09:41
您好!  QCellCore 能添加以下几个功能吗:
1.  增加虚拟来电吗?
2.  拨10086等客服电话不关频.

真希望这个软件有这些功能..期待...
panda Email Homepage
2009/02/10 12:44
我前些天安装win7了,无奈没有合适的驱动。
貌似win7要给电脑的驱动来个翻天覆地的变化。
nanling 回复于 2009/05/03 20:20
一般情况下用vista的驱动就可以了
云峰
2009/01/27 21:40
我在xp下用变量就可以做到,先把 c盘下个人文件夹移到d盘,然后在我的电脑-属性-高级-环境变量里加一个变量userprofile=D:\我的用户名,重启就可以达到楼主的功能
nanling 回复于 2009/01/31 17:11
谢谢分享,如果XP下用改userprofile变量能行的话,那VISTA和WIN7下也应该能行,关键问题还是不能在系统安装的时候就能指定
分页: 2/3 第一页 上页 1 2 3 下页 最后页
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我