我如何将整个Ubuntu系统移动(复制)到另一个硬盘上?


57

我安装了Ubuntu的HDD即将失败。我宁愿不失去3年的数据,定制和应用程序价值。我正在寻找一种将整个系统(包括SWAP,因为我不确定是否可以将系统重新链接到新的SWAP分区)移动到另一个HDD的方法。但不是完整的HDD,<仅是包含Ubuntu的分区,而是另一个HDD上的分区。基本上,我想做的就是在Windows安装中使用Norton Ghost所做的事情。我曾考虑过使用Clonezilla,但我认为GRUB会出现问题(特别是尝试从与conf文件中不同的UUID引导)。你知道这有什么办法吗?

PS,我的主目录已加密,但这不是真正的问题,因为我可以解决此问题。

编辑:更改说明以使其更清楚

Answers:


30

我实际上最终使用了Live CD中的Gparted。我复制了分区并将其粘贴到另一个HDD的未分配空间中。然后,我使用blkid检查UUID并编辑了fstab文件。像魅力一样工作!


5
如果出于某种原因(例如,需要更多空间)在同一系统内移动分区,则必须在更改fstab之前更改新分区的UUID,因为该分区的UUID与原始分区的UUID相同(请参见askubuntu)。 com / questions / 109938 / change-hdds-uuid
Greg Kramida 2015年

这是因为我爱linux的原因
deFreitas

如果要用新的引导驱动器替换旧的引导驱动器,则还需要在其上安装grub。如果要添加新驱动器或替换数据驱动器,则无需执行此操作。
David C.

9

好吧,我只是使用USB记忆棒+ Ubuntu Live。

我正在将ubuntu 13.10从较大的HDD转移到较小的ssd,并且clonezilla“说”不能这样做,因为目标分区小于源分区。

因此,我开始了ubuntu live的安装,同时挂载了两个硬盘(新磁盘,当然已经分区了,别忘了swap;)),然后:

cd /media/ubuntu/old-hdd-uuid/

然后:

sudo cp -R --preserve=all bin/ boot/ cdrom/ dev/ etc/ home/ lib/ lib32/ lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ /media/ubuntu/new-hdd-uuid/

上面您可以看到,它只是将所有目录从一个硬盘复制到另一个硬盘,并以递归方式保留了所有权限和内容。

cd /media/ubuntu/new-hdd-uuid/

然后我必须在新磁盘的根目录中进行两个符号链接:

sudo ln -s boot/vmlinuz-x.xx.x-xx-generic vmlinuz
sudo ln -s boot/initrd.img-x.xx.x-xx-generic initrd.img

下一步是安装grub,因此:

sudo grub-install --boot-directory=boot/ /dev/sdxy

其中x-设备,y-分区号(如果不确定,请使用cfdisk或fdisk打印分区表...)

最后一步是,将新硬盘的uuid从旧硬盘更改为uuid(这是愚弄grub config,fstab或不搜索并修复配置的最简单方法)

sudo tune2fs /dev/sdxy -U OLD-UUID

重新安装设备后,将显示新的UUID。因此,现在重新启动,如果一切正常,您的ubuntu应该会启动...


4

您可以使用dd来完成。有关完整的信息,请检查站点。

使用Ubuntu Live CD克隆硬盘

警告 dd是一种非常强大的底层工具,即使是一个小的错字也足以清除整个磁盘。请非常小心地使用它,并尽可能使用更高级别的工具。
另请注意,此方法仅在目标磁盘大小相同或更大时才有效


克隆硬盘驱动器是一项常见的维护任务。不必费心刻录新的引导CD或购买新软件,您可以使用Ubuntu Live CD轻松完成此操作。

您不仅可以使用Ubuntu Live CD进行此操作,而且还可以立即使用,无需其他软件!我们将使用的程序称为dd,几乎所有Linux发行版都包含该程序。dd是用于执行低级复制的实用程序-而不是处理文件,它直接对存储设备上的原始数据起作用。

您还可以使用:

Clonezilla,一个免费的硬盘克隆软件。Clonezilla从实时CD运行,并具有简单的用户界面。当然,您仍然需要知道自己在做什么,但是此工具可以通过逐步分解来极大地简化您的工作。

您可以在这里下载Clonezilla

警告开始之前,请确保您已签出Clonzilla的限制。

您还提到过,您已经将Ghost用于Windows,也可以将Ghost用于Linux

资料来源:http : //www.howtogeek.com/howto/19141/clone-a-hard-drive-using-an-ubuntu-live-cd/

资料来源:http : //www.makeuseof.com/tag/2-methods-to-clone-your-linux-hard-drive/


dd也只允许复制分区吗?如= / dev /
sda3的

提供两个驱动器的大小相同。而命令在您的情况下是dd if = / dev / sd3 of = / dev / sd2
Mitch

谢谢,但是分区位于两个不同的物理驱动器上,即/ dev / sda和/ dev / sdb。将sd3和sd2用作描述符复制到一个物理驱动器中吗?
boywithaxe 2012年

这些驱动器不必具有相同的大小,唯一的要求是您要将信息复制到的驱动器大于要复制的驱动器。
布鲁诺·佩雷拉

1
ddrescue由于硬盘故障,此处将是一个更好的选择。
Ciro Santilli新疆改造中心法轮功六四事件

4

几年前,我成功使用此工具“克隆”了我的分区:G4L。一切都可以在安装后进行一些更正,例如调整分区的大小(我将分区克隆为其他大小的HD)和grub重新安装(这非常简单,您只需要一个实时CD即可将其重新安装到MBR中)。

您可以放心地忽略交换分区(您将能够再次创建交换分区),也可以对其进行克隆并稍后通过手动编辑/etc/fstab或从命令行激活它。

在过去的几周中,我再次使用clonezilla进行了克隆,并且进行了相同的克隆后更改,一切正常。因此,请放心尝试一下,原始HD上的任何内容都不会被触碰!

编辑:

我发现一封旧邮件描述了第一个克隆过程。我的行为如下:

  • 完全按照旧的方式对通过USB连接的新HD进行了分区
  • 使用G4L以原始模式克隆了分区
  • 用Live CD引导,并使用resize2fs调整分区大小
  • 将HD与USB断开连接并安装在SATA / PATA上。
  • 再次使用Live CD引导并安装了新磁盘:

    mkdir disk
    mount /dev/sda1 disk        (where sda1 contains boot and root partitions)
    mount /dev/sda2 disk/boot   (if you have a different boot partition) 
    mount --bind /dev/ disk/dev/
    mount -t proc none disk/proc
    chroot disk /bin/bash
    grub-install /dev/sda       (to install GRUB on sda MBR)
    
  • 重新启动,检查交换

  • 请享用

3

@boywithaxe-关于您对Mitch 答案的评论,您确实可以通过执行复制相关分区dd if=/dev/sdb3 of=/dev/sda3。这实际上是最简单的部分。最棘手的部分是,您还必须挂载新复制的分区以及其他几个分区,并安装grub(grub-install /dev/sda)(在重新引导之前添加交换分区(如果要克隆可引导分区))。使用这种方法就不需要resize2fs

我只需要自己做一次,在Ubuntu 14.04(非RAID)上进行Windows升级后,我使用了Boot修复茉莉花 answer的组合

因此,从liveCD启动后:

dd if=/dev/sdb3 of=/dev/sda3

完成后,

sudo mount /dev/sda3 /mnt 

sda3包含最近复制的启动和根分区)

sudo mount --bind /dev/ /mnt/dev/

sudo mount -t /proc none /mnt/proc

sudo chroot /mnt

sudo grub-install /dev/sda 

请注意,这是sda而不是sda3

update-grub

exit
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.