Linux - 从 Tar 文件进行裸机还原

Linux - 从 Tar 文件进行裸机还原

我每天都会备份我的 Debian 网络服务器。周日做一次完整备份,每周其他天做一次差异备份。

备份是用Tar做的。我将整个系统备份到Tar文件中。

如果我的网络服务器上的硬盘坏了,我会将所有备份保存在一个安全的地方。

但是,在新硬盘上使用前一天的差异备份进行裸机恢复的最佳方法是什么?我可以使用启动 CD 启动,然后格式化新硬盘并将备份文件解压到其中吗?我该怎么做呢?

编辑:

这是我的备份脚本:

#!/bin/sh
# Backup script

BACKUPDIR="/backups"
BACKUPFILE=$BACKUPDIR/backup_$(date +%y-%m-%d).tgz

if [ ! -d $BACKUPDIR ]; then
        mkdir $BACKUPDIR
fi

if [ -f $BACKUPFILE ]; then
        echo "Backup file already exists and will be replaced."
        rm $BACKUPFILE
fi

apt-get clean

tar czpf $BACKUPFILE --same-owner \
--exclude=$BACKUPDIR \
--exclude=/boot/grub/menu.lst* \
--exclude=/home/error.log \
--exclude=/proc \
--exclude=/media \
--exclude=/dev/* \
--exclude=/mnt \
--exclude=/sys/* \
--exclude=/cdrom \
--exclude=/lost+found \
--exclude=/var/cache/* \
--exclude=/tmp / 2>/home/error.log

答案1

简单地恢复硬盘是不够的,您可能还需要您的启动记录,我几乎不相信它存在于您的备份中(我错了吗?如果我这样做对您来说更好!)...

假设您已将服务器调至可以启动的程度(我个人更喜欢创建附加分区,/boot该分区将具有或kernel类似的东西,以便您执行基本的维护任务)。您还可以使用 Linux 发行版的实时 CD。initrdbusybox

把你的未来安置root partition在某个地方并恢复你的备份。

tar是为磁带创建的,因此它支持附加到具有相同名称的存档文件。如果您使用此方法,则untar -xvpf backup.tar -C /mnt需要恢复“上周日”备份并应用到所需日期的顺从部分。

您应该记住,有很多东西您不应该备份,例如:/proc、、、、(可能还有一些/dev,具体取决于您的需要)。/sys您需要在创建备份之前处理好它,否则在恢复过程中可能会非常麻烦!/media/mnt

使用整个服务器的备份方法时,您很容易忽略许多要点:

  • 用于恢复的命令可能会有很大差异,这取决于您用于备份数据的实际命令。
  • 引导记录
  • 恢复后内核映像和模块正常且相互匹配
  • 忽略备份时不需要的内容而不是恢复。
  • 等等等等...

关于该方法的一些优点可以在Ubuntu Wiki:备份您的系统/TAR. 寻找恢复。

顺便提一句:

  • 您是否曾尝试过恢复您的某个备份?
  • 您是否考虑过改变您的备份策略?
  • 您是否考虑过将需要备份的数据与系统设置分开(如今有一些好东西可以管理系统配置,因此可以轻松地像puppet或一样毫无痛苦地恢复chief,因此您唯一应该关心的是真实数据)

聚苯硫醚

我建议你读几本杰夫阿特伍德关于备份的帖子 http://www.codinghorror.com/blog/2008/01/whats-your-backup-strategy.htmlhttp://www.codinghorror.com/blog/2009/12/international-backup-awareness-day.html

答案2

  1. 使用某些 LiveCD 启动
  2. 对新硬盘进行分区。
  3. 将它安装在某处,一切都在正确的位置(如果您有单独的 /var 或 /home,那么请这样做)
  4. 将文件复制回来
  5. 创建具有适当访问权限和所有者的备份目录,例如 /mnt /proc /sys /dev/
  6. 使用以下命令在 dev 中创建文件:MAKEDEV generic
  7. 将 /proc /sys /dev 绑定到目标
  8. Chroot 到目标目录
  9. 根据新的 UUID 更新 /etc/fstab
  10. update-grub 和 grub-install
  11. 卸载所有东西并重启

答案3

看一下http://www.mondorescue.org/因为它可以在不关闭机器的情况下进行在线备份。

答案4

如果差异备份不是强制性的,那么裸机备份/恢复的最佳选择是 ddrescue :http://www.gnu.org/software/ddrescue/ddrescue.html

相关内容