如何将我的整个 ubuntu 系统复制到另一台计算机并运行?

如何将我的整个 ubuntu 系统复制到另一台计算机并运行?

我花了很多时间来配置我的笔记本电脑(128 GB SSD,使用 60 GB),因为我安装了 MATLAB、LaTeX、Mathematica 和一些模拟软件。如果我可以将整个 SSD 复制到另一台笔记本电脑的 SSD 上,我就不想在另一台笔记本电脑上重复配置/安装这些东西了。

我找到了较旧的帖子如何将我的 Ubuntu 系统(笔记本电脑)复制到另一台笔记本电脑?但是他们推荐CloneZilla,它对系统包大小有限制(不超过4GB),也许有更好的解决方案?

答案1

克隆Zilla运行完美。
它生成小图像文件,具有完整性检查,并且运行速度快。

如果你想使用第三个设备作为图像存储库,你应该选择设备图像创建第一个磁盘的映像时图像设备当您将其恢复到第二个磁盘时。

如果你只想使用两个磁盘 - 你应该使用设备-设备模式。

您可能希望生成新的 UUID、SSH 密钥(如果安装了 SSH 服务器)并更改主机名。

答案2

我确信有很多方法,所以预计其他人会有截然不同的答案。

对于这种情况,如果您有一个驱动器底座,它会很有帮助:一个可以在笔记本电脑外部放置额外 SSD 的 USB 设备。我将专注于这样的安排。我还假设您习惯从命令行执行操作。我将主要使用默认安装的软件。

我会使用安装介质(例如包含您的 Ubuntu 版本的 DVD)运行,然后选择“试用 Ubuntu”,这样您就不会从要复制的驱动器运行。打开终端(单击桌面并输入Ctrl- AltT)。成为超级用户(sudo -i并使用您的用户密码)。

该命令df -h将为您提供一个可读的分区列表。您可能会发现 SSD 上的所有内容都列为/dev/sda<something>。因此,这/dev/sda将是您要复制的所有内容的来源。

你可以

ls -l /dev/sd*

显示硬盘及其分区。您应该只会看到 下的内容/dev/sda

现在将目标 SSD 放入驱动器底座并启动它。

现在,再试一次:

ls -l /dev/sd*

我希望至少看到/dev/sdb,也许还有一些编号的分区。如果是这样,一切都很好,只是你应该说服自己你真的想销毁所有这些/dev/sdb分区。如果你只有/dev/sdb它自己,就没有分区。

现在,如果两个 SSD 驱动器大小相同,事情就变得非常简单了。只需复制整个驱动器即可。我通常的方法是

dd if=/dev/sda of=/dev/sdb bs=102400

if=命名源(“输入文件”)并of=命名目标(“输出文件”)。不要颠倒这些!

bs=给出一个块大小,这里大约是 100K。默认值只有 512 字节,而且会非常慢。你希望它至少是 1024 的倍数。由于有零,所以它是 4096 的倍数。

结果会起作用,但有点奇怪,因为所有分区的 UUID 也被复制了。奇怪的是“UUID”代表通用唯一 ID,而它们不再是唯一的。这个问题可以修复,但最好将其放在一个单独的问题中。在修复之前,不要尝试在同一台机器上使用两个驱动器做任何事情,因为内核可能会搞不清楚哪个分区是哪个。复制完成后立即将副本从底座中取出。

如果目标驱动器比笔记本电脑中的驱动器大,并且笔记本电脑驱动器具有旧的 MSDOS 分区表,则您仍然可以使用此技术,但驱动器末尾会有一些未分配的空间。

在所有其他情况下,您可能需要调整分区大小,然后单独复制它们。在其他问题中,这也可能是最佳选择。

如果您要问另一个问题,我建议您提及一些其他信息:

  1. 驱动器大小是多少?您说现有的驱动器是 60 GB,但它的标签可能还列出了 LBA 的数量,可以提供更多详细信息。
  2. 现有分区表的类型是什么?几乎可以肯定是 MSDOS 或 GPT。您可以从 gparted 等工具中查找。

相关内容