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盘
将Ubuntu 20.04 desktop版本的ISO镜像装载到虚拟机B电脑(实际操作可以用U盘写desktop镜像启动)并启动进入bois,选择优先光驱启动
启动时选择Try Ubuntu,进入试用系统环境,挂载U盘
3、系统文件恢复
可以通过查看待恢复B电脑硬盘的文件了解路径,一般路径都是 /media/ubuntu/xxxxxxxxxxxxxxxxxxxxxxxxxxx/ ,xxx代表不同的磁盘分区,其中B电脑和U盘的不同路径
进入到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电脑
评论