用tar备份系统

tar备份对所有 linux 都通用的, 而且我在用着的就是 gentoo 的所谓 stage4 的备份啦 (整系统备份) 很简单:

  • umount 不需要备份, 或需要单独备份的分区 (比如你的 win32 分区, 我自己的专门放重要数据的 /mnt/data 分区)
  • 进到一个有空闲空间较大的分区中, 假设是 /mnt/backup
  • 用 tar 命令把整个系统打包到这个目录下, 命令大概如下:

    `tar cvjpf ./stage4.tar.bz2 / --exclude=/proc/* --exclude=/sys/* --exclude=...`
    

其中的几个参数的意思是:

  • c 创建压缩文件
  • v 输出可见信息
  • j 进行 bz2 压缩
  • p 保留文件权限 (非常关键!!)
  • f 压缩到指定文件 (./stage4.tar.bz2) 中

留心, ./stage4.tar.bz2 紧跟着后面是一个 /, 也就是我们要备份整个系统 (/ 就是系统的根目录).

其后跟着的就是一些不需要备份的目录, 一般这几个都不需要备份:

  • /sys
  • /proc
  • /dev
  • /tmp
  • /var/tmp

有的文档里教你用 --exclude=/proc 这样的形式, 我自己用的是 --exclude=/proc/*, 两者的差别在于, 前者是忽略了整个 /proc 目录, 也就是说, 在备份出来的 tar.bz2 包里, 解压缩后, 没有 /proc 这个目录; 而我的写法的结果是, /proc 目录本身被保留了, 只是忽略了 /proc 里面的所有东西. 我个人觉得这样更合适, 到时恢复系统的时候, 这些目录就不必自己去创建, 然后还得考虑权限什么的.

具体细节可以上 gentoo 论坛搜索 stage4, 有很详细的文档可以参考. 这种备份方式是所有 linux 通用的.

如果要进行更复杂的备份, 例如增量备份之类的, 甚至要对备份后的数据进行加密, 那可以 google 一下 duplicity 这样的工具, linux 下好多这些好东东的.