[原]把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 能确保数据及其相关信息完整拷贝)

robocopy "D:\Users" "E:\Users" /E /COPYALL /XJ

然后,先把当前Users 目录改名:

move Users Users_bak

最后,在当前位置创建一个指向真实Users 数据的链接:

mklink /J "D:\Users" "D:\Users"

看看操作后的结果:

至此,全部操作完成,退出命令提示符,重启系统即可。

进入系统后,可以看到系统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 目录备份,那简单,再拷贝一次即可。

把远程桌面连接放到第二个显示器上显示
在打开Windows 7 防火墙环境下访问网络文件共享
Windows 命令行控制关机休眠等操作
打开Win7的telnet支持

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/98411.html

(0)
上一篇 2021年8月21日 00:10
下一篇 2021年8月21日 00:10

相关推荐

发表回复

登录后才能评论