Jun
18
[原]把Windows 7 用户文件夹挪移到非系统分区
Windows 一直默认都是把用户文档等放在系统分区的,为了避免重装系统后丢失数据,通常会把用户文件夹定义到非系统分区(例如D盘)。XP 前的方法很简单,右键属性修改一下即可。Windows 7 等系统引入了库的概念,针对特定的文件夹,如我的文档、我的视频等,也可以通过右键属性中的“位置”来把其重新定位到其他分区的。但是,一来文件夹比较多,二来有些系统文件夹(%AppData%)等,很多的软件都会把用户数据存放在里面,加上系统缓存等导致所需空间越来越大。这通过简单的位置定位是不能解决的。最终的解决办法是,把系统盘的Users 目录(称为 用户特殊文件夹 User Special Folder)整个迁移到非系统分区,这也是本文的目的。
本来以为这个问题很简单,Google 一下网上有大堆的方法,工作基本是类似的。但实际操作发现,由于存在100M的系统保留分区,按网上资料的操作会导致丢失用户文件夹的问题。经过若干次测试,终于找到较完善的解决办法,特整理出来。
一、工作原理
实际的工作原理很简单,就是把系统分区上默认的Users 目录移动到非系统分区,然后在原地创建一个指向该目录的链接。这与Linux 环境是非常类似的。
需要注意的地方是,用户登录后就会使用Users 目录下的文件。所以,如果在当前用户登录的情况下,移动或删除Users 目录中的文件都会失败的。网上提供的解决办法通常有三个:
1. 在系统安装过程中操作,也就是说,在需要输入首个用户信息时
使用Shift+F10 打开Dos 命令行窗口来操作:
可以参考这里的介绍。
2. 打开系统默认禁用的Administrator 用户,然后注销当前用户,以Administrator 用户登录后操作。
可参考这里,该操作主要是避免当前用户占用文件的问题,但经测试,有些后台服务也会使用Users 目录中的文件,即使重启系统也不一定可以完全避免问题。这还没包括Users/Administrator 用户文件夹本身的情况。所以,这不是一个好办法。
3. 更好的办法是,在系统修复模式下进行操作。
因为修复模式是独立的系统,不依赖磁盘中系统的状态,不会出现用户或服务占用文件的问题。我们下面的操作就以该方法进行。
二、系统保留分区问题
网上不少文档也提到系统修复模式下进行处理的方法,但与这些资料不同的地方是,我的磁盘分区中有个100M的系统保留分区:
这分区是在安装Windows 7 时由安装程序自动创建的,平时在系统环境中也没有分配盘符。所以,在日常的系统中,系统盘是C 盘,非系统盘是D 盘。
不过,在系统修复模式下就不同了,该模式下,会自动读取磁盘上的分区,包括系统保留分区。这时,系统保留分区是C 盘,真正的系统盘是D 盘,而E 盘才是非系统盘。
正是因为这个差异,如果按网上的资料中进行拷贝或创建链接操作,是会出现用户文件夹(systemprofile\Desktop)丢失的异常问题。
三、实际操作
把问题搞清楚,实际操作并不复杂。
1. 进入系统修复模式
重启机器,并不断按F8 键,让系统打开高级启动选项菜单:
选择“修复计算机”。
2. 根据提示,选择键盘类型,输入登录用户名和密码
最后,选择“命令提示符”,打开命令提示符Dos 窗口。
3. 识别当前分区和盘中数据
从dir 命令反馈的结果可看到,系统保留分区为C 盘,系统真正数据在D 盘(Users 目录在D 盘):
4. 拷贝Users 目录及创建链接
接下来,就是通过robocopy 进行拷贝的工作。(robocopy 能确保数据及其相关信息完整拷贝)
然后,先把当前Users 目录改名:
最后,在当前位置创建一个指向真实Users 数据的链接:
※注意:这是最关键的一步,看上去很奇怪,也是与其他文档不同的地方。
前面数据拷贝到E 盘,但这里的链接还是指向D 盘。原因就是因为系统保留分区的问题。在系统进入正常引导时(非修复模式),这里的非系统分区E 盘,在没有为系统保留分区分配盘符的情况下,会成为D 盘。所以,我们的链接让应该指向D 盘。
看看操作后的结果:
至此,全部操作完成,退出命令提示符,重启系统即可。
进入系统后,可以看到系统C 盘Users 目录是个链接符:
而真实数据是在非系统D 盘:
四、注意事项
1. 系统保留分区的问题
因为Windows 7 安装方式的不同,在使用光盘安装windows7或在安装过程中执行了删除分区并格式化建立新的分区的时候,才会出现这个100M 的系统保留分区。具体原因可参考:这里。
如果你的硬盘没有出现该分区,那么上面在操作中就完全可以按正常的C 盘和D 盘移动数据和创建符号链接即可,反正原理是相同的。
2. 移动数据大小问题
虽然,理论上该方法与Users 目录大小无关。但由于robocopy 速度很慢,所以,建议在系统安装完毕后尽早进行该操作,以避免其他软件安装后带来的大量用户数据文件。还有IE 浏览器缓存数据等,可以先清空缓存后再操作,这对操作时间还是影响很大的。
3. 可能出现的问题
“User Profile Service 服务未能登录,无法加载用户配置文件”
这问题,可能是因为系统盘没有Users 目录,例如忘了用mklink 创建符号链接导致的。这时你将进不了系统的,重新进入修复模式,创建一个对应的Users 目录链接吧。或者参考这里。
“位置不可用:C:\Windows\system32\config\systemprofile\Desktop 引用了一个不可用的位置。”
这问题与上面的情况和原因是类似的,只是表现形式不同而已。通常原因是Users 目录的当前用户下缺少了“Desktop”(或“用户”)文件夹,可能没有在修复模式下拷贝文件,导致有部分文件因被占用,后来删除Users 目录后这部分文件丢失引起的。如果文件没有备份,解决起来很麻烦。通常是借用Administrator 重新创建一个同名用户,然后逐一拷贝恢复数据。当然,如果有Users 目录备份,那简单,再拷贝一次即可。
本来以为这个问题很简单,Google 一下网上有大堆的方法,工作基本是类似的。但实际操作发现,由于存在100M的系统保留分区,按网上资料的操作会导致丢失用户文件夹的问题。经过若干次测试,终于找到较完善的解决办法,特整理出来。
一、工作原理
实际的工作原理很简单,就是把系统分区上默认的Users 目录移动到非系统分区,然后在原地创建一个指向该目录的链接。这与Linux 环境是非常类似的。
需要注意的地方是,用户登录后就会使用Users 目录下的文件。所以,如果在当前用户登录的情况下,移动或删除Users 目录中的文件都会失败的。网上提供的解决办法通常有三个:
1. 在系统安装过程中操作,也就是说,在需要输入首个用户信息时
使用Shift+F10 打开Dos 命令行窗口来操作:
可以参考这里的介绍。
2. 打开系统默认禁用的Administrator 用户,然后注销当前用户,以Administrator 用户登录后操作。
可参考这里,该操作主要是避免当前用户占用文件的问题,但经测试,有些后台服务也会使用Users 目录中的文件,即使重启系统也不一定可以完全避免问题。这还没包括Users/Administrator 用户文件夹本身的情况。所以,这不是一个好办法。
3. 更好的办法是,在系统修复模式下进行操作。
因为修复模式是独立的系统,不依赖磁盘中系统的状态,不会出现用户或服务占用文件的问题。我们下面的操作就以该方法进行。
二、系统保留分区问题
网上不少文档也提到系统修复模式下进行处理的方法,但与这些资料不同的地方是,我的磁盘分区中有个100M的系统保留分区:
这分区是在安装Windows 7 时由安装程序自动创建的,平时在系统环境中也没有分配盘符。所以,在日常的系统中,系统盘是C 盘,非系统盘是D 盘。
不过,在系统修复模式下就不同了,该模式下,会自动读取磁盘上的分区,包括系统保留分区。这时,系统保留分区是C 盘,真正的系统盘是D 盘,而E 盘才是非系统盘。
正是因为这个差异,如果按网上的资料中进行拷贝或创建链接操作,是会出现用户文件夹(systemprofile\Desktop)丢失的异常问题。
三、实际操作
把问题搞清楚,实际操作并不复杂。
1. 进入系统修复模式
重启机器,并不断按F8 键,让系统打开高级启动选项菜单:
选择“修复计算机”。
2. 根据提示,选择键盘类型,输入登录用户名和密码
最后,选择“命令提示符”,打开命令提示符Dos 窗口。
3. 识别当前分区和盘中数据
从dir 命令反馈的结果可看到,系统保留分区为C 盘,系统真正数据在D 盘(Users 目录在D 盘):
4. 拷贝Users 目录及创建链接
接下来,就是通过robocopy 进行拷贝的工作。(robocopy 能确保数据及其相关信息完整拷贝)
robocopy "D:\Users" "E:\Users" /E /COPYALL /XJ
然后,先把当前Users 目录改名:
move Users Users_bak
最后,在当前位置创建一个指向真实Users 数据的链接:
mklink /J "D:\Users" "D:\Users"
※注意:这是最关键的一步,看上去很奇怪,也是与其他文档不同的地方。
前面数据拷贝到E 盘,但这里的链接还是指向D 盘。原因就是因为系统保留分区的问题。在系统进入正常引导时(非修复模式),这里的非系统分区E 盘,在没有为系统保留分区分配盘符的情况下,会成为D 盘。所以,我们的链接让应该指向D 盘。
看看操作后的结果:
至此,全部操作完成,退出命令提示符,重启系统即可。
进入系统后,可以看到系统C 盘Users 目录是个链接符:
而真实数据是在非系统D 盘:
四、注意事项
1. 系统保留分区的问题
因为Windows 7 安装方式的不同,在使用光盘安装windows7或在安装过程中执行了删除分区并格式化建立新的分区的时候,才会出现这个100M 的系统保留分区。具体原因可参考:这里。
如果你的硬盘没有出现该分区,那么上面在操作中就完全可以按正常的C 盘和D 盘移动数据和创建符号链接即可,反正原理是相同的。
2. 移动数据大小问题
虽然,理论上该方法与Users 目录大小无关。但由于robocopy 速度很慢,所以,建议在系统安装完毕后尽早进行该操作,以避免其他软件安装后带来的大量用户数据文件。还有IE 浏览器缓存数据等,可以先清空缓存后再操作,这对操作时间还是影响很大的。
3. 可能出现的问题
“User Profile Service 服务未能登录,无法加载用户配置文件”
这问题,可能是因为系统盘没有Users 目录,例如忘了用mklink 创建符号链接导致的。这时你将进不了系统的,重新进入修复模式,创建一个对应的Users 目录链接吧。或者参考这里。
“位置不可用:C:\Windows\system32\config\systemprofile\Desktop 引用了一个不可用的位置。”
这问题与上面的情况和原因是类似的,只是表现形式不同而已。通常原因是Users 目录的当前用户下缺少了“Desktop”(或“用户”)文件夹,可能没有在修复模式下拷贝文件,导致有部分文件因被占用,后来删除Users 目录后这部分文件丢失引起的。如果文件没有备份,解决起来很麻烦。通常是借用Administrator 重新创建一个同名用户,然后逐一拷贝恢复数据。当然,如果有Users 目录备份,那简单,再拷贝一次即可。
飞飞
2021/05/14 11:09
老铁你能回我一下吗 我感觉你像机器人
linuxing 回复于 2021/05/18 00:31
Windows 7 都停止维护了,放弃治疗吧,Win10 不香吗?
你赔我电脑
2021/04/07 22:29
嘤嘤嘤嘤嘤~~~~~啊~
你赔我电脑
2021/04/07 22:23
!!!我啥啥链接都无效了,咋办吧你就说“这问题与上面的情况和原因是类似的,只是表现形式不同而已。通常原因是Users 目录的当前用户下缺少了“Desktop”(或“用户”)文件夹,可能没有在修复模式下拷贝文件,导致有部分文件因被占用,后来删除Users 目录后这部分文件丢失引起的。如果文件没有备份,解决起来很麻烦。通常是借用Administrator 重新创建一个同名用户,然后逐一拷贝恢复数据。当然,如果有Users 目录备份,那简单,再拷贝一次即可。”在修复模式下拷贝的文件,但还是有未知原因导致了丢失,robocopy重复拷贝备份文件夹Users_bak了3次,仍然有3个文件拷贝失败,问题会出在哪里呢!!!啊~~~~~
过路人
2017/02/27 09:00
价值千金的文章!网上的低质量教程太多了,抄来抄去。大多都是右键属性里,改位置的,不能改appdata。你的方法,亲测有效!非常感激!
tianan
2013/10/15 13:10
真不错,网上所有方法看下,就你的方法靠谱move 和 mklink 是很关键两步,mklink 按网上不成功后,和你的想法一样,没敢试,看到你文章后定心了,一下就成功了
分页: 1/1 1