Linux系统备份与还原
- 1. 整盘备份与还原
- 1.1. 记住几个这里要经常用到操作
- 1.2. 整盘克隆的方法
- 2. [推荐]非整盘克隆的方法
- 2.1. 备份系统
- 2.2. 还原系统
1. 整盘备份与还原
1.1. 记住几个这里要经常用到操作
* 查看存储设备(硬盘、U盘、磁盘分区)的使用情况:`df -h`
* 要查看存储设备的内容: 挂载位置通常在/mnt/, 用ls命令即可查看
* 要查看有几个存储设备:`ls /dev/`,看看里面有多少U盘(sda,sdb,sdc),硬盘(hda,hdb,hdc)
1.2. 整盘克隆的方法
dd命令,是Linux下自带的磁盘备份工具。可以备份还原,整个磁盘,或磁盘的某个分区。类似的工具还有Gnome Disk Utility
,Clonezilla
.
这种方法,速度比较慢,占用的空间大。因为空白数据,也要复制。用gzip等工具压缩一下,存储数据会大大减小,但是克隆、还原的数据并不会减少。
- 如果要直接克隆当前系统的硬盘到USB(我当前的系统也是跑在usb上的,就是sda)。这样该USB里就跟该系统一样了
dd if=/dev/sda of=/dev/sdc
- 如果要制作当前系统整个盘的镜像。这种方法得到的文件是压缩包,空白部分只保存标记。解压出来是.img文件,就很大了,原盘有多大,它就多大。比如一个32GB的硬盘,里面内容只有700M,这种方法得到的img文件就有32G。
dd if=/dev/sda |gzip > /mnt/sdc1/disk.img.gz
- 如果要根据整盘的镜像装系统。 假设要撞到sdc(sdc1,sdc2只是它的分区)这个u盘中
gzip -dc /mnt/sdc1/disk.img.gz |dd of=/dev/sdc
2. [推荐]非整盘克隆的方法
参考帖子:Linux系统备份与还原,下面内容,差不多算搬运工了(删掉了Bzip2这种方式)
2.1. 备份系统
按照参考贴中备份系统的命令,在openwrt中,亲测不能成功,--exclude
会失效。因为tar: Removing leading '//’ from member names
问题(tar默认是当前路径,当前路径的话/proc
之类的当然不能生效了)
所以,我将路径改为相对路径,就成功了。命令如下
cd /
tar cvpzf backup.tgz --exclude=./proc --exclude=./lost+found --exclude=backup.tgz --exclude=./mnt --exclude=./sys --exclude=./media ./
解析:
tar
:当然就是我们备份系统所使用的程序了。cvpfz
:是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。backup.gz
:是我们将要得到的档案文件的文件名。/
: 是我们要备份的目录,在这里是整个文件系统。- 需要排除一些没有用的资源:
- backup.tgz: 它自己。不排除,那不就死循环了嘛
- 没用的
/proc
、/lost+ found
、/sys
/mnt
,/media
: 这两个必须排除,否则里面挂载的存储设备(光盘、移动硬盘、U盘)的内容,都会被复制
- 有人可能会建议你把“/dev”目录排除在外。但是该作者不建议
还可以用Bzip2来压缩文件,比上述方法中的gzip压缩率高,但是速度会慢一些。如果感兴趣,可参考上面提到的参考贴
执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。
tar还可以做增量备份,若感兴趣,请参考Tar命令备份还原Linux系统
2.2. 还原系统
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。
恢复系统的命令:
tar xvpfz backup.tgz -C /
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys
当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!