我想将硬盘从一台 Windows 7 x64 笔记本电脑复制到另一台具有相同硬件但硬盘略小的笔记本电脑。通常我会使用 ghost4unix 或类似程序来克隆 C: 并忽略 D:(第二个分区,上面没有重要内容),但第一台笔记本电脑上的驱动器使用 Trucrypt 全盘加密进行保护。
如果我要移动到大小相同的驱动器,我只需逐块地 dd 整个驱动器,但在这种情况下行不通。在这种情况下复制系统的最佳方法是什么?
答案1
目前我能想到的唯一解决方案是需要第三个驱动器来进行中间复制。如果有人能想到更简单的方法,请随时提出。
我找到了一个参考Ubuntu 论坛听起来很有希望。看起来你应该能够将 TrueCrypt 卷挂载为回送设备,而无需挂载文件系统:
truecrypt --filesystem=none /dev/sdx#
其中 /dev/sdx 是驱动器,# 是分区。然后使用以下命令列出您的 TrueCrypt 卷:
truecrypt -l
它将打开一个窗口,其中列出如下条目:
1: /dev/sdx# /dev/loop0 -
现在您应该能够从 /dev/loop0(或列出的任何循环设备)执行 dd 操作到另一个大小相同或更大的(中间)硬盘驱动器。
将分区复制到中间硬盘后,您应该能够使用可以安全缩小 NTFS 分区的克隆工具(Ghost、Acronis TrueImage 等)将其克隆到较小的笔记本电脑硬盘上。(不幸的是,ghost4linux 文档在这方面听起来不太有希望,因此您可能需要在复制之前再做几件事——请继续阅读……)
如果你没有支持在映像过程中安全调整大小的磁盘映像程序,则可以使用ntfs调整大小首先安全地缩小中间驱动器上的分区。
首先确认分区理论上是否可以缩小到您需要的大小:
ntfsresize --info /dev/sdy#
其中 sdy# 是中间驱动器上新复制的分区。
如果最小可能尺寸小于或等于其他(较小)笔记本电脑硬盘的尺寸,则可以测试调整分区大小:
ntfsresize --no-action --size ##G /dev/sdy#
其中 ## 是以 GB 为单位的大小(为清楚起见,为 10^9),小于或等于您的小型笔记本电脑驱动器。如果此操作正常,您可以继续调整大小(这次是真实的):
ntfsresize --size ##G /dev/sdy#
最后,使用 ghost4linux 或其他克隆软件将分区从中间驱动器复制到较小的笔记本电脑硬盘上。