ubuntu备份与恢复

引言:从 Windows 到 Linux 的思维转变
在使用 Ubuntu 之前,相信很多人和我一样,都有过漫长的 Windows 使用经历。如果你曾经备份过 Windows 系统,那么那段记忆可能让你至今难忘:首先需要找到一个备份工具(通常都是闭源的商业软件),然后重启电脑,进入一个专门的备份环境,在 DOS 般的界面中等待漫长的备份过程。Norton Ghost 是那个年代备份 Windows 系统时最常用的工具,而每次备份都像是一场赌博 —— 你永远不知道备份完成后能不能成功恢复。
在备份 Windows 系统的时候,你可能也曾想过:我能不能直接把整个 C 盘打包成一个 ZIP 文件呢?在 Windows 下,这几乎是不可能的。因为 Windows 中有大量文件在运行时是被系统锁定的,不允许拷贝或覆盖。因此你需要专门的备份工具,以特殊的方式处理这些文件。
然而,当你踏入 Linux 的世界后,一切变得不同了。Linux 以其开放和透明的文件系统设计,让系统备份变得出奇的简单和直接。这篇笔记记录了我在 Ubuntu 上使用 TAR 命令进行系统备份和恢复的完整过程,以及在这个过程中获得的一些深刻体会。
为什么 Linux 备份比 Windows 简单?
Windows 的困境
Windows 的文件系统(NTFS)在运行时会对大量系统文件施加独占锁,阻止其他进程访问。这意味着你无法在系统运行时直接复制这些文件。Ghost 等备份工具通过在底层直接读取磁盘扇区来绕过文件系统的限制,但这需要专门的软件支持,且不同版本对文件系统的支持程度参差不齐。
Linux 的优势
Linux 的文件系统(如 Ext3、Ext4)在设计上就没有这种限制。Linux 不会限制 root 用户对任何文件的访问权限 —— 只要你有 root 权限,你可以读取、复制、压缩分区上的任何文件。这意味着我们可以使用最基础的 TAR 命令来完成整个系统的备份,无需任何第三方工具。
事实上,Ghost 这类备份工具对于 Linux 文件系统的支持很糟糕。一些 Ghost 版本只能完善地支持 Ext2 文件系统,如果你用它来备份 Ext3 或 Ext4 文件系统,很可能会丢失一些重要的数据(如扩展属性和日志信息)。

第一部分:备份系统
基本思路
备份 Ubuntu 系统的核心思路非常朴素:就像你备份或压缩其他东西一样,使用 TAR 命令。 把整个文件系统打包成一个压缩文件,就这么简单。
完整备份命令
首先切换到 root 用户:
1 | sudo su |
然后进入文件系统的根目录:
1 | cd / |
下面是完整的备份命令:
1 | tar cvpzf backup.tgz \ |
命令详细解读
让我们逐段拆解这个命令的含义:
| 参数 | 含义 |
|---|---|
tar |
备份所使用的程序,Tape ARchive 的缩写 |
c |
Create:创建新的归档文件 |
v |
Verbose:显示详细的处理过程 |
p |
Preserve:保持权限,保留所有文件和目录的原始权限 |
z |
使用 gZip 压缩来减小文件体积 |
f |
File:指定归档文件名 |
backup.tgz |
生成的归档文件名 |
/ |
要备份的目录,这里代表整个文件系统 |
为什么需要排除这些目录?
在归档文件名 backup.tgz 和要备份的目录 / 之间,我们使用 --exclude 参数排除了以下目录:
| 排除的目录 | 原因 |
|---|---|
/proc |
虚拟文件系统,包含运行时进程信息,不需要也不应该被备份 |
/lost+found |
文件系统修复时使用的目录,通常为空 |
/backup.tgz |
备份文件本身必须排除,否则会陷入无限递归 |
/mnt |
挂载点目录,排除它可避免备份挂载的外部设备 |
/sys |
虚拟文件系统,包含内核和硬件信息,不需要备份 |
额外注意事项
关于 /dev 目录:有人可能建议你也把 /dev 目录排除在外。但我不建议这样做。/dev 包含了一些重要的设备节点信息,排除它可能会导致恢复后某些设备无法正常工作。
关于 /media 目录:在执行备份命令之前,请确认 /media 上没有挂载任何东西(如光盘、移动硬盘)。如果有挂载的外部设备,必须把 /media 也加入排除列表,否则会将外部设备的内容也一并备份。
1 | # 检查是否有挂载的外部设备 |
关于压缩方式的选择:上面的命令使用 gzip 压缩(z 参数)。你也可以使用 Bzip2 压缩(j 参数),它的压缩率更高,但速度会慢一些:
1 | tar cvpjf backup.tar.bz2 \ |
| 压缩方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
gzip (.tgz) |
速度快 | 压缩率一般 | 时间敏感的场景 |
bzip2 (.tar.bz2) |
压缩率高 | 速度慢 | 存储空间敏感的场景 |
执行备份
在执行备份命令之前,请再次确认你输入的命令是否正确。备份过程可能需要一段不短的时间,具体取决于文件系统的大小和磁盘 I/O 性能。
1 | # 执行备份 |
备份完成后,在文件系统的根目录将生成一个名为 backup.tgz 的文件,它的体积可能非常大。建议将它拷贝到外部存储设备上,比如 DVD、移动硬盘或网络存储。
常见提示信息
在备份命令结束时,你可能会看到以下提示:
1 | tar: Error exit delayed from previous errors |
在大多数情况下,这个提示是因为 TAR 在备份过程中遇到了一些无法访问的虚拟文件(如 /proc 下的某些动态文件),可以安全地忽略它。

第二部分:恢复系统
警告:请务必小心!
在进行系统恢复操作时一定要小心!如果你不清楚自己在做什么,有可能会丢失重要数据。请务必谨慎操作,建议在恢复之前先备份重要个人文件。
恢复步骤
切换到 root 用户,并把备份文件 backup.tgz 拷贝到分区的根目录下:
1 | sudo su |
Linux 的一个美妙之处:你可以在一个正在运行的系统中恢复系统,而不需要用启动光盘来专门引导。当然,如果你的系统已经崩溃无法启动了,你可以用 Live CD 来启动,效果是完全一样的。
执行恢复命令
如果备份文件使用的是 gzip 压缩:
1 | tar xvpfz backup.tgz -C / |
如果备份文件使用的是 bzip2 压缩:
1 | tar xvpfj backup.tar.bz2 -C / |
恢复命令解读
| 参数 | 含义 |
|---|---|
x |
eXtract:从归档文件中提取文件 |
v |
Verbose:显示详细过程 |
p |
Preserve permissions:恢复原始权限 |
f |
File:指定归档文件名 |
z |
使用 gZip 解压 |
j |
使用 Bzip2 解压 |
-C / |
指定解压到根目录 |
重要:上面的命令会用备份文件中的内容覆盖分区上的所有现有文件。这是一个破坏性操作,请务必确认你已经做好了必要的准备。
恢复后的收尾工作
恢复命令结束后,你的工作还没有完成!必须重新创建那些在备份时被排除在外的目录:
1 | mkdir /proc |
如果不创建这些目录,系统在重启后可能会出现各种异常。因为这些目录是 Linux 系统正常运行所必需的挂载点和接口。
重启验证
当你重启电脑后,你会发现一切东西都恢复到你创建备份时的样子了!所有的配置文件、已安装的软件、用户数据,全部回到了备份时的状态。
实战建议与最佳实践
1. 定期备份
建议养成定期备份的习惯。可以根据系统变更的频率来制定备份策略:
- 重大变更后备份:如升级系统内核、安装重要软件后
- 定期备份:如每周或每月一次
- 关键数据单独备份:个人文档、数据库数据等建议单独备份
2. 增量备份
对于频繁变更的系统,可以考虑使用 TAR 的增量备份功能:
1 | # 完整备份 |
3. 备份验证
定期验证备份文件的完整性:
1 | # 查看备份文件内容(不解压) |
4. 异地存储
不要把所有鸡蛋放在一个篮子里。将备份文件存储在多个位置:
- 本地移动硬盘
- 网络存储(NAS)
- 云端存储

与现代备份工具的比较
虽然 TAR 备份简单直接,但在现代 Linux 环境中,也有更多专业化的备份工具可供选择:
| 工具 | 特点 | 适用场景 |
|---|---|---|
tar |
简单直接,无需安装 | 快速全量备份 |
rsync |
增量备份,效率高 | 定期同步备份 |
Timeshift |
系统快照,图形界面 | 桌面用户 |
Borg Backup |
去重加密,高效 | 企业级备份 |
Clonezilla |
磁盘级克隆 | 完整系统迁移 |
TAR 的优势在于它的普遍性和简单性 —— 任何 Linux 系统都预装了 TAR,不需要额外安装任何软件。但如果你需要更高级的功能(如增量备份、加密、去重),建议考虑使用专门的备份工具。
写在最后:备份是一种态度
这篇笔记记录于 2013 年 11 月,是我对 Linux 系统备份的一次系统性学习。从 Windows 到 Linux 的转变,不仅仅是操作系统的切换,更是思维方式的升级。Linux 教会我的最重要的一课是:理解系统的底层原理,远比记住操作步骤更有价值。
在 IT 的世界里,数据就是生命。无论你使用的是 Windows、Linux 还是 macOS,养成定期备份的习惯都是对自己最负责任的做法。而 Linux 用 TAR 命令就能完成的系统备份,更是让我深刻体会到了开源系统的优雅和力量。
记住一句话:没有备份的系统,就是在裸奔。





