我目前正在尝试将大容量文件夹从 SSD 移动到 HDD(我的Users
文件夹和ProgramData
文件夹)。我正在遵循简短指南使用目录连接有效地完成此操作。但是,这对我来说不起作用。这正是我最近尝试时所做的:
- 在硬盘上找到旧的用户文件夹——我想保留的文件夹
- 在 SSD 上安装 Windows 8
- 重新启动进入恢复控制台 – SSD=C: HDD=D:
- 复制
ProgramData
到硬盘robocopy /copyall /mir /xj C:\ProgramData D:\ProgramData
- 重新启动进入 Ubuntu 以复制所有失败的内容并删除
ProgramData
- 重新启动进入恢复控制台
- 重命名
C:\Users
为C:\Users.old
- 建立连接
mklink /J C:\Users D:\Users
mklink /J C:\ProgramData D:\ProgramData
- 检查
dir
一切是否正常。
但是,当我重新启动时,登录启动画面是纯蓝色的,我没有用户个人资料图片,登录后,我得到:
用户配置文件服务登录失败。无法加载用户配置文件
因此,我ProgramData
再次返回,并重新命名Users.old
为“用户”。这一次,启动画面显示正确,但我仍然遇到用户配置文件问题。
我做错了什么?
答案1
经过多次尝试,我终于找到了答案。这个方法不起作用的原因是,在将数据从 SSD 复制到 HDD 时,所有现有连接都会被删除。这是因为需要使用/xj
标志来robocopy
阻止它陷入无限循环。
为了解决这个问题,可以使用 PowerShell 脚本可以必须做到以下几点:
- 使用以下方法将数据从 SSD 复制到 HDD:
robocopy /copyall /mir /xj C:\Stuff D:\Stuff
- 对于中的每个连接点
C:\Stuff
,在中创建一个相同的连接点D:\Stuff
- 对于 中的每个连接点
C:\Stuff
,将 ACL 权限复制到 中的相应连接点D:\Stuff
C:\Stuff
注意with的属性attrib C:\Stuff
- 删除或重命名
C:\Stuff
- 创建连接
mklink /J C:\Stuff D:\Stuff
- 将的属性应用
C:\Stuff
到连接点attrib /L C:\Stuff +H +I
(例如 - ProgramData 使用这些属性)
希望这将使一切从移动C:\Stuff
到,D:\Stuff
同时保持所有连接点、权限和属性。
但有一条“捷径”,我选择了这条路。我没有费心去做这些,而是做了一个完整的驱动器映像并将C:
其恢复到D:
(显然要确保没有文件D:
会被覆盖)。有免费软件可以做到这一点,例如Macrium Reflect 免费和驱动器映像 XML。
然后,我将所需的任何额外数据复制到 中D:
,并继续跳至上述步骤 4。之后,我删除了驱动器上不需要的所有 Windows 文件(我必须使用我的 Ubuntu USB 棒来完成这一部分)。
一切正常!