AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 19881
Accepted
Simon Foster
Simon Foster
Asked: 2009-06-05 09:31:47 +0800 CST2009-06-05 09:31:47 +0800 CST 2009-06-05 09:31:47 +0800 CST

彻底还原linux系统

  • 772

我熟悉使用 rsync 备份系统中的各种文件,但是完全恢复机器的最佳方法是什么。

我过去尝试过的是:

  1. 从 Fedora 安装盘进行基本格式化/重新安装
  2. 确保启用网络
  3. 将 rsync 备份中的所有内容复制到新安装系统的顶部

这种方式可以工作,但我不认为安装的每个软件包在之后都能 100% 工作。

我希望能够以最少的努力恢复我的系统,并且一切都与备份时一样。另外,如果可能的话,安装到其他机器上,并且基本上有两台机器具有相同的包和数据。

backup linux system-restore rsync fedora
  • 13 13 个回答
  • 14992 Views

13 个回答

  • Voted
  1. Best Answer
    kbyrd
    2009-06-05T09:45:15+08:002009-06-05T09:45:15+08:00

    这是我所做的(假设有一个磁盘,位于 /dev/sda)

    • 使用dd备份MBR和分区表:“dd bs=512 count=1 if=/dev/sda of=/backups/sda.layout”

    • 使用 rsync 复制整个内容,例如:“rsync -axvPH --numeric-ids ...”

    在恢复我这样做:

    • 使用sysrescuecd启动目标机器,我通常会将“sda.layout”文件放在 U 盘上。

    • 使用 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 来恢复整个事情。

    • 17
  2. Kamil Kisiel
    2009-06-05T10:09:16+08:002009-06-05T10:09:16+08:00

    我从不完全克隆系统。您永远不知道可能会发生什么变化,并且您的系统克隆映像在发生一次更改时就已经过时了。最好的方法是建立一个程序,让您生产功能相同的系统。一种可能是 Kickstart、AutoYaST 或类似工具。保持良好的配置备份,最好使用 Bcfg2、Puppet 或 CFEngine 等配置管理系统来配置所有内容,而不是手动进行。然后,当您需要创建一个与您拥有的另一个系统相似的新系统或重新创建现有系统时,这是一个简单且定义明确的过程。

    • 6
  3. dkaylor
    2009-06-05T10:05:42+08:002009-06-05T10:05:42+08:00

    这需要更多的努力,但Kickstart和Revisor允许您自定义安装并在其他机器上使用它。您可以包含设置文件的自定义版本。

    您可能还需要考虑将主目录保存在单独的分区上。在另一个分区上进行全新安装时,您可以不理会该分区。

    • 3
  4. pgs
    2009-06-05T09:41:46+08:002009-06-05T09:41:46+08:00

    获取系统恢复 cd的副本,在初始最小安装后,从它启动,挂载并 chroot 到您的磁盘,然后执行 rsync。完成后,您可能需要运行 update-grub 以使其从正确的引导设备和内核引导。

    • 2
  5. andrewd18
    2009-06-05T09:47:57+08:002009-06-05T09:47:57+08:00

    我一直认为 Gentoo 安装新系统(从备份或其他方式)的方式是最好的,因为它很简单。

    1. 创建工作的最小系统。
    2. 将工作系统作为硬盘驱动器加载到 livecd 中。
    3. tar 文件系统并保存在某处。
    4. 使用 livecd 加载目标系统。
    5. 准备目标硬盘并安装它。
    6. 解压到安装的硬盘。
    7. 输入 chroot。
    8. 设置引导加载程序和其他系统相关的东西。
    9. 重新启动并继续。
    10. 根据需要安装新软件/复制用户文件夹/添加其他文件。
    • 2
  6. TimK
    2009-06-05T12:00:17+08:002009-06-05T12:00:17+08:00

    试试 clonezilla live cd。您可以启动到实时会话并为您的机器映像,而无需安装任何东西。然后,您可以选择将图像副本存储在网络共享或远程计算机等。

    • 2
  7. Tim
    2009-06-05T09:46:35+08:002009-06-05T09:46:35+08:00

    如果它是完全相同的机器,我只会使用它dd来创建磁盘映像,然后根据需要重新映像它(如果合适的话,之后可能会更改一些配置)。

    如果您要切换硬件,我已经成功地创建了文件系统根目录的 tarball 或完整的 rsync 备份。我不知道你为什么需要先完整安装——只要你进行完整备份,基本的 Fedora 安装不应该是先决条件。

    • 0
  8. Cristian Ciupitu
    2009-06-05T09:50:54+08:002009-06-05T09:50:54+08:00
    • 最安全的方法是克隆整个磁盘或至少是相关分区,然后使用 Live CD 恢复它们。

    • 另一种更节省空间的方法是使用转储(用于 XFS 的 xfsdump),但在这种情况下,您必须手动重新创建(格式化)分区。不要忘记使用相同的参数创建它们,尤其是 UUID 和 LABEL。

    • 您还可以使用带有参数的tar--xattrs 来保存每个文件的扩展属性。

    • 0
  9. Rym
    2009-06-05T10:17:54+08:002009-06-05T10:17:54+08:00

    您的程序可能会导致许多问题,应该避免。

    有两种主要的推荐方法可以解决此问题,如果您纯粹是尝试构建开发环境,则可以使用第三种方法。

    成像

    如果您要恢复到的硬件相同或足够相似,请使用磁盘映像工具制作整个硬盘驱动器或阵列的副本。当您希望恢复时,只需使用此映像重新映像有问题的机器。如果您映像到多台机器,请注意您将需要更新其他设备上的任何特定于机器的设置(主机名、静态 IP 地址等),以使它们不会相互冲突。

    要进行实际映像,我会推荐任何可以克隆硬盘的工具或产品。

    配置/主目录备份

    在您的主计算机上,定期备份(使用您喜欢的任何方法)您需要的以下目录(或其他目录):

    /home - 所有用户个人设置、文档和文件
    /etc - 配置
    /opt - 未通过包管理器安装的特殊软件
    /usr/local - 未通过包管理器安装的特殊软件
    /var - 日志等

    还原时,在相关机器上重新安装操作系统,然后将其中的每一个(或仅相关文件)复制到适当的位置。

    带有快照的虚拟机

    在 VMWare(或您喜欢的其他任何东西)中创建一个虚拟机。当它按照您的意愿进行配置时,创建一个快照。然后可以轻松地将此快照还原到任意数量的新虚拟机或现有虚拟机。

    通常,您应该只备份数据和配置(无论您如何定义这些)。操作系统和软件可以随时轻松重建:只有您自己的内容才是有价值的。如果此设置用于开发,并且您需要确保相同的环境(而不是简单地让事情再次运行),那么虚拟机中的快照确实是您最好的选择。

    成像是蛮力解决方案。如果可以,只需备份您的数据,而不必担心操作系统本身。试图完全恢复它是自找麻烦。

    如果您可以在这里澄清您的最终意图,我可以提供更详细的解决方案。

    • 0
  10. Not Now
    2009-06-05T10:42:43+08:002009-06-05T10:42:43+08:00

    既然你说“硬件会有所不同”,SystemImager就可以派上用场了。

    它只是一堆围绕 PXE 和 Rsync 的包装脚本。因此,它创建的“备份”只是您备份的 Linux 服务器的完整目录结构。你可以“cd”到这个目录,并在你喂食的时候改变周围的东西。(当您推出图像时,SystemImager 会自行管理更改网络设置。)

    您可以 chroot 到您的备份服务器并运行 yum 或 apt 安装软件,然后再将映像推出。

    编辑:您可以查看创建分区/逻辑卷的 SI 脚本,并根据目标机器的磁盘大小对其进行修改。您还可以添加/删除内核模块。

    • 0

相关问题

  • IIS 6.0 (Windows Server 2003) 备份的最佳实践?

  • 10TB数据和3台服务器的备份解决方案

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

  • 最佳混合环境(OS X + Windows)备份?[关闭]

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve