如何在分区之间移动Linux安装?


8

我有一个新的HDD,并且想要将现有的Linux安装(更具体的说是:OpenSUSE 11.1)从旧HDD上的分区移动到新HDD上的分区。

我的计划是:

  1. 使用引导CD进行引导(假设它是OpenSUSE引导CD)

    编辑 正如许多人(感谢所有人)所建议的
    1a。将所有文件从一个驱动器复制到另一个驱动器

  2. 修改/ etc / fstab挂载点添加到新分区)
  3. 修改/boot/grub/menu.conf添加启动分区)
  4. 重新安装grub

我对吗?就是这样吗
还是我错了一些重要步骤?(我很确定我做到了)


1
您错过了将文件从旧分区实际复制到新分区的步骤。有人可能说这很重要:)
cas

Answers:


4

我会说你错过了一件事。

  1. 使用引导CD进行引导(假设它是OpenSUSE引导CD)

    1a。将所有文件从一个驱动器复制到另一个驱动器

  2. 修改/ etc / fstab(将安装点更改为新分区)

  3. 修改/boot/grub/menu.conf(更改启动分区)
  4. 重新安装grub

我要说的是,如果您将新驱动器上的分区设置为与旧设置兼容,那么这应该非常简单。如果您必须在OS文件中编辑安装点位置,可能会有些复杂。我建议您使分区保持足够相似,以至于您需要做的就是引导,安装新驱动器,复制,更改引导分区,在新驱动器上重新安装grub。删除旧驱动器,您就完成了!


但是您必须小心复制。使用-a选项来设置cp。
金(Kim)

5
或使用rsync。它的优点是,如果有任何事情打断了副本,您可以再次运行rsync,它将从中断处开始而不是从头开始。按照优先顺序,适合此工作的正确工具是:rsync,tar,cp -a
cas

+1以上Craig的建议确实是个好建议。
Axxmasterr

1

您需要按照Axxmasterr的说明复制文件。其他一切对我来说都不错。其他人则遵循类似的路径:将GNU / Linux安装移至新分区

请注意用于复制文件的cp命令。使用-a选项可确保在单击符号链接并保留所有权信息时的正确行为。

有些人使用tar而不是cp将文件复制到新分区:

$ cd sourcedir; tar --create --file =-。| (cd targetdir; tar --extract --file =-)

如开头链接中所建议,您可能希望将旧条目保留在grub文件中,而仅添加一个新条目,以防需要还原。

祝好运!


我建议将此命令中的分号更改为&&(条件运算符),以便如果chdir()由于任何原因(键入,权限等)失败,则不会执行后续的“ tar”命令。另外,我建议将-S(--sparse)选项与'tar'--create一起使用,以启用对稀疏文件的处理,例如/ var / log / wtmp或/ var / run / utmp的某些实例)。
Jim Dennis

1

我认为这行得通。

如果每个硬盘上只有一个分区,并且新磁盘的大小等于或大于原始磁盘,则一种更快的方法是克隆旧磁盘(/ dev / xxx,其中xxx =原始磁盘sda ,hdb等)添加到新的(/ dev / yyy)。

因此,步骤将是:

  1. 使用现场CD引导
  2. 须藤dd if = / dev / xxx of = / dev / yyy bs = 32k

确保获取的(输入文件)和正确,否则您将破坏整个旧磁盘。


做dd也会复制文件系统,它可能不准备更改磁盘大小(即使新磁盘上有更多空间)
Joakim Elofsson

的确,新磁盘上的克隆分区大小将与旧磁盘上的原始分区大小相同,因此您需要扩展它以使用完整的新磁盘(我将使用gparted)。如果您还想更改文件系统,那么另一个答案中提到的“ cp -a”方法更好。
弗雷德·汉密尔顿,2009年

您可以使用resize2fs调整ext2-3-4文件系统的大小。其他文件系统具有类似的工具。对于ext,也可以减小文件系统的大小。我总是比cp / tar / dump方法更喜欢这种方法。
克里斯托弗·普罗沃斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.