是否可以在不同的文件系统上恢复备份?

是否可以在不同的文件系统上恢复备份?

我现在正在使用带有 ext4 的 Ubuntu 10.04,这是我一生中第二次遇到数据丢失(不是真的:我有备份),我认为最近的 ext4 fs 存在问题。

我想恢复 reiserFS 上的所有配置(/etc 等)、数据和主目录:可以吗?要怎么做才能实现?

(当然,如果可以从一个文件系统迁移到另一个文件系统,我会非常高兴......)

答案1

嗯,这取决于备份如何存储……

如果它被存储为文件的压缩档案,那么它就与文件系统无关,并且应该能够通过简单地提取档案在任何文件系统上进行恢复。

如果它是分区的映像(由类似的东西创建dd if=/dev/sda1 of=mybackup.img),那么您就不能。但您应该能够恢复到 ext4,然后复制到另一个 reiserFS 分区...

如果是其他方法,很可能有办法,但具体步骤取决于存储方法......

答案2

本质上,块级备份(如dd)存储文件系统信息,并且不能恢复到不同的文件系统。

文件级备份(如tar)仅存储文件并可恢复到任何文件系统。

如果您正在恢复操作系统,则需要确保操作系统和引导加载程序可以从新的文件系统启动。

答案3

您提到了从 ext4 迁移到 RaiserFS;但我的回答旨在更加通用。

就像其他答案所说的那样,您可以将基于文件的备份还原到另一个文件系统。通常。

还没有说的是:每个文件系统都有其自身的局限性,这就是为什么在某些情况下您可能无法恢复所有文件、目录或它们的元数据。

这可能是因为目标文件系统:

  • 不区分大小写(假设你file.txtFile.txt在同一个目录中);
  • 不允许文件名中包含某些字符;
  • 指定最大文件名长度(并且该限制对您来说不够大);
  • 指定最大路径长度(和限制……);
  • 指定最大文件大小;
  • 指定目录中文件(和/或子目录)的最大数量,或最大总数;
  • 指定最大卷大小(想象一下,您无法创建足够大的文件系统来存储所有数据);
  • 保留一些名称供内部使用(例如$Bitmap在 NTFS 中,假设您需要使用此名称恢复常规文件);
  • 不支持:
    • 所有权(或者以不同的方式,因此没有简单的翻译),
    • 权限(或者以不同的方式执行,所以……),ACL,
    • 时间戳,
    • 扩展属性、备用数据流等,
    • 硬链接、目录硬链接、符号链接、
    • 稀疏文件。

相关内容