首页 服务器运维正文

Linux系统备份及恢复系统思路整理

本文为借鉴经验并按实际梳理,测试成功,环境如下:

VMware虚拟机Ubuntu20.04系统、实体电脑Ubuntu20.04系统


主要思路如下:由于linux系统一切皆文件的理念。通过tar工具将除启动分区(/boot)、/etc/fstab和动态生成的文件夹(media、proc等,下详细列出)将根目录下所有文件夹打包并压缩成一个文件backup.tar.gz。恢复时,通过Ubuntu Desktop版的ISO镜像进入试用环境(可直接进入其他系统或者系统ISO镜像写U盘进入试用环境,不能直接进入目标恢复系统),然后将backup.tar.gz解压到目标系统的根目录,恢复/etc/fstab,重启系统后正常运行。


原电脑:A,实体电脑,安装了Ubuntu20.04系统,安装有nginx、anaconda等软件

恢复的电脑:B,VMware虚拟机,安装了纯净的Ubuntu20.04系统(本次测试为异地恢复,非恢复原系统,原理一样)


1、将A电脑的相关文件打包到一个压缩文件

(c 创建,v 显示指令执行过程,p 保留原来权限,z 进行压缩,f指定备份文件, --exclude 指不打包的文件/夹)
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/media  --exclude=/swap.img  --exclude=/boot /


2、B电脑安装好纯净的系统(如果在原电脑恢复,可以跳过这步),提前将backup.tar.gz拷贝到一个U盘

空白新系统.jpg

将Ubuntu 20.04 desktop版本的ISO镜像装载到虚拟机B电脑(实际操作可以用U盘写desktop镜像启动)并启动进入bois,选择优先光驱启动

选择desktop镜像.jpg

启动时选择Try Ubuntu,进入试用系统环境,挂载U盘

分配USB到虚拟机.jpg

3、系统文件恢复

可以通过查看待恢复B电脑硬盘的文件了解路径,一般路径都是 /media/ubuntu/xxxxxxxxxxxxxxxxxxxxxxxxxxx/ ,xxx代表不同的磁盘分区,其中B电脑和U盘的不同路径

硬盘位置.jpg

进入到B电脑硬盘分区的目录,通过sudo cp 命令备份/etc/fstab到U盘目录。(注意如果boot是单独一个分区,无需理会,但是在当前分区下,则注意不能删/boot,最好就是直接保留/boot)

然后删除除了第一步压缩--exclude 排除的文件/夹,即保留proc、lost+found、mnt、sys、media、swap.img、boot

解压 /为具体解压到那个目录(x 还原,v 显示指令执行过程,p 保留原来权限,z 进行压缩,f指定备份文件),注意backup.tar.gz文件路径和解压目标路径需要根据实际补全。
tar xvpzf backup.tar.gz -C /
解压完,恢复B电脑备份的/etc/fstab文件,Axxx-Bxxx指U盘所在路径,当前路径为B电脑的分区根目录
sudo cp /media/ubunt/Axxx-Bxxx/fstab ./etc/fstab

4、重启电脑,恢复完成,查询原A电脑的环境已经恢复到了B电脑

切换成功.jpg

评论