Ubuntu系统备份

介绍Ubuntu系统备份的方法。

1 前言

在Ubuntu下经常会遇到系统环境崩溃、目录误删除等问题,为了提升开发效率,有必要对系统已有的环境进行备份。
经与公司yym探究,总结如下方案。

2 几种备份命令

备份前先切换到root用户,避免权限问题,然后切换到/(根目录),执行以下命令

1
2
sudo su
cd /

2.1 备份根目录命令

1
tar -cvpzf /media/yangfei/jk-robot/backup/system/ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run /

注意:备份到最后系统会提示”tar: 由于前次错误,将以上次的错误状态退出”,这个警告可以忽略.

2.2 备份home命令

1
tar -cvpzf /media/yangfei/jk-robot/backup/system/ubuntu_home_backup@`date +%Y-%m-%d`.tar.gz /home

2.3 备份boot命令

1
tar -cvpzf /media/yangfei/jk-robot/backup/system/ubuntu_boot_backup@`date +%Y-%m-%d`.tar.gz /boot

3 系统还原

3.1 直接操作

1
2
操作前切换到root,并且换到/根目录。
tar -xvpzf /media/yangfei/jk-robot/backup/system/ubuntu_backup@2021-01+04.tar.gz -C /

3.2 使用LiveCD

1
2
3
4
操作之前请确保你已经有一个制作好的ubuntu U盘启动盘。进入系统后,打开终端还是先切换到root。
mkdir /mnt/sys
mount /dev/sdaX /mnt/sys
tar -xvpzf /media/yangfei/jk-robot/backup/system/ubuntu_boot_backup@2021-01+04.tar.gz -C /mnt/sys

注意:先创建一个临时目录用于挂载你的/根目录分区,sdaX代表你的/根目录分区,如果不知道就用fdisk -l查看一下,另外如果你的移动硬盘没有被自动挂载,你也需要手动创建一个临时目录进行挂载。

说明:
/media/yangfei/jk-robot/backup/system/ubuntu_backup@date +%Y-%m+%d.tar.gz
这个是备份文档的存放路径,我的移动硬盘名字叫jk-robot,挂载在/media/yangfei目录下,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参数,接下来谈谈那些目录没有备份,以及为什么不备份。
我的ubuntu系统,共有四个分区,分别是:/、/home、/boot、swap。

4 建议与解释

1)非常建议系统备份的时候按照分区进行分别备份,并且也不建议安装系统的时候只给系统分一个分区。有四个分区的好处是,一般系统坏了都是/分区的问题,/home没什么关系,所以这种情况,可以只还原/分区,其他分区完全可以不用动,系统就可以恢复,会节省很多时间。
2)另外,为了保险起见,也可以对/home和/boot备份,但是备份频率完全没必要和/分区一样高。比如/分区每周备份一次,那/home和/boot完全可以一个月备份一次,因为这两个分区出问题的概率真的很小,而且变动也不会太频繁。
3)如果没有把/home或者/boot目录单独分一个区,一定不要加–exclude=/home或–exclude=/boot参数!!!

/proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。既然是系统自动创建,也就没必要备份的必要了。
/tmp:一个临时文件夹,系统的一些临时文件会放在这里。
/lost+found:系统发生错误时(比如非法关机),可以在这里找回一些丢失文件。
/media:多媒体挂载点,像u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
/mnt:临时挂载点,你可以自己挂载一些文件系统到这里。
/run:系统从启动以来产生的一些信息文件。
/home:用户家目录,存放用户个人文件和应用程序。
/boot:和系统启动相关的文件,像grub相关文件都放在这里,这个目录很重要!

Note:因为tar还原是只会覆盖相同的文件,但是这种方法只是恢复备份时的文件,就是说如果某些文件丢失或损坏了,这样可以恢复修复这些文件,但不能删除自备份到恢复前这期间所生成的其它文件,说白了就是假如你备份系统时有1234这四个文件,如果三天后,由于某些原因变成了1234’5(4改变了),你恢复后,就会变成12345,其中4’恢复成备份时的文件,5保留。所以大家要是想彻底还原成备份时候的样子最好彻底删除根目录下的所有文件,然后再还原,这样就可以还原成备份时的样子了。
删除整个文件系统,比如运行命令rm -fr /*,那么你还原系统后一定要把你之前没有备份的目录手动创建,不然重启系统是有问题的。

mkdir proc tmp lost+found media mnt run

5 参考网站

https://blog.csdn.net/qq_35523593/article/details/78545530
https://blog.csdn.net/sinat_27554409/article/details/78227496
https://blog.csdn.net/scythe666/article/details/52029407
官网

------ 本文结束感谢您的阅读------
Donate a cup of cola?