如何将整个操作系统移动到不同的服务器?

如何将整个操作系统移动到不同的服务器?

我想在工作中的测试服务器上安装 RhodeCode。然而,该服务器的互联网访问受到限制,并且 RhodeCode 有很多依赖项(我什至该服务器上没有 Python)。所以我必须从服务器上拍摄整个操作系统的快照,在家里的虚拟机中恢复它,安装 RhodeCode 和其他所需的东西,然后将其复制回工作中 - 我已经在服务器上有一些应用程序,我会喜欢避免重新安装它们。

第一个解决方案是将硬盘带回家(是的,我可以这样做,但我想避免它)。

第二种解决方案是使用 Clonezilla 并备份/恢复分区。

但是,是否有另一种方法可以做到这一点,使用 tar 或类似的东西,同时保留权限和 ACL?

更新:由于硬件资源有限,我无法使用 VMware(或同等产品)来运行带有 RhodeCode 的虚拟机。

独立于文件系统的解决方案会很棒,因此我可以在虚拟机中使用 ext3。

答案1

系统救援光盘包括准备出发部分图像,这对于保存/恢复整个分区非常方便。但它不会将分区转换为另一种文件系统格式。

如果您确实需要此功能,可以尝试使用 rsync 进行完整备份/恢复。您可以将目标驱动器格式化为您需要的任何格式。这很棘手,但很有效。这ArchLinux 教程将向您解释所需的所有技巧。

请注意,为了恢复新的增强系统,您可能需要从实时 CD 启动。您无法在正在运行的 CD 上恢复系统。

答案2

您可以手动下载软件包并将它们放入拇指驱动器中。如果您不想手动找出所有依赖项,请设置虚拟机,清除包管理器的缓存,安装包及其(自动计算的)依赖项,然后将缓存复制到驱动器上,将其引入,并通过包管理器安装它。

答案3

关于文件系统更改,我发现做到这一点的唯一方法是在文件级别工作。备份仅包含文件的整个分区才是FSArchiver真正出色的地方。我已经用 完成了整个系统FSArchiver,但您需要修复引导加载程序和其他特定配置。您还可以FSArchiver在 SystemRescueCD 中获取,或者可能在标准包存储库中获取。

在块级别工作会简单得多,partimage如果文件系统更改不是硬性要求,我更喜欢这样做。

答案4

从救援 CD/ISO 启动,连接一个外部 USB 驱动器,将其复制(我建议使用 dd 作为启动扇区,使用 tar.gz ( tar czf) 作为文件系统内容),然后以相反的方式将其恢复到服务器:从救援 CD/ISO 启动,连接 USB 驱动器、分区并格式化,使用 dd 恢复启动扇区并使用 th 填充文件系统tar xzf

您需要在 initrd 和目标网卡中为您的目标硬盘提供一个可用的驱动程序。因此,请在执行上述过程之前安装它们。

相关内容