将内部 HDD 克隆到新的 SSD

将内部 HDD 克隆到新的 SSD

我最近在我的计算机上安装了一块 SSD。这台计算机本身是 Lenovo ThinkPad W520,之前有一个内置 HDD。我将内置 HDD 移入扩展托架(替换 CD-ROM),并将新的 SSD 放入内置托架。

我遇到的问题是,我的 Ubuntu 配置与我想要的完全一致 - 我最初花了很多时间配置它,才让它变成现在的样子。我不想再这样做了。但是,我也希望从 SSD 上的操作系统中获得启动增益。

因此,我想要做的是将我的 Ubuntu 分区克隆到 SSD 上。问题是标准 HDD 比 SSD 大得多。而且它有一个我在 SSD 上不需要的 Windows 分区(我从不使用 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) 启动 Ubuntu 11.04(从 /dev/sdb5)并运行 dd if=/dev/sdb5 of=/dev/sda1(当然这会导致启动问题,所以我不得不重新安装 grub。我可以让它启动,但是我遇到了 initrd 找不到某些文件的问题...我想可能是它无法加载某些分区)。

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

请注意,目前,我仍然可以是从 HDD 启动,因此我不需要立即解决这个问题,但我希望它和现在完全一样,这样我就可以保持当前的生产力水平(这是一台工作笔记本电脑)。

关于如何克服这个困难,您有什么建议吗?

提前致谢!

答案1

有多种方法可以将旧系统迁移到新驱动器,但您实际上并没有以这种方式询问,而是询问如何克隆系统。

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

如果您不想更改旧系统,并且想暂时将其挂载,则可以更改 SSD 分区的 UUID,然后编辑 fstab。这其实一点也不难,您应该了解一下。对于拥有您似乎已经掌握的知识的人来说,这非常不言自明。分配新 UUID 后,您可以使用以下命令查看所有 UUID:sudo blkid -c /dev/null- 参数 -c 指定缓存文件,/dev/null 表示不使用缓存,因此您始终可以立即获得任何更改。我总是使用这种形式,除非您有很多的分區。

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

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

答案2

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

答案3

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以指向正确的位置。

答案4

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

克隆-ubuntu.png

访问上面的链接获取脚本的副本和需要考虑的重要事项,例如:

  • rsync用于克隆启动分区并且系统虚拟目录被正确跳过。
  • /etc/fstab目标克隆已使用正确的 UUID 进行更新以进行启动。
  • /etc/grub/grub.cfg已更新以实现无缝 grub 启动。

相关内容