Skip to content

标题: 手工重建Win7中的"C:\Documents and Settings"

https://scz.617.cn/windows/201609261438.txt

说一下背景。

硬盘坏了,但OS还能启动。为了止损,新买了硬盘。不想重装OS,打补丁很费劲。这 还是小事,各种应用的细节化配置太多,老系统已经用顺手了。没有用dd,因为旧盘、 新盘不是一般大小,分区大小也不一样,后者扩容了。

我用TK当年用过的歪招,让原系统盘以数据盘形式出场,在旧盘、新盘之间进行最简 单不过的文件复制,以此完成系统迁移。

说起来蛮简单的,可以在WinPE环境中操作。2008年我这样迁移过一台IBM-T43上的XP, 原系统不涉及MBR/PBR的小动作,当时只是简单复制完成迁移。这次是Win7,激活破 解涉及到PBR,文件复制就不够了,必须设法修改新盘上的PBR。如果你的原系统不涉 及MBR/PBR的小动作,理论上文件复制足矣;即使这样,也有一个小坑需要注意,比 如MBR模式的盘(相比GPT模式的盘)需要指明活动分区,你得确认"活动"标志已经就位。

上面只是背景,本文正题是下面这些内容。

在WinPE中你会发现有些目录拷不动,比如:

C:\Documents and Settings C:\Users\All Users C:\Users\Default User

最终新盘上没这三个文件夹,系统仍然正常运转中。但不能这样善罢甘休。

Win7中,上述第1、3项是两个"junction point",第2项是"symbolic link"。它们只 是为了一些向后兼容性而出现的,所以即使没有它们,迁移后的系统仍然正常运转。

关于"junction point"、"symbolic link",你可能听说过,但有90%的可能你被不精 准的术语误导过,我有篇简介澄清过一些混乱不堪的术语:

《shortcut/hard link/junction point/symbolic link简介》 https://scz.617.cn/windows/201510151343.txt

前面说了,在WinPE中你拷不动前述三项,但它们真正对应的目标可以正常拷贝。那 么理论上可以在迁移后的Win7系统中手工恢复这三个文件夹:

mklink /J "C:\Documents and Settings" C:\Users mklink /D "C:\Users\All Users" C:\ProgramData mklink /J "C:\Users\Default User" C:\Users\Default

cacls.exe "C:\Documents and Settings" /S:"D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)" cacls.exe "C:\Users\All Users" /S:"D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICIIO;GA;;;CO)(A;OICI;0x1200a9;;;BU)(A;CI;DCLCRPCR;;;BU)" cacls.exe "C:\Users\Default User" /S:"D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"

这些DACLs采集自正常安装的Win7系统。