550 字
3 分钟
在 PE 中迁移 Users 到新磁盘(仅 GUID 链接方案)
这篇只保留 GUID 建链 方案,不使用目标盘符(如 D:\Users)做链接目标。
方案前提
- 你在 PE 里操作,系统盘与目标盘在 PE 下盘符可能变化(例如
E:、F:)。 - 复制阶段可以使用 PE 盘符,但 建立链接时只用 Volume GUID。
- 全程在管理员 CMD 执行。
第一步:确认源路径与目标路径(PE 下)
假设:
- PE 下系统盘(源)是
E: - PE 下目标盘是
F: - 需要迁移
E:\Users到F:\Users
第二步:复制 Users(保留权限与所有者)
robocopy "E:\Users" "F:\Users" /E /COPYALL /DCOPY:DAT /XJD /R:1 /W:3 /MT:8 /TEE /LOG:"F:\users-migrate.log"参数说明(重点):
/E:复制所有子目录(含空目录)。/COPYALL:复制数据、属性、时间戳、ACL、所有者、审核信息。/DCOPY:DAT:目录也复制数据/属性/时间戳,减少权限与时间信息偏差。/XJD:排除目录联接,避免递归复制到链接导致死循环。/R:1:失败重试 1 次(已按你的要求改为 1)。/W:3:每次重试等待 3 秒。/MT:8:8 线程复制,速度更稳定。/TEE:屏幕与日志同时输出。/LOG:"F:\users-migrate.log":输出完整日志,便于回看失败文件。
第三步:保留旧目录备份
ren "E:\Users" "Users.bak"第四步:获取目标卷 GUID
mountvol在输出中找到目标盘对应的 GUID,例如:
\\?\Volume{adc12345-1234-1234-1234-123456789abc}\第五步:仅用 GUID 建立 Junction
mklink /J "E:\Users" "\\?\Volume{adc12345-1234-1234-1234-123456789abc}\Users"参数说明:
/J:创建目录联接(Junction)。- 第一个路径
"E:\Users":系统盘下要恢复出来的Users入口。 - 第二个路径
"\\?\Volume{...}\Users":真实目标目录,使用卷 GUID,不依赖盘符映射。
第六步:检查与重启
- 在 PE 中进入
E:\Users,确认能看到目标盘中的用户目录内容。 - 重启并进入 Windows,验证桌面、用户配置、应用是否正常。
- 确认一切无误后,再删除
E:\Users.bak释放空间。
常见问题
1. mklink 提示权限不足
你不是管理员 CMD,重新以管理员权限打开命令提示符。
2. 找不到目标卷 GUID
先确认目标卷已挂载并可读写,再执行一次 mountvol。
3. 启动后用户配置异常
优先检查复制命令是否包含 /COPYALL,以及是否复制完整(查看 users-migrate.log)。
在 PE 中迁移 Users 到新磁盘(仅 GUID 链接方案)
https://iiii.fun/posts/win/migrate-users-guid/