答案1
通常我会建议一个解决方案,例如“使用外部外壳连接第二个硬盘驱动器,从 Linux CD 启动,然后使用诸如 之类的命令dd if=/dev/sda of=/dev/sdb bs=1G
,但由于您想使用相同的技术进行工作,我有可能是更好的解决方案。
我所有的服务器和笔记本电脑都在工作时使用克隆属。有两种使用方法...其中一种使用专用服务器,对您来说可能有点过分,另一种使用启动 CD 和外部硬盘驱动器。
这个想法是,您使用 Clonezilla CD 启动并拥有一个较大(比源驱动器更大)的外部 USB 驱动器。 Clonezilla 会引导您制作现有驱动器的映像,然后关闭机器电源,更换驱动器,然后重新启动到 Clonezilla,它会引导您恢复数据。
这使您有机会 A) 将映像放在更大的驱动器上,B) 保留数据的备份。
答案2
您的第一个任务是将两个磁盘连接到现有的 Linux 系统或将新磁盘连接到原始系统。
你一定是非常小心,因为将空白磁盘复制到好磁盘上非常简单!
要最终获得引导扇区和所有内容,您可以执行以下操作:
dd if=/dev/hdx of=/dev/hdy
hdx
你的40G盘在哪里,hdy
你的160G盘在哪里。您会注意到没有像 之类的分区号/dev/hdx1
。这会复制整个磁盘、分区信息等。
您的新磁盘将与旧磁盘一样,分配 40G。当它放回笔记本电脑时,它应该会立即启动。希望你用过LVM?否则希望您没有使用所有分区?跨越这一点需要更多的信息。
另一种解决方案是转储每个单独的分区。这需要更多的态势感知,因为您需要重新创建启动信息。
所有这些最适合用于克隆计算机,而不是升级硬盘。使用备份恢复到新安装要好得多。
答案3
当你能使用 dd 来复制磁盘,这样做有很多缺点:
- 目标的大小必须与源的大小完全相同或更大
- 复制后,您需要调整分区大小以使用任何额外空间
- 您将浪费时间复制可用空间
- 旧磁盘中存在的任何碎片都会被保留
使用 Ghost4Linux、partclone 或 Clonezilla 等映像程序至少可以处理数字 2 和 3。您还可以简单地格式化新磁盘,安装它,并使用cp -ax
(以 root 身份)复制所有文件,然后重新安装新驱动器上的引导加载程序。该方法没有任何上述缺点。
答案4
你问如何用 dd 来做到这一点,但我更好地成功地通过管道输出倾倒进入恢复。鉴于来源广告1s1a和目标广告2s1a:
$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a | restore -rf -
我在 FreeBSD 上尝试过这个,实际上我在FreeBSD 论坛