Linux系统备份及还原全过程

 更新时间:2025年12月29日 10:10:51   作者:大侠运维联盟  
Timeshift是一款用于Linux系统的开源系统还原工具,类似于Windows的“系统还原”或macOS的TimeMachine,它通过创建文件系统的快照来实现系统回滚,支持RSYNC和BTRFS模式,自动或手动创建快照,并且可以选择只备份系统文件

一、Timeshift 是什么?

Timeshift 是一个用于 Linux 系统的开源系统还原工具,其功能类似于 Windows 的“系统还原”或 macOS 的 Time Machine。

它主要用于创建文件系统的快照(snapshots),以便在系统出现问题(如软件崩溃、配置错误、更新失败等)时,能够快速回滚到之前正常工作的状态。

主要特点:

快照类型

  • RSYNC 模式:使用 rsync 和硬链接来创建快照,节省磁盘空间。
  • BTRFS 模式(仅限 Btrfs 文件系统):利用 Btrfs 的子卷快照功能,效率更高、占用更少资源。

自动/手动快照

  • 可设置定时任务(如每天、每次启动、每次升级前)自动创建快照。
  • 也支持用户手动触发快照。

只备份系统文件

  • 默认情况下,Timeshift 不会备份用户数据(如文档、图片、下载等),只备份系统目录等),以避免占用过多空间并专注于系统恢复。

图形界面 + 命令行支持

  • 提供直观的 GUI(基于 GTK),适合普通用户。
  • 也提供命令行工具`,适合高级用户或脚本自动化。

安全回滚

  • 回滚操作会将整个系统恢复到快照时的状态,但保留当前用户的主目录(除非特别指定)。

使用场景举例:

  • 升级系统后出现驱动不兼容 → 回滚到升级前的快照。
  • 误删关键配置文件 → 从最近快照中恢复。
  • 测试新软件导致系统不稳定 → 快速还原到干净状态。

1.安装Timeshift(适合桌面用户)

# Ubuntu
sudo apt update
sudo apt install timeshift

# centos
sudo yum install timeshift

2.图形化备份

2.1启动

快照类型一般选择RSYNC。

快照位置选择你的备份盘:

快照等级根据自己需求来,我一般是有需要才备份,所以禁用了自动备份。

备份目录的话我是都选了

后面的筛选和Misc我都没动,默认即可

然后点击创建(Create)即可生成如下快照

3.系统还原-图形化界面操作

首先选择要恢复的快照,然后点击恢复;

接着跳出界面:默认下一步就行

4.系统还原-终端命令操作

# 备份
sudo timeshift --create --comments "快照名"

#设置备份目标目录
#我们可以通过配置 /etc/timeshift/timeshift.json 中的 backup_device_uuid 来确定备份位置。
#通过如下命令可以查看磁盘 UUID :  blkid    cat /etc/fstab


# 查看。查看已存在的快照
sudo timeshift --list


# 删除快照
sudo timeshift --delete --snapshot '2025-12-18_10-43-33'

# 恢复。选择上面已存在的其中一个快照进行恢复,如:快照'2025-12-18_09-32-13'。
# --skip-grub 表示不恢复 GRUB 引导配置(通常推荐,除非你明确知道引导也坏了)。
sudo timeshift --restore --snapshot '2025-12-18_09-32-13' --skip-grub


二、使用rsync进行增量和全量备份

rsync 是Linux下高效、灵活的文件同步与备份工具,支持本地和远程备份,适合定期增量备份。

操作步骤:

  • 安装rsync(如未安装):
sudo apt install rsync(Debian/Ubuntu)
sudo yum install rsync (CentOS/RHEL)
  • 执行全量备份到外部目录或挂载设备:
sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /backup/location/

说明参数含义:

  • -a:归档模式,保留权限、链接等
  • -A:保留ACL属性
  • -X:保留扩展属性
  • -v:显示详细过程
  • –exclude:排除不必要的系统目录

后续可配合cron定时执行,实现自动增量备份。

三、使用tar打包系统镜像

tar 是最基础的归档工具,适合创建完整的系统快照,可用于紧急恢复。

操作步骤:

  • 挂载一个外部存储设备用于存放备份文件,例如挂载U盘到 /mnt/backup
  • 进入根目录并运行tar命令:
sudo tar -cvpzf /mnt/backup/system-backup-$(date +%Y%m%d).tar.gz \
  --exclude=/proc \
  --exclude=/lost+found \
  --exclude=/sys \
  --exclude=/dev \
  --exclude=/backup* \
  --exclude=/mnt \
  --exclude=/media \
  /

恢复时,将备份文件放在新系统中解压:

sudo tar -xvpzf system-backup-20250405.tar.gz -C /restore/location/

注意:恢复前需确保目标分区结构已准备就绪。

四、使用dd进行磁盘级备份

dd 可以对整个磁盘或分区进行位级复制,适用于创建完全一致的镜像。

操作步骤:

  • 查看磁盘信息:
lsblk 或 fdisk -l 找到源磁盘(如 /dev/sda)
  • 将整个磁盘备份为镜像文件:
sudo dd if=/dev/sda of=/mnt/backup/sda-backup.img bs=64K conv=noerror,sync
  • 压缩镜像节省空间:
gzip /mnt/backup/sda-backup.img
  • 恢复时反向操作:
sudo dd if=/path/to/sda-backup.img of=/dev/sda

注意:dd操作不可逆,务必确认输入输出设备正确。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Ubuntu16.04环境下搭建FTP服务器的教程

    Ubuntu16.04环境下搭建FTP服务器的教程

    这篇文章主要介绍了Ubuntu16.04搭建FTP服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • ubuntu环境下安装memcache及启动的方法

    ubuntu环境下安装memcache及启动的方法

    这篇文章主要介绍了ubuntu环境下安装memcache及启动的方法,结合实例形式简单分析了ubuntu环境下memcache的安装、启动及简单测试方法,需要的朋友可以参考下
    2018-03-03
  • Linux LVM逻辑卷相关管理方式

    Linux LVM逻辑卷相关管理方式

    这篇文章主要介绍了Linux LVM逻辑卷相关管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 安装CentOS 6.x报错

    安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法

    今天在安装CentOS6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda,真是不知如何解决,下面小编把我的思路分享到脚本之家平台,需要的朋友参考下
    2019-11-11
  • 在Ubuntu中如何查看网络路由表详解

    在Ubuntu中如何查看网络路由表详解

    这篇文章主要给大家介绍了关于在Ubuntu中如何查看网络路由表的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ubuntu具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 详解Linux指令文件覆盖和文件追加

    详解Linux指令文件覆盖和文件追加

    这篇文章主要介绍了Linux指令文件覆盖和文件追加,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 如何确保Apache Flink流处理的数据一致性和可靠性

    如何确保Apache Flink流处理的数据一致性和可靠性

    Apache Flink通过其先进的状态管理、检查点机制、时间语义和容错策略,确保了在流处理中的高数据一致性和可靠性,本文详细介绍了Flink中保证数据一致性和可靠性的机制,感兴趣的朋友一起看看吧
    2024-08-08
  • apache启用gzip压缩的实现方法

    apache启用gzip压缩的实现方法

    对于部署在Linux服务器上的PHP程序,在服务器支持的情况下,我们建议你开启使用Gzip Web压缩,以前脚本之家介绍了iis中的开启方法,这篇文章主要介绍了linux中apache的开启方法
    2013-06-06
  • Linux单目录挂载多块磁盘的操作步骤

    Linux单目录挂载多块磁盘的操作步骤

    这篇文章主要介绍了Linux单目录挂载多块磁盘的操作步骤,Linux将多块磁盘挂载到一个目录,特此记录,方便以后使用,需要的朋友可以参考下
    2024-02-02
  • 详解firewall的规则设置与命令(白名单设置)

    详解firewall的规则设置与命令(白名单设置)

    这篇文章主要介绍了详解firewall的规则设置与命令(白名单设置),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11

最新评论