备份 – 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,以便还原不占用比原来更多的磁盘空间?

解决方法

正如你推测的那样,这里的问题是/ rescue不包含很多文件 – 它包含一个带有许多名称(硬链接)的文件(inode).因此,在备份或恢复/救援时,您需要使用知道硬链接的软件.

对于rsync,这意味着-H标志.

对于tar,这不应该需要任何特殊的魔法:BSD tar(和GNU tar)非常聪明,可以知道硬链接是什么.
对于其他备份程序,您需要查看文档.

如果您使用常规的Unix工具来备份系统(并抓取整个文件系统),最好使用dumprestore.除了使用UFS快照的能力之外,更传统的实用程序还有其他优点.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...