详解用tar备份Linux系统的方法及与Clonezilla备份的优缺点
2015-06-16 16:27
676 查看
先说说Clonezilla备份Linux系统
现在Linux系统下的备份工具极多,我这前用的是Clonezilla,但是还是有一些限制的:
它会记录你备份的分区在分区表中的归属,比如我备份的是sda6,如果我恢复到别的机器的sda7分区上,会出现错误提示,无法恢复。当然,这个可以通过把备份文件改名来避过,问题不大。
重要的问题,如果你备份的原始分区是10GB,以后恢复的目标分区是8GB,那就不能恢复,提示partclone要加上“-C”参数来跳过这个容量检查,可是,Clonezilla是一组shell文件的命令集,它是中间调用的partclone,所以,这个参数加起来很困难,至少我是没有搞定。
tar备份系统的优点
基于以上两点,我想到了用tar来备份系统,这个是从Unix时代就有的通用办法,基本上是一切通吃的,基本上的优点有以下:
避过上面Clonezilla的缺点二,不会有容量检查的问题,当然,要人为的确定恢复的时候不会出现分区空间不够的问题。
分区格式可变化,用Clonezilla的话,源分区是什么格式,目前分区就是什么格式,如果源是ext4的,突然你想把目标改成reiserfs,那是不可能的,但是用tar备份,就可以做到,因为tar本质只是打包和解包文件,并不会关注分区的文件系统的格式,当然,前提是,在解包前,目标分区你要先格式化好。
tar备份Linux系统的缺点
需要一个LiveCD,或者任一种引导到一个基本CLI模式Linux系统的方式,因为需要运行tar及对目标分区进行格式化,但这个基本上是很容易做到的,不算大问题。
速度,Clonezilla备份我的ARCH+KDE系统,大概只需要5分钟,从生成的文件看,也是一个.gz文件,但是不知道为什么,用tar备份一样的系统,要打包半个小时左右,速度差很多,但好在一般打包都是一次,解包才是多次,而解包速度tar和Clonezilla是差不多的。
下面说正题:tar备份Linux系统的方法,具体步骤如下
一、引导到基本Linux系统,可用LiveCD,我个人用是grub4dos引导U盘上的archboot ISO镜像。
二、将源分区挂到系统的一个目录下,一般是/mnt,至少我选的是这个。
三、在/mnt下执行“;tar jcvpf backup.tar.bz2 ./ –exclude=files”,其中backup.tar.bz2是备份文件的名字,–exclude=files是要排除的文件及文件夹,要施加多次–exclude=参数,具体要排除的文件及目录如下:
/mnt/*,当然,也可以直接的排除/mnt目录,这个无所谓
/proc/*,这个和网上说的直接排除/proc目录不同,我试了一下,如果直接排除了目录,会影响ARCH的启动,其他发行版不知
/sys/*,同上,建议把目录留下
/tmp/*,这个可以直接排除/tmp目录,但是还是觉得留下目录,排除目录下的东西比较好
/opt,这个直接排除目录就行了,反正如果有东西要装在/opt下,目录不存在的话,会自己创建的
/media/*,这个排除目录还是目录下的内容其实无所谓
/var下的一些东西,这个/var不能完全排除,但是这个目录下的一些log和缓存可以排除,具体的自己选,对于各发行版,备份前记得用各自的命令把软件包缓存清一下,不然……
备份文件本身,这个比较傻,但tar的确是这样做的,因为你备份了当前目录下的东西,而备份文件又是在当前目录下,所以,它会把自己也加进去,这个,不知道说什么好。
四、解包,这个是恢复系统的时候用的,没什么好说的,简单的tar解包指令就行了,目录分区先格式化好,然后挂载到某处,直接解包就行了。
现在Linux系统下的备份工具极多,我这前用的是Clonezilla,但是还是有一些限制的:
它会记录你备份的分区在分区表中的归属,比如我备份的是sda6,如果我恢复到别的机器的sda7分区上,会出现错误提示,无法恢复。当然,这个可以通过把备份文件改名来避过,问题不大。
重要的问题,如果你备份的原始分区是10GB,以后恢复的目标分区是8GB,那就不能恢复,提示partclone要加上“-C”参数来跳过这个容量检查,可是,Clonezilla是一组shell文件的命令集,它是中间调用的partclone,所以,这个参数加起来很困难,至少我是没有搞定。
tar备份系统的优点
基于以上两点,我想到了用tar来备份系统,这个是从Unix时代就有的通用办法,基本上是一切通吃的,基本上的优点有以下:
避过上面Clonezilla的缺点二,不会有容量检查的问题,当然,要人为的确定恢复的时候不会出现分区空间不够的问题。
分区格式可变化,用Clonezilla的话,源分区是什么格式,目前分区就是什么格式,如果源是ext4的,突然你想把目标改成reiserfs,那是不可能的,但是用tar备份,就可以做到,因为tar本质只是打包和解包文件,并不会关注分区的文件系统的格式,当然,前提是,在解包前,目标分区你要先格式化好。
tar备份Linux系统的缺点
需要一个LiveCD,或者任一种引导到一个基本CLI模式Linux系统的方式,因为需要运行tar及对目标分区进行格式化,但这个基本上是很容易做到的,不算大问题。
速度,Clonezilla备份我的ARCH+KDE系统,大概只需要5分钟,从生成的文件看,也是一个.gz文件,但是不知道为什么,用tar备份一样的系统,要打包半个小时左右,速度差很多,但好在一般打包都是一次,解包才是多次,而解包速度tar和Clonezilla是差不多的。
下面说正题:tar备份Linux系统的方法,具体步骤如下
一、引导到基本Linux系统,可用LiveCD,我个人用是grub4dos引导U盘上的archboot ISO镜像。
二、将源分区挂到系统的一个目录下,一般是/mnt,至少我选的是这个。
三、在/mnt下执行“;tar jcvpf backup.tar.bz2 ./ –exclude=files”,其中backup.tar.bz2是备份文件的名字,–exclude=files是要排除的文件及文件夹,要施加多次–exclude=参数,具体要排除的文件及目录如下:
/mnt/*,当然,也可以直接的排除/mnt目录,这个无所谓
/proc/*,这个和网上说的直接排除/proc目录不同,我试了一下,如果直接排除了目录,会影响ARCH的启动,其他发行版不知
/sys/*,同上,建议把目录留下
/tmp/*,这个可以直接排除/tmp目录,但是还是觉得留下目录,排除目录下的东西比较好
/opt,这个直接排除目录就行了,反正如果有东西要装在/opt下,目录不存在的话,会自己创建的
/media/*,这个排除目录还是目录下的内容其实无所谓
/var下的一些东西,这个/var不能完全排除,但是这个目录下的一些log和缓存可以排除,具体的自己选,对于各发行版,备份前记得用各自的命令把软件包缓存清一下,不然……
备份文件本身,这个比较傻,但tar的确是这样做的,因为你备份了当前目录下的东西,而备份文件又是在当前目录下,所以,它会把自己也加进去,这个,不知道说什么好。
四、解包,这个是恢复系统的时候用的,没什么好说的,简单的tar解包指令就行了,目录分区先格式化好,然后挂载到某处,直接解包就行了。
相关文章推荐
- Linux iptables参数详解
- Linux基础(二)常用命令1
- linux c 之signal 和sigaction区别
- linux命令五:useradd/userdel/usermod
- linux 信号signal和sigaction理解
- 造轮子计划之linux下通过matlab读写mat文件
- centos中的配置文件
- Linux 系统挂载数据盘
- (总结)RHEL/CentOS 7.x的几点新改变
- Linux上安装JDK
- LINUX系统中的一次性定时任务
- 修改Linux中的用户名
- Linux 如何通过命令仅获取IP地址
- linux signal 用法和注意事项
- 12 Linux下crontab详解
- CentOS网络启动错误
- linux 使用FIO测试磁盘iops(转载)
- centos 64bit 安装 redmine 记录
- imx6sx-sdb.dtb imx6sx-sdb.dts 设备树 (d:\swwork\solo\linux-3.14.28\arch\arm\boot\dts)
- linux 两次 connect()