![Linux下如何备份和恢复到不同的硬件?](https://linux22.com/image/75522/Linux%E4%B8%8B%E5%A6%82%E4%BD%95%E5%A4%87%E4%BB%BD%E5%92%8C%E6%81%A2%E5%A4%8D%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E7%A1%AC%E4%BB%B6%EF%BC%9F%20.png)
我在戴尔笔记本电脑上运行 Fedora 22。我计划很快迁移到也运行 Fedora 22 的台式机。将我的笔记本电脑配置备份和恢复到新系统的最佳方法是什么?我的系统上没有任何第三方备份/恢复软件。 dd 能为我工作吗?系统级备份是否有效,或者我是否需要将 dd 限制为非“硬件或设备”特定的分区。我也愿意接受任何其他建议或想法。
答案1
我支持全新安装然后 rsyncing 的方法/home
。但是,为了完整起见,如果您想将磁盘从一台计算机移动到另一台具有其他硬件的计算机(无论是字面上还是通过dd
复制内容),请确保运行
sudo dracut --force --no-hostonly
在进行备份或复制之前在计算机上。
这将生成通用的初始启动映像。
默认情况下,Fedora 通过创建可能特定于您的特定硬件的启动映像来节省空间和时间。
如果您忘记执行此操作并且机器无法启动(由于启动映像中缺少硬件支持),请使用初始启动加载程序屏幕上的救援模式菜单项 - 这始终具有更大的通用启动映像,并且会得到进入系统后,您可以运行 dracut 命令来为您的非救援环境生成初始 ramfs。 (不过,在这种情况下,您必须确定内核版本。查看/boot
并提供编号,如下所示:dracut --force --no-hostonly --kver 4.2.3-300.fc23
。)
答案2
这里有几种不同的选择,每种都有不同的效果和权衡。
首先,您可能不想对 做任何事情dd
。dd
运行块级副本;它精确地镜像磁盘映像,而不关心文件。这将在其关联的文件系统中携带文件,但这里存在问题:如果两个设备位于同一台机器上,您可能会由于相同的 UUID 而感到困惑;它显然排除了您可能希望进行的任何文件系统级别的更改,例如在文件系统之间迁移、分配更多 inode 或其他;并且它要求目标块设备与源块设备的大小相同,但情况通常并非如此。 (如果目标大于源,它仍然可以工作,但是在运行单独的调整大小操作之前,您将无法访问额外的空间。如果目标较小,它将失败,您将无法访问”即使文件系统中有足够的可用空间,也无法访问您的数据。)
主要用例dd
可能是您将根或启动文件系统从一台计算机克隆到另一台计算机,这本身就是一个令人担忧的话题。这dd
是合适的,因为您通常希望保留 FS UUID 等,以保持引导过程正常运行。但您可能不想这样做。 (另一种用途实际上是处理 U 盘、CD 等磁盘映像,但这与这里无关。)
您更可能想要做的是文件级备份/恢复。为此,我发现rsync
如果两台机器同时启动,效果会非常好;如果没有,使用 可能会更好tar
。假设您在桌面系统上运行了全新的 Fedora 安装,您应该能够通过 rsync/tar 将目录/home
从一台计算机迁移到另一台计算机。这将保留所有用户文件和大多数用户级自定义(例外是存储在外部的 crontab 之类的内容/home
)。然后,为了正确模仿旧的设置,剩下的就是通过包管理器安装所有相同的软件。由于保留了大多数软件存储其配置的主目录,因此再次安装它应该会让您的工作按原来的方式进行。