鉴于学习过程中,所用的机器太老,或者搭建环境时候,经常系统会崩溃,没有大量的时间去查阅资料修复系统,所以经常需要重新安装系统以及所需的系统环境,这是一个十分繁琐的工作,现在查阅了相关的资料,寻求可以备份Linux系统的方法,并成功还原。

1. 实验环境

安装了一台Ubuntu14.04 64位的操作系统,并在里面配置了Java1.8的环境。

ubuntu@ubuntu2:~$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
ubuntu@ubuntu2:~$ echo $JAVA_HOME
/home/ubuntu/environment/jdk1.8.0_221

2. 进行系统备份

2.1、首先切换成root用户,并cd到根目录/下:

ubuntu@ubuntu2:~$ su -
密码: 
root@ubuntu2:~# cd /
root@ubuntu2:/# 

2.2、在根目录/下执行tar命令进行系统备份,实际上是对系统文件打包成压缩文件(采用gzip压缩)

tar cvpzf backup1028.tgz --exclude=/proc --exclude=/backup1028.tgz --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/tmp /

若是采用Bzip2的压缩方式进行压缩,则命令如下:

tar cvpjf backup1028.tgz.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

其中:
Bzip2比gzip的压缩率高,但是速度慢一些。
“tar”命令是对文件的备份命令
“cvpfz”是tar命令的选项,意思是“创建档案文件”(备份文件)、“保持权限”(保留所有东西原来的权限)、“使用gzip的压缩方式”。
“backup.tgz”是我们最后的到的备份文件,即在根目录下会有一个“backup.tgz”
“/”是我们要备份的目录,在这里是整个文件系统,即根目录/。
“–exclude=/proc”,指的是在备份的时候排除“/proc”这个文件夹,这个文件夹下的文件对我们系统的恢复没有影响,同理“/tmp”也可以排除,在这里大家酌情选择,我排除了“/proc”、“/lost+found”、“/backup.tgz”(执行tar命令后,会生成这个文件,自然不能出现“自己备份自己”的情况)、“/mnt”、“/sys”这几个文件夹。

2.3、执行上述的tar命令后,系统将开始压缩备份,这会消耗大量的时间。
在这里插入图片描述

3、备份完毕

3.1、备份完毕后,在根目录下会有一个“backup1028.tgz”文件,可能在命令结束以后会出现一个“tar: Error exit delayed from previous errors”或者“tar: 由于前次错误,将以上次的错误状态退出”的报错,我也没有查到相关的原因,大多数人都说这个报错可以忽略。

4、还原系统(验证系统备份、恢复的可行性)

此前系统的用户目录下的文件为:
在这里插入图片描述

4.1、在用户目录下删除部分文件,并将之前配置的Java的环境删除(包括jdk和path),并且将之前安装的vim软件卸载掉。
4.2、执行恢复命令并还原系统
Linux系统是可以在运行期间进行还原的,如果电脑可以启动的话,直接执行命令还原即可(若不能启动系统,则需要通过U盘启动进行恢复了)

对于gzip压缩格式的恢复命令
tar xvpfz /backup1028.tgz -C /
对于Bzip2压缩格式的恢复命令
tar xvpfj /backup1028.tar.bz2 -C /

然后又消耗大量的时间
在这里插入图片描述

最后还原完毕,需要我们保证/proc、/lost+found、/mnt、/sys、/tmp这几个文件夹是存在的,我这几个文件夹都是存在的,我也就没有重新创建
如果不存在,需要重新创建,并更改它们的权限,例如:

原先/tmp的权限是
drwxrwxrwt   5 root root       4096 10月 29 16:50 tmp/

若是自己创建的/tmp文件夹的默认权限是drwxrwxr-x,若不一致,则开机会出现问题。

5、重新启动系统

reboot

系统重启后,文件都变成了还原前的样子,并且之前卸载的vim软件也正常可以用了,java环境也还原可以用了
在这里插入图片描述
以后可以把自己需要的系统环境打包,再也不怕系统崩溃了~~~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐