dd 命令导致分段错误,现在卡在 shell 中

dd 命令导致分段错误,现在卡在 shell 中

我对 Linux 还很陌生,并且遇到了一些问题。

目标:我有两台运行 Debian 9 Stretch 的机器,我想将其中一台机器克隆到另一台机器上。

我做的第一件事是将外部硬盘驱动器连接到第一台机器,并使用以下命令将所有内容复制到其中。

sudo dd if=/dev/sda1 of=/dev/sdb1 bs=10M && sync

我仍然不确定这是否是复制它的正确方法,或者是否使输出等于 .img。

无论如何,我将外部硬盘驱动器连接到第二台机器并执行以下 dd 命令

sudo dd if=/dev/sdb1 of=/dev/sba1 bs=10M conv=noerror,sync

我不断收到关于 I/O 的错误,但最终它完成了,接近尾声时它说内存不足。它创建了新分区并且内部驱动器被填满。

我检查了 /etc/rc.local 文件,它似乎已损坏。我重新启动后,在启动时出现了一堆带有 rc.local 的行。

我决定启动到恢复模式,由于某种原因,它像我的第一台机器一样启动,具有相同的目录和所有内容。

回顾我的 dd 命令,我觉得我应该输入sda代替sda1

我再次执行了 dd 命令并意识到也许我应该改变sdb1深圳发展银行以及。

我在大约 30 秒后停止了命令并尝试纠正该线路。

当我重新执行该行时,我收到一条回复说分段错误。

我之后输入的任何命令都会给我这个答复。

然后执行重新启动并将我带到 EFI shell 屏幕,现在我被困在该屏幕上。

我可以做些什么来解决这个问题吗?

答案1

这不是克隆系统的好方法。如果复制/dev/sda1/dev/sdb1,则将驱动器的第一个分区复制sda到驱动器的第一个分区sdb。它不会复制引导程序或其他任何内容。如果sdb驱动器实际上没有分区表(或者sdb驱动器上的分区设置不正确),它也不会做正确的事情。

如果两个驱动器相同(或者至少,如果它们的大小完全相同),并且您确实想要使用dd,则需要复制/dev/sda/dev/sdb.

如果两个驱动器不相同,我建议使用类似的东西克隆属克隆系统。 Clonezilla 将正确处理引导程序和分区表,并将考虑源系统和目标系统之间驱动器大小的差异。

另外,您没有提到在第二个系统(您想要复制到的系统)上如何将dd外部驱动器的内容复制到系统的硬盘驱动器上。如果您尝试通过实际启动第二个系统并将外部驱动器的内容复制到系统的硬盘驱动器(在系统运行时)来执行此操作 - 从您的描述来看,我担心您可能已经这样做了 - 这绝对不是开始工作,并且会在系统运行时破坏第二个系统上的文件系统。要成功完成此操作,您需要从其他来源(例如可移动介质上的实时 Linux 发行版映像)引导第二个系统,并在dd从该来源引导时执行此操作。

相关内容