我已使用该dd
命令将 Linux 分区 (openSUSE Tumbleweed) 备份到保存.img
在外部硬盘驱动器上的文件中。
然而,我猜想dd
在另一台计算机上使用它可能会导致问题,因为硬件不同,因此我的 Linux 的配置可能应该调整。
我该如何正确地做到这一点?
第二个问题:如果我的硬盘被盗,该.img
文件会泄露什么?如果它很重要,您会建议我如何使其更安全?也许加密它?你会用什么方法?
答案1
Linux 相当强大,因为它通常会在启动时自动检测大多数设备,并且映像可以在任何硬件上运行。有一些例外情况(例如 nVidia 驱动程序和一些罕见的 raid 驱动程序),驱动程序需要嵌入 initrd 中才能正确启动,但您可能需要与启动初始安装相同的解决方法来启动图像。您可能可以在没有这些驱动程序的情况下启动映像,然后重新安装它们,这将重建 initrd。
一个更大的问题是现代操作系统使用 UEFI 在分区外部存储引导程序软件,因此映像本身无法引导。您还需要从 UEFI 分区复制启动片段(这不能保证有效),或者需要运行启动修复以将这些片段重新安装到您将分区复制到的磁盘上。 (如果您复制整个磁盘而不是分区,这不是一个问题,但您可能仍然需要在新计算机的 UEFI 菜单中重新安装引导加载程序。)
话虽如此,dd 并不是将 Linux 迁移到新系统的最佳方法。一个逐个文件复制而不是像 tar 这样的分区复制的工具可能会更有效(但会遇到上面提到的相同的启动问题),但在复制之前和之后需要额外的步骤才能正常工作。某些备份软件可能也能更好地工作,并且还可以恢复引导加载程序。
至于 img 会损害什么...使用 dd 复制分区(或磁盘)会复制整个分区,包括可能包含已删除文件碎片的未使用空间。因此,泄漏图像不仅会危及文件系统中的所有数据,还可能危及您已删除的数据。此外,复制未使用的“空闲”空间效率不高,并且不会由更合适的文件系统感知工具来复制,并且可以跳过未使用的空间。
在某些情况下,使用 Linux 安装盘从头开始重新安装系统,然后从旧磁盘复制数据(主要是主目录)甚至可能更快、更可靠。