我熟悉使用rsync从我的系统备份各种文件,但完全恢复机器的最佳方法是什么?
我过去试过的是:
这种方式的作品,但我不认为所有已安装的包装100%以后工作。
我希望能够以最小的努力恢复我的系统,并且一切工作与备份时一样。 另外如果可能的话,安装到其他机器,并essentailly有两个具有相同的包和数据的机器。
这就是我所做的(假设在/ dev / sda中有一个磁盘)
使用dd来备份MBR和分区表:“dd bs = 512 count = 1 if = / dev / sda = / backups / sda.layout”
使用rsync来复制整个东西,如:“rsync -axvPH –numeric-ids …”
在恢复我这样做:
用sysrescuecd引导目标机器,我通常会在U盘上有'sda.layout'文件。
用dd恢复MBR /分区表:“dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda”
使用partprobe (感谢评论者Mark)让内核重新读取分区表。
在/ restore /下挂载所有的部分。 我在恢复时使挂载点完全相同,所以如果我有/ boot,/ var在我的源代码中,我最终会使用/ restore / boot,/ restore / var等。
使用rsync来恢复整个事情。
我从来没有完全克隆系统。 你永远不知道会发生什么变化,你的系统克隆的图像已经超出了发生变化的那一天。 最好的办法是build立一个程序,让你制作function相同的系统。 一种可能性是像Kickstart,或AutoYaST或类似的工具。 保持configuration的良好备份,最好使用configurationpipe理系统(如Bcfg2,Puppet或CFEngine)来configuration一切,而不是手动完成。 那么当你需要创build一个与另一个类似的新系统,或者重新创build一个现有的系统时,这是一个简单明了的过程。
这需要更多的努力,但是Kickstart和Revisor允许您自定义安装并在其他机器上使用它。 您可以包含自定义版本的设置文件。
您可能还需要考虑将您的主目录保留在单独的分区上。 您可以在另一个分区上进行全新安装的同时单独保留该分区。
抓住一个系统恢复光盘的副本,并在您最初的最小安装后,从它启动,挂载和chroot到您的磁盘,然后执行rsync。 完成后,可能需要运行update-grub才能从正确的引导设备和内核启动。
我一直认为Gentoo安装新系统的方式(从备份或其他)是最好的,由于其简单。
尝试clonezilla live cd。 您可以启动进行实时会话,并且无需安装任何东西即可为您的机器成像。 然后,您可以select将图像的副本存储在networking共享或远程机器上等。
如果是完全相同的机器,我只需要使用dd创build一个磁盘映像,然后根据需要重新映像(如果适用,可能会更改某些configuration)。
如果您正在切换硬件,我已经成功创build了一个tarball或完整的文件系统根的rsync备份。 我不确定为什么你需要首先完成安装 – 只要你进行完整的备份,基本的Fedora安装不应该是一个先决条件。
你的程序可能会导致很多问题,应该避免。
有两个主要的推荐方法可以解决这个问题,如果你纯粹试图build立一个开发环境的话,还有三分之一。
成像
如果要恢复的硬件将相同或相似,请使用磁盘映像工具复制整个硬盘驱动器或arrays。 当您希望恢复时,只需使用此图像重新映像有问题的机器即可。 如果您映像到多台计算机,请注意您需要更新其他设备上的任何计算机特定设置(主机名,静态IP地址等),以使它们不会相互冲突。
要做实际的成像,我会推荐任何可以克隆硬盘驱动器的工具或产品。
configuration/主目录备份
在您的主机上,定期备份(无论您喜欢什么方法),无论您需要以下目录(或其他):
/ home – 所有用户个人设置,文档和文件
/ etc – configuration
/ opt – 没有通过软件包pipe理器安装的特殊软件
/ usr / local – 没有通过软件包pipe理器安装的特殊软件
/ var – 日志等
恢复时,请在相关机器上重新安装操作系统,然后将每个(或仅相关文件)复制到适当的位置。
具有快照的虚拟机
在VMWare中创build一个虚拟机(或其他任何你喜欢的)。 当它被configuration为你想要的时候,创build一个快照。 这个快照可以很容易地恢复到任何数量的新的或现有的虚拟机。
一般来说,你只应该备份数据和configuration(不过你要定义这些)。 操作系统和软件可以随时重build:只有你自己的内容是有价值的。 如果这个设置是为了开发,而且你需要确保一个相同的环境(而不是简单地让事情再次运行),那么虚拟机中的快照确实是你最好的select。
成像是powershell解决scheme。 如果可以,请备份您的数据,不要担心操作系统本身。 试图完全恢复它是在寻求麻烦。
如果你能澄清你的最终意图是在这里,我可以提供一个更详细的解决scheme。
既然你说“硬件将是不同的”, SystemImager可以非常方便。
这只是一堆围绕PXE和Rsync的包装脚本。 因此,它创build的“备份”只是备份Linux服务器的完整目录结构。 你可以“cd”进入这个目录,并改变你的饲料。 (当您将图像推出时,SystemImager自行pipe理更改的networking设置。)
您可以将chroot放入备份的服务器,然后运行yum或apt来安装软件,然后再将图像推出。
编辑:您可以看看创build分区/逻辑卷的SI脚本,并根据目标机器的磁盘大小对其进行修改。 您也可以添加/删除内核模块。
Mondo Rescue运气非常好。 基本上它会将所有的文件和分区备份到可引导的CD中以供以后使用。 它可以处理分区和驱动器的变化。
partimage可以帮助这个
最安全的方法是克隆整个磁盘或至less相关的分区,并使用Live CD进行恢复。
另一个更节省空间的方法是使用dump (xfsdump for XFS),但在这种情况下,您必须手动重新创build(格式化)分区。 不要忘记使用相同的参数创build它们,尤其是UUID和LABEL。
您也可以使用带有--xattrs参数的tar来保存每个文件的扩展属性。
partimage和partclone(部分Clonezilla)是创build完整系统映像的有用工具。
正如您所识别的,完整的系统映像不一定是系统可移植的:通常是因为设备名称。
这可能与重新安装GRUB(最好在单独的/启动分区上)和成像后的MBR(例如LiveCD)一样简单。
另一种方法是使用configurationpipe理工具来定义适用于基准映像的策略(如stream浪基础框)。 并将数据备份分离成块和/或对象存储(EBS / S3,OpenStack块存储/ Openstack对象存储)