找回密码
 立即注册

QQ登录

只需一步,快速开始

教程经验总索引TVMW5/小日本5 索引【视频转换】小日本4/TE4XP 索引【视频转换】TAW4 / TDA3 索引【DVD打包软件】
Nero 索引DVD-Lab 索引【DVD打包软件】编解码器 索引 【必读】固顶帖011号
查看: 4687|回复: 2

[教程] Win7/Vista 巧用 mklink.exe 实现系统和用户文件的分区存放

[复制链接]

9328

威望

294

金钱

1万

贡献

管理员

自由的灵魂

积分
99869
主题
5265
回帖
26222
注册时间
2003-4-10
最后登录
2024-4-23
发表于 2010-8-4 00:55:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
转自nanling空间


  最近因为升级WM上的两个小程序,又重新玩起了Windows系统,正好听说Windows7发布了Beta以及官方中文语言包,就顺便安装了一下,发现Windows7确实在性能和资源占用上要比Vista有不少的改进,特别是系统启动速度快了不少,稳定性不相当不错,看来MS这两年没少花工夫。好了废话不说转入正题!

  之前一直在玩ubuntulinux,被它那清晰高效的文件系统和文件结构所深深折服,特别是它的系统文件的结构,可以完全将系统文件和用户自己的文件(包括用户自己的文档、图片等内容和用户自己的大量配置文件)放在完全不同的分区内,这样当系统需要升级或重装时,存放用户文件的分区根本无需有任何变动,当系统重装后,只有还是用这个用户名,那你所有文档和设置都将和重装前完全一样!这就省去了大量的时间和精力,也保证了用户自己重要文件的安全性!

  而Windows在安装的时候是无法实现这样的分区存放方式的,但从Vista开始,微软提供了一个它至少10年前就应该提供的文件系统的功能:符号链接,命令行工具是mklink.exe(相当于linux下的ln),这是一个在linux广泛使用的功能,说的简单一点,有点像Windows的.lnk文件,但又完全不一样,一样之处在于访问它和访问目标文件本身没什么区别,不一样之处在于所有第三方程序都需要自己去解析这个.lnk文件,而不像符号链接那样对程序是无缝透明的!

  那么这个Vista提供了link有什么好处呢,至少第一个好处就是,当我们安装完Vista或Windows7时,发现系统盘下面没有了名字又长又难以理解的"Documents andSettings"目录,事实上它被当成系统文件隐藏起来了,当你用dia/a的时候还能看到它,但它被link到了另一个新目录:ProgramData,这可以说是Windows的一大改进,它把软件生成的数据和用户自己的数据分离开来了,原先的"Documents andSettings"里的内容事实上被分开来放在”\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这个小工具,以下是一些简要的步骤:

  • 在“计算机管理”里把Administrator用户激活,注销后用Administrator登录;
  • 把“C:\Users\我的用户名”整个目录移到其它盘上,假设移到“D:\我的用户名”;
  • 用mklink.exe创建目录链接:
    1. mklink  /D  C:\Users\我的用户名  D:\我的用户名
    复制代码
    ,提示会显示链接已经建立,并且会有“<==>”这样一个符号告诉你这两个目录是等同的;
  • 重新登录你自己的账号,发现一切都没有变化,变化的只是你的文件将和系统分离,它们将更安全!
  • 下次重装时,还用同一个用户名,先用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在安装的时候就能让用户选择将用户目录重定向到其它分区就完美了!
IsaacZ的发言中如果提到任何字母缩写或专有名词,在本论坛中一般都能搜索到。点此立即搜索点拨论坛。如有搜索不到的,请尝试搜索百度百科,或者跟帖提问。
发帖前请注意看置顶帖。如果你发现自己的问题没有得到回答,说明你的问题提错了地方或者提问前未先阅读本版规则固顶帖011号

9328

威望

294

金钱

1万

贡献

管理员

自由的灵魂

积分
99869
主题
5265
回帖
26222
注册时间
2003-4-10
最后登录
2024-4-23
 楼主| 发表于 2010-8-4 01:39:11 | 显示全部楼层
c:\users (junction)可以看作链接 d:\users 目录的访问点,通过 c:\users 可以直接访问 d:\users 目录。

打个比方,d:\users 目录像一个房间,d:\users 路径是打开房间的一扇大门,而 c:\users 路径是打开此房间的另一扇大门。
IsaacZ的发言中如果提到任何字母缩写或专有名词,在本论坛中一般都能搜索到。点此立即搜索点拨论坛。如有搜索不到的,请尝试搜索百度百科,或者跟帖提问。
发帖前请注意看置顶帖。如果你发现自己的问题没有得到回答,说明你的问题提错了地方或者提问前未先阅读本版规则固顶帖011号
回复

使用道具 举报

9328

威望

294

金钱

1万

贡献

管理员

自由的灵魂

积分
99869
主题
5265
回帖
26222
注册时间
2003-4-10
最后登录
2024-4-23
 楼主| 发表于 2010-11-10 08:49:33 | 显示全部楼层
在Administrator帐户下删除C盘要转移的用户文件夹“IsaacZ”时,提示:

操作无法完成,因为文件已在 Windows Media Player Network Sharing Service 中打开。

请关闭该文件并重试。


不能删除的文件是:
C:\Users\IsaacZ\AppData\Local\Microsoft\Media Player\CurrentDatabase_372


解决方法:进入计算机管理,在“服务”下,找到 Windows Media Player Network Sharing Service 服务,果然是一个“自动”启动的服务,右键“停止”它即可删除以上文件。如图:

禁止服务:Windows Media Player Network Sharing Service.gif
IsaacZ的发言中如果提到任何字母缩写或专有名词,在本论坛中一般都能搜索到。点此立即搜索点拨论坛。如有搜索不到的,请尝试搜索百度百科,或者跟帖提问。
发帖前请注意看置顶帖。如果你发现自己的问题没有得到回答,说明你的问题提错了地方或者提问前未先阅读本版规则固顶帖011号
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|点拨论坛

GMT+8, 2024-4-23 16:23 , Processed in 0.874003 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表