如何使用 DD 将数据从旧驱动器迁移到新驱动器?

Ste*_*ski 33 storage linux freebsd partition cloning

我正在将笔记本电脑上的内置 SATA 硬盘从 40G 驱动器升级到 160G 驱动器。我有一个带有 SATA 卡的 Linux/Ubuntu 桌面。我实际上想为工作中的几个 CentOS 和 FreeBSD 机器做同样的事情,而且这似乎有相同的解决方案。

听说可以用DD把40G的分区镜像到160G的驱动器,也可以把40G的分区作为镜像保存在本地系统上,然后把那个40G的镜像复制到160G的驱动器上。

谁能描述我如何做到这一点?我是否需要任何其他实用程序,例如gparted

Mat*_*ons 17

通常我会建议,如“使用外部的外壳,从Linux光盘引导挂钩第二硬盘驱动器的解决方案,然后使用命令如dd if=/dev/sda of=/dev/sdb bs=1G,但因为你要使用的工作相同的技术,我有什么可更好的解决方案。

我所有的服务器和笔记本电脑都使用Clonezilla在工作中成像。有两种使用方法……其中一种使用专用服务器,对您来说可能有点过分,另一种使用引导 CD 和外部硬盘驱动器。

这个想法是您使用 Clonezilla CD 启动并拥有一个更大(比源驱动器更大)的外部 USB 驱动器。Clonezilla 会引导您制作现有驱动器的映像,然后关闭机器电源,更换驱动器,然后重新启动到 Clonezilla,它会引导您恢复数据。

这使您有机会 A) 将映像放在更大的驱动器上,以及 B) 保留数据备份。


Ste*_*ski 6

您的首要任务是将两个磁盘连接到现有的 Linux 系统或将新磁盘连接到原始系统。

您必须非常小心,因为将空白磁盘复制到好磁盘上非常简单!

要结束引导扇区和所有内容,您可以执行以下操作:

dd if=/dev/hdx of=/dev/hdy
Run Code Online (Sandbox Code Playgroud)

hdx你的40G盘在哪里,hdy你的160G盘在哪里。您会注意到没有像/dev/hdx1. 这会复制整个磁盘、分区信息等。

您的新磁盘将与旧磁盘一样,分配 40G。放回笔记本电脑时,它应该会立即启动。希望你用过 LVM?否则希望你没有使用所有的分区?超越这一点需要更多的信息。

另一种解决方案是转储每个单独的分区。这需要更多的情境意识,因为您需要重新创建引导信息。

所有这些最适合用于克隆计算机,而不是升级硬盘。使用备份还原到新安装会好得多。


psu*_*usi 6

虽然您可以使用 dd 来复制这样的磁盘,但这样做有许多缺点:

  1. 目标必须与源完全相同或大于源
  2. 复制后,您需要调整分区大小以使用任何额外空间
  3. 您将浪费时间复制可用空间
  4. 保留旧磁盘中存在的任何碎片

使用像 Ghost4Linux、partclone 或 clonezilla 这样的映像程序至少可以处理数字 2 和 3。您也可以简单地格式化新磁盘,挂载它,并使用cp -ax(以 root 身份)复制所有文件,然后重新安装新驱动器上的引导加载程序。这种方法没有上述任何缺点。