如何从一个驱动器移动到另一个大小不同的驱动器?

如何从一个驱动器移动到另一个大小不同的驱动器?

我遇到过这种情况几次:我需要更换一个驱动器,因为我需要更多的空间,它有问题,需要移动到一个新的盒子里,等等。

将数据从一个分区大小复制到另一个分区大小的最佳方法是什么(假设目标有足够的空间)?

如果它是不同的文件系统(例如 ReiserFS 到 ext4)怎么办?

如果它只是现有系统上的新驱动器,我如何确保不需要重新安装即可使一切正常运行?

更新- 许多选项都非常可行,并且我已将这个问题更改为社区维基,因为我认为没有“正确”的答案。

答案1

使用克隆驱动器克隆Zilla,然后使用分区调整大小。保留旧的以防出错 :-)

顺便说一句,这种方式是免费的。

答案2

我过去使用的解决方案是tar。如果分区的大小和类型完全相同,则可以使用dd

以下是我对这一难题的回答:

  1. 使用 live cd 发行版启动,例如斯莱克斯

  2. 验证所需的分区是否在新驱动器上

  3. 确保新旧驱动器都已安装,/tmp/driveold例如/tmp/drivenew

  4. 从终端运行以下tar命令:

    (tar cp --xattrs /tmp/driveold/path) | (tar x /tmp/drivenew/path)

  5. 对每个需要复制的分区重复上述步骤

这对我曾经尝试过的每个分区都有效(不包括/boot,我确保分区相同,并使用dd)。

答案3

这是我喜欢 LVM 的原因之一。只需将新磁盘添加到卷组,pvmove将逻辑卷从旧磁盘添加到新磁盘,从卷组中删除旧磁盘,然后从系统中删除。如果您要替换的是启动磁盘,那么您还需要更新启动加载程序。

答案4

另一个选项是从 liveCD 启动并将旧驱动器安装为只读。这是为了防止 livecd 在复制过程中更改它。然后rsync -avz /mnt/olddisk/ /mnt/newdisk(olddisk 后面的斜杠是必需的)。正如其他人提到的,如果这是正在扩展的启动盘,则需要重新运行grub-install <new device>才能启动。

相关内容