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

我每天都在备份我的Debiannetworking服务器。 星期天的完整备份,每星期有一天的差异。

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

如果我的networking服务器上的硬盘坏了,我把所有的备份都放在了安全的地方。

但是如果在前一天有差异备份的新硬盘上进行裸机还原,最好的办法是什么? 我可以用启动光盘启动,然后格式化一个新的硬盘,解压备份文件? 我该怎么做呢?

编辑:

这是我的备份脚本:

#!/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 

简单地恢复硬盘是不够的,你可能会希望你的启动logging太多,我不相信在你的备份存在(我错了吗?,如果我这样做对你更好!)…

为了保证服务器能够启动(我个人更喜欢创build额外的分区挂载到/boot ,这个分区会有kernelinitrd以及busybox或类似的东西,允许你进行基本的维护任务)。 您也可以使用Linux发行版的Live CD。

将未来的root partition挂载到某处并恢复备份。

tar是为磁带创build的,因此它支持附加到具有相同名称的归档文件。 如果你使用这个方法,只需untar -xvpf backup.tar -C /mnt如果没有的话,你需要恢复“最后一个星期日”的备份,并在需要的时候应用优惠部分。

你应该记住,有很多你不应该备份的东西,比如: /proc/dev/sys/media/mnt (可能还有一些取决于你的需要)。 在创build备份之前,您需要照顾它,否则在恢复过程中可能会变得非常痛苦!

使用整个服务器的备份方法可以轻松地忽略许多要点:

  • 用于恢复的命令可能会有很大程度上取决于用于备份数据的实际命令。
  • 引导logging
  • 内核映像和模块都可以,恢复后相互匹配
  • 忽略不需要的东西备份不恢复。
  • 等等…

在Ubuntu Wiki:BackupYourSystem / TAR上可以find关于这个确切方法的一些好的方面。 寻找恢复。

BTW:

  • 你有没有试过恢复你的备份?
  • 你有没有考虑改变你的备份策略?
  • 你有没有考虑过需要备份和系统设置的数据的分离(今天有一些好的东西来pipe理系统configuration,所以可以很容易地用像puppetchief零痛苦,所以只有你应该关心的是真实的数据)

PPS

我推荐阅读Jeff Atwood关于备份的文章http://www.codinghorror.com/blog/2008/01/whats-your-backup-strategy.html和http://www.codinghorror.com/blog/2009/ 12 /国际备份意识,day.html

  1. 用一些LiveCD启动
  2. 分区新硬盘。
  3. 把它安装在任何地方,一切都在正确的地方(如果你有单独的/ var或/ home,那么这样做)
  4. 将文件复制回来
  5. 使不具备适当访问权限和所有者的备份目录,如/ mnt / proc / sys / dev /
  6. 在dev中创build文件:MAKEDEV通用
  7. 将mount / proc / sys / dev绑定到目标
  8. chroot到目标目录
  9. 根据新的UUID更新/ etc / fstab
  10. update-grub和grub-install
  11. 卸下所有的东西然后重新启动

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