系统备份
linux秉承一切皆文件的思想,系统备份就相当于把整个/(根目录)所有文件打包压缩保存。
备份前先切换到root用户,避免权限问题,然后切换到/(根目录)。
通过下面命令备份整个系统文件
tar -cvpzf /home/ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt /
这个是备份文档的存放路径,我的我的备份目录为/home,ubuntu_backup@date +%Y-%m+%d.tar.gz是我备份文件的名字,这里用了一个shell命令date +%Y-%m+%d用于获取当前时间,因为备份嘛,注明时间戳还是有必要的,然后.tar.gz是说明这个文件是用tar进行打包,gzip进行压缩的。所以要根据你自己情况换为你自己的备份文件目录和文件名。
参数:
-c: 新建一个备份文档
-v: 显示详细信息
-p: 保存权限,并应用到所有文件
-z: 用gzip压缩备份文档,减小空间
-f: 指定备份文件的路径
–exclude: 排除指定目录,不进行备份
Note: 注意–exclude参数,接下来谈谈那些目录没有备份,以及为什么不备份。
请注意,如果没有把/home或者/boot目录单独分一个区,一定不要加–exclude=/home或–exclude=/boot参数!!!
/proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。既然是系统自动创建,也就没必要备份的必要了。
/tmp:一个临时文件夹,系统的一些临时文件会放在这里。
/lost+found:系统发生错误时(比如非法关机),可以在这里找回一些丢失文件。
/media:多媒体挂载点,像u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
/mnt:临时挂载点,你可以自己挂载一些文件系统到这里。
/run:系统从启动以来产生的一些信息文件。
/home:用户家目录,存放用户个人文件和应用程序。
/boot:和系统启动相关的文件,像grub相关文件都放在这里,这个目录很重要!
最后还要提一下就是,有可能备份到最后系统会提示"tar: 由于前次错误,将以上次的错误状态退出",这个警告可以忽略,没什么影响的。
系统还原
系统备份的意义就在于系统哪天发生意外时可以系统还原拯救回来
这里有两种还原方式,如果你系统出问题了,但是还可以进入终端,那就可以直接解压备份文件进行还原。但是如果你连系统都不能登录了,就要使用LiveCD(U盘启动盘)进行还原了。
直接操作
操作前切换到root,并且换到/根目录。
tar -xvpzf /home/ubuntu_boot_backup@2019-7-30.tar.gz -C /
LiveCD
操作之前请确保你已经有一个制作好的ubuntu U盘启动盘。进入系统后,打开终端还是先切换到root。
mkdir /mnt/sys
mount /dev/sdaX /mnt/sys
tar -xvpzf /home/ubuntu_boot_backup@2016-6-6.tar.gz -C /mnt/sys
注意先创建一个临时目录用于挂载你的/根目录分区,sdaX代表你的/根目录分区,如果不知道就用fdisk -l查看一下,另外如果你的移动硬盘没有被自动挂载,你也需要手动创建一个临时目录进行挂载。
Note:因为 tar还原是只会覆盖相同的文件,但是这种方法只是恢复备份时的文件,就是说如果某些文件丢失或损坏了,这样可以恢复修复这些文件,但不能删除自备份到恢复前这期间所生成的其它文件,说白了就是假如你备份系统时有1234这四个文件,如果三天后,由于某些原因变成了1234’5(4改变了),你恢复后,就会变成12345,其中4’恢复成备份时的文件,5保留。所以大家要是想彻底还原成备份时候的样子最好彻底删除根目录下的所有文件,然后再还原,这样就可以还原成备份时的样子了。
删除整个文件系统,比如运行命令rm -fr /*,那么你还原系统后一定要把你之前没有备份的目录手动创建,不然重启系统是有问题的。
mkdir proc tmp lost+found media mnt run