我想在工作中的测试服务器上安装 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 和目标网卡中为您的目标硬盘提供一个可用的驱动程序。因此,请在执行上述过程之前安装它们。