将内部硬盘克隆到新的SSD


20

我最近在机器上安装了SSD。该机器本身是Lenovo Thinkpad W520,并且以前具有内置硬盘。我将内部硬盘驱动器移至扩展托架(替换了CD-ROM),然后将新的SSD放入内部托架。

我遇到的问题是我完全按照我想要的方式进行了Ubuntu配置-我最初花了很多时间对其进行配置,以使其恢复到现在的状态。我不想再做一次。但是,我也想从SSD上的操作系统获得启动收益。

因此,我想做的就是将Ubuntu分区克隆到SSD上。问题是标准HDD明显大于SSD。并且它具有Windows分区,我不需要在SSD上使用(我从不使用Windows,因此,如果它从其他硬盘驱动器上启动,也可以)。我的硬盘驱动器的布局如下:

/ dev / sda(SSD):型号:ATA M4-CT256M4SSD2(scsi)磁盘/ dev / sda:256GB扇区大小(逻辑/物理):512B / 512B分区表:msdos

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  147GB  147GB  primary  ext4         boot

/ dev / sdb(HDD):型号:ATA ST9500420AS(scsi)磁盘/ dev / sdb:500GB扇区大小(逻辑/物理):512B / 512B分区表:msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1259MB  1258MB  primary   ntfs            boot
 2      1259MB  269GB   268GB   primary   ntfs
 4      269GB   483GB   214GB   extended
 5      269GB   416GB   147GB   logical   ext4
 7      416GB   475GB   58.9GB  logical   linux-swap(v1)
 6      475GB   483GB   8470MB  logical
 3      483GB   500GB   16.8GB  primary   ntfs

到目前为止,我已经尝试过:

1)将/ dev / sdb5和/ dev / sda1分区的大小调整为相同大小。2)从(/ dev / sdb5)引导到Ubuntu 11.04,并运行dd if = / dev / sdb5 of = / dev / sda1(当然这会导致引导问题,所以我必须重新安装grub。)开机,但是我遇到了initrd找不到某些文件的问题……大概无法加载我认为的某些分区)。

现在,我认为这两个步骤是错误的方法,因为它将完全克隆/ dev / sdb5-在fstab中包括指向错误硬盘的引用。我不确定该如何纠正。我可以将Ubuntu 11.04安装到SSD上,然后尝试复制所有配置,但我担心会丢失某些内容,或者将覆盖fstab之类的内容,使其指向原始内容。硬盘。

请注意,目前,我仍然可以从HDD引导,因此不必立即解决这个问题,但是我确实希望它能像现在一样,以便保持当前的生产率水平(这是一台工作用的笔记本电脑)。

有关如何克服这一困难的建议?

提前致谢!

Answers:


13

有多种方法可以完成将旧系统安装到新驱动器上的工作,但是您并没有真正要求这样做,而是询问如何克隆系统。

我自己将使用live CD中的gparted,因此不会挂载任何分区。您可以将原始分区缩小到想要在SSD上的大小,然后将分区复制并粘贴到新驱动器上。如果我没记错的话,这将重用相同的UUID,但是之后可以在一个或另一个分区上更改它。为此的命令是sudo tune2fs -U random /dev/sdb5为sdb5分配UUID。

如果您不想更改旧系统,并且想要保留一段时间,则可以更改SSD分区的UUID,然后编辑fstab。实际上一点都不难,这是您应该学习的东西。对于拥有您似乎已经了解的知识的人来说,这是不言而喻的。分配了新的UUID后,您可以使用以下命令查看所有这些信息:sudo blkid -c /dev/null-参数-c指定了缓存文件,/ dev / null表示不使用缓存,因此您始终可以立即进行任何更改。我一直使用这种形式,除非您有很多分区,否则看不到任何缺点。

取得UUID后,您可以使用gedit或您喜欢的任何文本编辑器将其复制并粘贴到/ etc / fstab中的旧文件上。

不过,就我个人而言,我不会花时间先调整分区大小,而只是将旧安装复制到新磁盘上。如果您不知道如何将GRUB安装到mbr,则可能要先安装基本的Ubuntu,然后备份/ etc / fstab,在其上复制旧安装,然后从新安装中复制fstab,以便只有正确的条目。


这非常有帮助,谢谢。我将尝试一下,看看是否可以使它正常工作。然后,我会回来接受答案或询问您更多有关此问题的信息。;)
jwir3 2012年

1
我已经使用现场安装CD了很多次,因为它具有您所需的大多数内容。但是我使用的最好的实际救援映像是System Rescue CD。这张可引导CD(也可以作为USB记忆棒使用)在某些东西(或某人,将保持匿名)擦掉之后,多次修复了GRUB。它具有gparted,grub工具以及您想要修复linux安装的所有其他功能,而没有太多开销。这是您要问的事情吗?
马蒂·弗里德

1
不客气,祝你好运。
马蒂·弗里德

1
这很好。我不太确定的一件事是如何配置grub,更具体地说,配置grub旧版与grub2的方式非常不同。安装grub2(apt-get install grub2)后,我将以下内容用作其参考:dedoimedo.com/computers/grub-2.html我最初是采用grub2安装方法的,而实际上是在我的系统上安装了grub-legacy。
jwir3'4

1
啊,是的,可爱的grub,它得到了改进,grub2(新功能!已改进!现在更加复杂!)。对不起,都是我的错 我已经完全了解了旧的grub,所以他们当然改变了它。然后,当我以为我要使用grub2时,他们做了一些较小的更改,与以前的版本不兼容。这就是为什么我建议首先进行基本安装的可能性,只是为了设置grub。但这是学习grub的一个好主意,实际上并不是那么复杂。您现在切换到grub2了吗?
马蒂·弗里德

5

从livecd引导,安装两个驱动器,然后使用复制文件sudo cp -ax /media/source /media/dest。在目标位置上编辑/ etc / fstab以指向正确的UUID(使用查找blkid),然后重新安装grub。


那就是我要做的,但是花了我很长时间才了解grub2-主要是由于我阅读了无数种不同的方法,但似乎都不是完整的。您的帖子假设此人与您处于同一水平,或者您只是假设他将询问未知的部分(可能没问题)。但奇怪的是,您指定了最简单的部分,复制命令,并掩盖了较难的部分。:)
马蒂·弗里德

3
@MartyFried,一个快速的谷歌跳到了help.ubuntu.com/community/Grub2#Reinstalling_GRUB2,它说这就像grub-install --root-directory /mnt /dev/sda在/ mnt中安装Ubuntu分区后运行一样简单;)
psusi 2012年

嗯,很高兴听到他们对文档进行了改进或添加。对我来说已经有一段时间了,但是当我尝试使用它时,即使GRUB官方文档也不是完全正确的。另外,GRUB2发生了版本更改,导致其失败并显示模糊的错误消息。但是我以前经常光顾的Ubuntu论坛的问题是,有很多错误信息在不断重复,直到几乎不知道他们在说什么的人(不是每个人)都变成事实,但是有时候很难解决。
马蒂·弗里德

2

dd if=/dev/sdb5 of=/dev/sda1如果您的系统是从/dev/sdb5自身运行(并且可能不是以只读方式安装),我建议避免使用。

跨分区复制的另一种方法是从实时CD(或USB)启动并启动GParted。您可以使用Ctrl + C / Ctrl + V将分区从一个磁盘复制到另一个磁盘。

复制一份(也许在重新启动后需要刷新分区表),仍然从活动CD上,使用终端挂载新的根分区:

sudo mount /dev/sda1 /mnt

然后,编辑/mnt/etc/fstab以指向正确的位置。


1
如果您dd使用实时CD,则无需编辑fstab,前提是该文件使用UUID(应使用UUID)。
Alecz

0

bash脚本可clone-ubuntu.sh自动执行已接受答案的概述步骤。提供菜单使新分区易于查找:

clone-ubuntu.png

请访问上面的链接以获取脚本的副本和要考虑的重点,例如:

  • rsync 用于克隆引导分区,并且系统虚拟目录已正确跳过。
  • /etc/fstab 将使用正确的UUID更新目标克隆的副本以进行引导。
  • /etc/grub/grub.cfg 已更新为无缝grub引导。
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.