标题: 无损迁移C盘 https://scz.617.cn/windows/201610131143.txt 说一下背景。 需要将旧硬盘的C区无损迁移到新硬盘的C区,新旧硬盘大小以及新旧C区大小都不一 样,因此dd类的操作就不要想了。 以前我是用WinPE启动,然后在Explorer中复制旧C区的所有文件、目录到新C区。 2008年迁移XP时没碰上大问题,2016年9月迁移Win7时碰上麻烦,"junction point"、 "symbolic link"无法复制过去,还有一些其他与SID、NTFS权限相关的麻烦,总之不 太顺利。当然,我在善于制造麻烦的同时相对也比较善于解决麻烦,所以这些坑都被 我填了。填得不完美,可能仍然有大大小小的后遗症陆续等着我,我不怕。 其中一个坑就是"junction point"、"symbolic link"无法复制过去,需要在新C区上 重建它们。我写了篇: 《手工重建Win7中的"C:\Documents and Settings"》 https://scz.617.cn/windows/201609261438.txt 这里只是介绍普遍原理,没有列出需要重建的全部对象。因为敢这么干的人,不需要 这个列表,需要这个列表的人,也不建议这么干。 微博上一兄弟(@S1ng13D0g-L3ak13Ss)看了上文之后,说可以在WinPE中用DiskGenius 进行盘对盘直接拷文件,上次就这么迁移系统,并且激活没丢。即使硬盘、分区大小 不一样,也可以。 当时没功夫也没条件实测,昨天弄来两块硬盘,实测了他的办法: DiskGenius->克隆分区->按文件复制(可消除碎片) 这种方式不要求源、目标分区大小完全相同,只要求目标分区不小于源分区。这种复 制方式,是在NTFS级别直接处理的,未经Explorer转一手,可以避免很多Explorer带 来的麻烦,比如可以复制"junction point"、"symbolic link",不会碰上NTFS权限 相关麻烦。 下次迁移系统时我会使用他这个办法,比在Explorer中复制强太多,更好、更快。 显然,这种方式不会涉及MBR、PBR、分区活动标志等扇区级的数据,因此,标题写的 是"无损迁移C盘"。 对于Win7,如果你的激活破解涉及PBR,必须额外处理,前述复制过程不够。 顺便说一下BCD相关的坑。 Boot\BCD中对硬盘、分区的指定,好像在底层使用了GUID/UUID一类的技术,达到一 种绝对路径的效果,新盘BCD中的硬盘、分区信息仍然指向旧盘。如果执行bcdedit时 旧盘在线,就能清楚地看到这种效果。如果执行bcdedit时旧盘离线,新盘BCD中的硬 盘、分区信息将显示成Unknown一类的。bcdedit并未将底层的GUID/UUID信息展示出来, 很容易带来困挠,比如显示成Unknown,只是说找不到这个硬盘或分区了,并不是未设 置。BCD的这种搞法,给迁移系统带来一定麻烦,扇区复制不能避免问题,必须手工 bcdedit进行修正。 前面说,我不怕,其实是自己给自己壮胆,内心还是蛮怕的。像这种所谓的无损迁移, 非业内人士还是轻易不要尝试了。在知其然不知其所以然的情况下,即使这次没遇鬼, 难免下次不遇鬼。DiskGenius、BOOTICE、bcdedit、WinPE并不是小白工具,就算是 业内人士,万一手抖写错了目标,天塌了。