我能在运行操作系统的同时将数据从当前硬盘复制到另一个硬盘吗?

我能在运行操作系统的同时将数据从当前硬盘复制到另一个硬盘吗?

我最初的想法是这是一个坏主意。

但让我们假设我无法将 USB 记忆棒带入实验室来运行实时 Linux 发行版,并且我的计算机只有 2 个 SATA 端口。我有一个 80GB SATA 驱动器,我想将其连接dd到我的新 1TB 驱动器。

这两个驱动器都占用我仅有的 2 个 SATA 端口,我没有 IDE 端口,没有 USB CDROM 驱动器,也不能使用 USB 记忆棒。

尝试将dd正在运行的操作系统迁移到新驱动器是不是一个坏主意?驱动器会启动吗?我可以稍后格式化/分区额外的可用空间,我只需要在开始此过程之前知道我的新驱动器是否会启动。

答案1

它可能启动,也可能不启动。正如您已经想到的,这不是一个好主意。当您读取磁盘时,磁盘的内容可能会发生变化。

我宁愿尝试在系统运行时在第二个驱动器上设置一个工作系统。然后启动到新系统并复制数据。

答案2

无论它是否启动(而且可能不会启动),如果您以这种方式使用 dd,您将无法拥有一个正常工作的系统。

最好的选择可能是对新的 1TB 驱动器进行分区:设置一个小分区并在其上安装一个最小操作系统,从该分区启动,然后将旧驱动器映像到新驱动器的较大分区上。

答案3

DD 不在乎简而言之,是的你可以但正如其他人所说,这几乎不可能实现你想要的目标。有些备份解决方案例如 Acronis 可以拍摄在线系统快照然后将映像恢复到新驱动器。由于对可用空间的利用率较高,因此其性能可能也会更好。

答案4

如果您正确执行了 dd 命令(硬盘驱动器到硬盘驱动器)。它应该可以启动。我以前在未启动系统的情况下执行过此操作,并且成功运行,因为 MBR 和其他所有内容都保留了下来。在启动系统的情况下执行此操作只会导致新驱动器处于强制关闭计算机的状态(就像您按住电源按钮一样)。

至于格式化额外空间,我已完成以下操作:

假设你有 ext4 文件系统

在您想要复制到的硬盘上执行 mkfs.ext4。

sudo mkfs.ext4 /dev/sdX

然后执行dd过程:

sudo dd if=/dev/sdX of=/dev/sdY bs=1M

之后,对新驱动器进行 fsck 以修复文件系统错误:

sudo fsck /dev/sdaY -f

这应该可行。此外,如果这不起作用,您不会丢失任何数据(但不要弄乱命令),只需重新格式化 1TB 驱动器即可。

相关内容