FreeBSD 恢复 /rescue

FreeBSD 恢复 /rescue

我正在从 FreeBSD 系统的先前备份中运行恢复,但在恢复时遇到了麻烦/(不包括挂载点)。问题是,它占用了比原来更多的空间,从而/rescue填满了/分区(以至于我无法恢复整个/分区)。

我猜是因为/rescue包含链接而不是文件,并且文件(而不是链接)被恢复到我的/分区中。我尝试使用tar和进行恢复rsync

( cd /mybak/ ; tar --one-file-system -cvf - . ) | ( cd /newroot/ ; tar -xpf - . )

/usr/local/bin/rsync -va --delete --one-file-system  /mybak/ /newroot/

这两种方法都会导致我的问题。我该怎么做才能正确恢复(或初始备份)分区/(包括/rescue),以便恢复不会占用比原始分区更多的磁盘空间?

答案1

正如您所猜测的,这里的问题不是/rescue包含很多文件 - 它包含一个文件(inode)和许多名称(硬链接)。因此,在备份或恢复时,/rescue您需要使用能够识别硬链接的软件。

因为rsync这意味着-H旗帜。

tar并不需要任何特殊的魔法:BSD tar(和 GNU tar)足够聪明,知道什么是硬链接。对于其他备份程序,您需要查看文档。


如果你使用常规的 Unix 工具来备份你的系统(并抓取整个文件系统),那么最好使用dumprestore除了能够使用 UFS 快照之外,它还具有比更传统的实用程序更多的优势。

相关内容