注:此实例在FreeBSD7.2下测试通过,对于FreeBSD8或FreeBSD9同样适用,FreeBSD9简化了默认分区个数,备份恢复步骤也可以简化。
环境:公司有几台FreeBSD7.2服务器硬盘老化需更换,由于公司写的应用对低版本php5.2依赖比较多,如果升级FreeBSD会比较麻烦(维护版FreeBSD的ports中已经没有php5.2),即使是重新安装FreeBSD7.2,由于官方已经不维护,ports安装也会比较困难。这样考虑使用dump和restore方式直接备份恢复硬盘。
步骤:
一、对每台服务器定期dump,以备在硬盘故障时快速恢复系统
1、关机,挂接备份盘(用来存放dump数据),拔掉原FreeBSD系统盘硬盘线(防止误操作毁数据)
2、U盘引导FreeBSD(我用的FreeBSD8.2 U盘),对备份盘分区格式化,此步骤可以使用sysinstall工具,比较方便(可以只分一个区,也可以按默认分区无所谓)。
3、接上原系统盘,重新硬盘引导,mount上备份盘(我的是/bkdisk)
4、撰写备份脚本,并放到cron里执行,我的脚本dumpslice.sh:
#!/bin/sh
# Program:
# Dump disk slice
# History:
# 2014/09/10 yanglifeng First release
bak_root="/bkdisk/dumpfiles"
dir_name=`date +%Y%m%d`
#create backup dir
mkdir ${bak_root}/${dir_name}
/sbin/dump -0Lauf ${bak_root}/${dir_name}/ad4s1a_root.dump /dev/ad4s1a
/sbin/dump -0Lauf ${bak_root}/${dir_name}/ad4s1d_var.dump /dev/ad4s1d
/sbin/dump -0Lauf ${bak_root}/${dir_name}/ad4s1f_usr.dump /dev/ad4s1f
df -h > /${bak_root}/sliceinfo.txt
对于FreeBSD7和FreeBSD8,只需备份/、/var、/usr,/tmp和/dev不需备份
我的1T硬盘每次dump大概1个多小时