本文主要介绍centos系统的备份和还原。
我们在使用Windows时,可以使用ghost工具对系统进行备份,那么Linux系统是如何备份的呢
1. 备份系统
在linux系统中,有一句话叫做一切都是文件,既然是文件,我们就可以通过打包的方式来备份。
使用root身份登录系统,进行打包操作。
1 | # tar cvpzf /backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys –exclude=/sys / |
上面的命令将/下的所有东西打成一个包,有些系统上动态的文件可以不用打包,排除出去,比如:/proc,/sys。也可以把不用备份的文件排除出去。
2. 系统还原
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。
1 | # tar xvpfz /backup.tgz -C / |
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
1 | # mkdir proc |
保险起见,最好是执行一下如下命令:
1 | # restorecon -Rv / |
restorecon命令是用来恢复文件的SELinux配置信息的。
最后重启服务器,重新启动时观察一下,有没有服务没有起来。
3. 还原到其他的Linux中
有时候会出现这种情况,备份的Linux系统已经损坏,比如硬盘坏了,上面的备份文件还有,那么是否可以恢复呢,答案是肯定的。
重新准备一台服务器,最好是分区、系统版本和损坏的服务器是一致的,安装好相同版本的Linux系统。将备份文件backup.tgz拷贝到新的服务器中。
1 | # mkdir /mnt/backup/ |
上面的命令是”cp -ari /mnt/backup/* /“,意思是拷贝所有的备份文件,将/下的目录进行覆盖。print “n”的意思是同名文件不覆盖。这样做就是将老系统中的文件复制到新系统,不覆盖已经存在的文件。
那么为什么不能覆盖呢?每个Linux系统中有一些唯一的信息不能覆盖,否则系统会坏掉。比如:
1 | # blkid |
每个系统的分区都有一个UUID,这个是唯一的,覆盖之后就会出问题。
1 | # cat /etc/fstab |
系统中的fstab中用到了UUID,覆盖了文件会导致系统启动不了。
然后执行:
1 | # restorecon -Rv / |
这一步是必须的,否则重启系统会报错。
最后就是观察重启系统时,是否有服务没启动,需要手动将其启动。