一个台式电脑的好备份策略是什么?

不,这不是一个备份工具比较,也不是关于什么备份或为什么备份的征求意见,只是一点关于何时备份和何地备份的信息。
基本上,这是一个策略问题:什么、何地以及何时全部在一起。"如何"并不是真正相关的:市面上有大量备份程序,它们都做同样的基本事情:复制数据
但真正的问题是:这些备份程序是否在复制对您重要的数据?在安装和运行Ubuntu时,应该如何保护您的数据

当涉及到计算机、Ubuntu版本或备份策略时,并没有“一刀切”的解决方案,因此我将其分为5种基本用户类型,每种类型都有自己的答案:

  1. 没有电脑!
  2. 我的电脑并不包含我的生活...
  3. 我的电脑包含我的生活!
  4. 我的电脑就是我的生活!(或者你正在运行UEFI模式!)

由于上述情况并不适用于所有人,以下是给急性子的人:

  1. 我想要最快速度恢复

所以点击上面的链接,选择适合你的用户类型吧!

P.S. 如果你正在运行一个服务器群,并且你已经读到这个问题的这一部分,我很抱歉:这是关于一台单独的个人电脑,而不是一个网络或者服务器群。

5我认为这应该是一个社区维基。 - Anwar
1据我所知,你可以与版主协商将其标记为CW。 - Anwar
你应该考虑哪些不需要备份的内容吗?我在这里提出了这个问题。我最初提问时考虑到像desktop.ini这样的文件,尽管它本身大小不算很大,但我希望超越这个问题,进行真正的优化。 - Ackis
@Ackis:这是一份战略文件,而不是一个具体的步骤指南:因此它提供了备份的广泛指导原则,而不是任何细节。这个问题已经在其他地方得到回答了... ;-) - Fabby
@fabby嗯,我在其他地方没有找到关于不备份的详细信息 - 所以我之前提交了这个问题。:P 但是在战略文件中,你应该提到有些东西是不需要备份的吗? - Ackis
@Ackis 您可以随时在这里提出您感兴趣的特定细节问题,但在我看来,那种细节不适合在这里讨论... ;-) - Fabby
6个回答

1. 我没有电脑!

确实!Ubuntu的被遗忘的大众!但在这里并不被遗忘... ;-)

其他人可能会想知道,但你和我都知道:也许你没有足够的钱买一台自己的电脑,但你有一个安全地放在你的USB闪存盘/笔驱/SD卡/外置硬盘甚至只是你的手机/平板电脑上的个人电脑...

而且你是安全的,对吧?备份???你不需要!它们都安全地放在你的钱包、抽屉或口袋里。

但如果你丢失了它呢?或者它被偷了?或者你舒服地坐下来,它从你手中滑落出去,然后你按下按钮之后才意识到...

  1. 如果你有一个USB闪存盘/笔驱/SD卡/外置硬盘(从现在开始称为"USB闪存盘"),你已经在为一个新的存钱了,对吧?更大的!
  2. 如果你有一个手机/平板电脑(从现在开始称为"手机"),你也在为一个更大/更好的版本存钱。

需要备份的内容一切。

USB闪存盘:再多存点钱吧。你已经有了MLC版本!买一个SLC:它们的价格是相同容量的MLC版本的两到三倍,但速度却快4到8倍,并且寿命更长,所以把它当作对未来的投资。
手机:你也有个MLC是吧?不用费心去买SLC:你正在为其储存内部记忆,以缓解MLC的性能差劲!只是别买最便宜的"Crap Inc.超级迷你SD卡",选择一个好品牌,最好带上SD外壳,这样当你有机会使用电脑时,就可以轻松备份手机。询问一下保修情况。 如果你经济拮据无法备份所有数据,至少备份那些无法替代的数据:家人的照片、目前的学校/大学工作等等。并且要知道,你不应该花太多时间去调整你的Ubuntu系统使其完美无缺:它是可替代的,但那张带着美丽笑容的照片则不然。 备份/存储位置:你的旧设备!
  1. 可以使用USB存储设备和...
  2. 你的手机应该备份到旧设备中。不要担心它速度慢、过时...在遇到非常糟糕的情况时,你可以依靠这个“替身”。

    并且把它放在一个安全的地方:最好不要放在同一个房间或同一栋房子里(如果可能的话,放在附近的兄弟姐妹或表亲家中)。

何时备份:

你能承受多少损失? 一周?一个月?每周备份数据。(请务必备份!)系统备份则每月进行。


3买最便宜的"Crap Inc. Hyper! Mega! Micro! SD! Card"哈哈!几年前我买了一堆2GB和4GB的microSD卡,每张只要1-1.5美元,但是它们会在几周内损坏fat32文件系统,不过ext3文件系统非常稳定...真是让人费解。 - Xen2050
我昨天有一个:如果 MBR 包含 ISO 文件系统,dd if=/dev/nul of=FirstHDD /Length=512 用于覆盖 MBR。正确但没有一些严重的警告 极其危险(命令已被混淆,出于明显原因)。 - Fabby
1你正试图说服读者备份,这是很好的,但不要期望那些认为自己是第二部分案例的人有足够的耐心跟随你至少到第三部分的结束。这可能听起来有些尴尬,但请试着更加尊重一些。你希望读者倾听你的建议,并向他们展示如何做得更好。尽量保持简洁,并只在必要时使用格式(太多的粗体和斜体可能会分散注意力)。我建议选择另一个州的亲戚作为异地备份,同时考虑备份的冗余性。+1 - LiveWireBT
@LiveWireBT:尴尬?你?我一直都愿意学习更多...如果你能改进它,就去编辑吧!对于深入的观点,我没有任何问题...(我懂德语,但写作还是有些困难) - Fabby
2我是类型5。我的备份是另一个系统。 - Journeyman Geek
@Fabby,SLC/MLC的链接现在反了,S指向M,反之亦然...但它们都重定向到同一页,所以我有点困惑 :) - Xen2050
@Xen2050:天哪!(害羞)已经修正了...只是愚蠢的降分系统不能两次引用相同的链接。如果你需要两次引用,就需要两个完全相同的链接。所以一开始出错了!不管怎样...现在看起来不错!;-) 当你读到这句话时,心里笑了几下啊? - Fabby
@JourneymanGeek: ElderGeek 加了一个5级... 你现在是6级了! >:) - Fabby

4. 我的电脑就是我的生活!
你买电脑的原因,就是...嗯,电脑!你折腾它,主题化它,定制它,让它变得完美!但是,它适合作为备份吗? 如果你最后一个主题阻止你登录桌面呢?或者你刚下载的自定义内核使整个系统冻结了呢?
如何安装Ubuntu: 至少使用3个分区:swap、/和/home。你还想更进一步地折腾吗?请阅读文件系统层次结构标准的全部内容。

要备份什么:
一切!你的手机!你的数码相机!你的平板电脑!路由器设置!电视固件!邻居的平板电脑!Psion!热像仪设置!
把它们都备份到你的电脑上!别指望那些云!因为互联网将会断网24小时,你会需要所有这些数据来避免戒断症状!

忘掉交换分区!永远不要备份交换分区!它只是一个原始分区而已。 启动光盘并制作一个镜像或克隆 / 排除 /home
有很多支持镜像和克隆的备份工具。 始终保留两个镜像:正在制作的镜像和之前的镜像。这样,如果在你进行备份时遭遇闪电击中电线,你仍然能够恢复之前的镜像

然后只需使用一个看起来酷且快速的备份程序,在同一硬盘的同一分区中备份/home,存放在另一个目录中未加密。(如果你想知道为什么,请搜索“加密恢复问题”)

备份/存储位置:
在外部USB硬盘驱动器上云端(经过严格的公钥加密) 将USB硬盘驱动器存放在安全的地方,不要连接到计算机上,但是靠近一点,比如在隔壁房间,这样你可以轻松恢复。

何时进行备份:
你能承受多少损失? 一天?一周???或者只是持续备份?

如何进行恢复:
启动镜像/克隆CD,恢复镜像/克隆(永远不要使用克隆!)。之后,在/home上恢复差异备份。

完成!


5. 我希望尽快恢复!如果恢复速度和备份时的完全一致性比备份所占空间更重要,您可以使用dddc3dd备份每个驱动器,以创建镜像文件。将镜像文件放在足够大的驱动器上,以容纳所有内容。请注意,您需要足够的空间来保存备份的每个扇区,而不仅仅是已使用的空间。您可以使用终端命令sudo fdisk -l或磁盘(Disk Utility)应用程序确定驱动器的完整大小和设备名称。
何时:
A. 每当您做了超过上次备份的工作
和/或
B. 在升级系统到新版本之前
在哪里:
外部USB驱动器或更好:内部/外部SATA/SCSI/光纤驱动器。

如何:

这里使用的所有命令(除了提到的应用程序,如Disks、Disk Utility和Software & Updates)都是通过终端命令行输入的。您可以使用CtrlAltT组合键从图形用户界面打开终端。

注意:备份已挂载的驱动器从来都不是一个好主意,所以首先卸载您的源驱动器。我总是从实时媒体启动进行镜像备份,这样就不必担心这个问题,并建议您也这样做。为了安全起见,请双重检查mount命令的输出,确保您的源驱动器没有被挂载。

  1. 连接您的备份驱动器(如果尚未连接),如果它没有自动挂载,请进行挂载。
  2. 如果已经挂载,请找出它的挂载位置。使用mount命令或磁盘(磁盘工具)应用程序可以显示已挂载的驱动器和它们的路径。这将是您存储磁盘映像的位置(如果您正在备份到外部USB驱动器,则可能是/media/"USB卷名")。 (有关1和2的更多信息,请参阅man mount
  3. 决定是否使用dc3dd(或dd),然后按照您选择的一组说明进行操作。

使用dc3dd进行备份 您可以使用命令which dc3dd检查是否安装了dc3dd。如果已安装,它会返回类似/usr/bin/dc3dd的内容。如果只是得到命令提示符,您可以使用sudo apt-get install dc3dd命令来安装dc3dd。请注意,此软件包位于宇宙存储库中,如果在安装之前尚未启用该存储库,您需要在"软件和更新"中启用它。

dc3dd if=/dev/sdy of=/target/mount/point/sdy.dd.img其中sdy=您的源驱动器(在单个驱动器系统中,这将是sda)

将提供一个进度指示器,报告已备份的数据量和进程速度。

当进度指示器达到100%,提示返回后,可以执行sync命令以确保缓冲区被刷新到输出文件中。现在您可以卸载(参见man umount)并断开驱动器(如果是外部驱动器),将其放在安全的地方。

使用dd进行备份

dd if=/dev/sdy of=/target/mount/point/sdy.dd.img 其中 sdy=你的源驱动器

虽然你可以打开另一个终端窗口,使用 top 命令快速找到 dd 进程并发出命令 kill -USR1 xxxx(其中 xxxx 是进程号)来获取一次性状态报告,但不会显示任何进度指示器。

除非你感兴趣,否则可以跳过这部分内容 ->关于进度指示器的 dd 附录:

在 Ubuntu 16.04 及更高版本中,dd 命令包含了一个进度指示器,如果你使用 status=progress 开关,就不需要使用像 pv 或上述的 kill -USR1 方法来获取进度了。使用 dd 进度指示器的示例命令如下: dd if=/dev/sdy of=/target/mount/point/sdy.dd.img status=progress 其中 sdy=你的源驱动器(如果你尝试在不支持该功能的早期版本上运行,你将收到一个错误消息,提示 dd: invalid status flag: ‘progress’

当进程完成时,通过提示返回证明,执行命令sync将缓冲区刷新到输出文件是没有问题的。现在,您可以卸载和断开驱动器(如果是外部驱动器),并将其放在安全的地方。

恢复:

只需从保管处取出备份驱动器,挂载它,交换if=和of=,然后使用相同的过程。

使用dc3dd进行恢复

dc3dd if=/target/mount/point/sdy.dd.img of=/dev/sdy其中sdy=目标驱动器(在单个驱动器系统中,这将是sda)。当进程完成时,通过进度指示器达到100%并且提示返回证明,执行命令sync将缓冲区刷新到驱动器是没有问题的。

使用dd进行恢复

dd if=/target/mount/point/sdy.dd.img of=/dev/sdy其中sdy=目标驱动器(在单个驱动器系统中,这将是sda)。当进程完成时,通过提示返回证明,执行命令sync将缓冲区刷新到驱动器是没有问题的。

现在您可以卸载,如果您使用的是外部驱动器,则断开连接并将外部驱动器归还到安全保管处。
注意:sync 刷新文件系统缓冲区(参见 man sync)。
如果这个回答的任何部分不清楚,请随便评论一下,我会尽力进一步澄清。
来源:30+ years of experience

我同意,但那更像是一个备份工具比较的回答... 这个问题更多关于备份策略。以及是否使用文件或系统备份(使用镜像)。 - Fabby
1@Fabby 我看到了那个回答,我认为这个更适合这里。它确实涉及到战略,而且我认为我的回答的第一句话已经表明了这一点。此外,我的回答适用于你提到的所有用户类型(当然前提是有足够的存储空间)。由于过去30年来,每GB存储成本持续下降,我认为我的方法是“未来可靠”的、具有成本效益的和快速的。当然,由于我没有孙子辈,所以我必须采取更加亲自的方法。;-) - Elder Geek
dc3dd有没有--sparse选项(我是ddrescue的用户,你还记得吗?)?如果有的话,请[编辑]你的问题;-)并且随意撤销我所做的任何更改。另外,请看一下ddrescue:它可以重试/跳过坏扇区。 - Fabby
1@Fabby 我没有看到dc3dd--sparse开关。对于它来说,man手册也不多,尽管有这个链接:https://plus.google.com/+KarlBernard/posts/CFzGx6kNaHR。我喜欢ddrescue,因为它能够分割和重试无法读取的扇区,并且可以反向读取。它非常适合数据恢复,但对于未受损硬件上的简单镜像,我一直使用dc3dd(通过输出中的“正在重试扇区xxxxxxxxx”清楚地显示驱动器是否存在问题),在这种情况下,就需要ddrescue来拯救(或者photorec)。;-) 编辑看起来很好。谢谢! - Elder Geek
哦,如果你看到有人在进行缓慢的备份,请引导他们参考这个问题,并告诉他们他们是第五类用户... 这就是我获得赞同的方式... - Fabby
1@Fabby 我只要看到他们做备份就很开心了!!! - Elder Geek
@ElderGeek 我通过经验学到,永远不要使用dd 8或任何其他面向块的工具来备份已挂载的设备。因为大多数情况下,生成的镜像将不正确(无法卸载)。 - prometheos
请删除之前的评论。谢谢。@ElderGeek 我通过经验学到,永远不要使用dd(或任何其他面向块的工具)备份已挂载的设备。因为大多数情况下,生成的镜像将不正确(无法挂载)。应该这样说:先卸载,然后执行dd if=/dev/... 特别是对于系统设备:只有在从Live USB存储器/CD启动后(因为无法卸载正在运行的安装),才执行"dd"操作。 - prometheos
@prometheos 请注意,您可以将鼠标指向评论的时间/日期字段右侧来删除自己的评论。否则,必须将其标记为需要版主关注。然后,版主将不得不浪费宝贵的时间来确定是否同意该标记有效,并且应该删除该评论。此外,改善网站是一个共同的责任。将来,如果您觉得某个帖子可以更清晰地表达,请随时进行编辑。这样做将使您获得一些声望,并赢得社区的感谢。 - Elder Geek
备份已挂载的驱动器从来都不是一个好主意...有没有办法在系统运行时备份整个系统,以便我们在备份时拥有“一切都和备份时一样”?许多配置和安装需要通过慢速互联网进行,真的很糟糕。 - Kostas Mouratidis
1@KostasMouratidis 由于挂载的文件系统随时都可能发生变化(除非它是以只读方式挂载),因此我认为尝试这样做是一个极其不好的计划。在您开始备份和完成备份之间,肯定会有一些变化发生。正如我在回答中提到的,使用实时媒体进行备份是一个可靠的方法。 - Elder Geek

2. 我的电脑不包含我的生活!

你只是用电脑上网冲浪(哈!已备份!),发电子邮件(存在网络上某处),Skype和孩子们聊天,看看YouTube等等。

你没有数码相机,对吗? 你从未将任何东西从数码相机复制到计算机上(那是备份!),然后从相机中删除它(如果你只有一个副本,那就不是备份!)

你没有手机,对吗? 你从未将任何东西从手机复制到计算机上吗? 你从未把手机掉进了装满冰水和几瓶漂浮啤酒的桶里,对吗?

你在地下室有这些电子账单的打印件,并且在你邻居那里也有一份,对吗?

以上所有问题都没问题吗? 太棒了!你不需要备份!恭喜你成为前1%!
如果不是,请继续阅读以下内容。

要备份什么:
备份你所有那些讨厌的小玩意儿!把它们都备份到电脑上!你不知道怎么做?问问你那些讨厌的孙辈们吧!他们什么事都能做!
还要告诉他们:

  1. 让备份变得完全自动化:连接电缆,一切就搞定了。 或者
  2. 不要碰鼠标和键盘,但要耐心地等待你,因为你还想在他们离开后自己来做!(记笔记!)

你的电脑数据:全部在/home目录下!如果该死的东西出问题了,打电话给孙辈们,让他们重新安装系统,然后帮你恢复数据。你只需要知道如何备份。恢复是他们的问题。

备份/存储位置
让孩子们给你买一个那种“外接USB硬盘驱动器”,然后帮你设置好。你只需要将它连接到电脑上,一切都会自动运行。 (我确定:只需连接电缆,就这样!将其一整夜运行,然后右键点击那个小图标,选择“弹出”并把它存放在地下室/阁楼/另一个房间!)

何时进行备份
在周六晚上电影开始之前最好!尤其是在你的其他孙辈出现之前!他们可以而且会毁坏任何东西!

3. 我的电脑包含了我的生活!你所做的一切,观看的一切,支付的一切,都在那台机器上...
备份什么呢:一切!你的手机!你的数码相机!你的平板电脑!孩子们的平板电脑!(他们70级的魔法师正等着被备份!如果你不备份的话,当那个70级魔法师损坏时,孩子们会伤心得哭个不停!)
把它们都备份到你的电脑上吧!不知道怎么做?去AskUbuntu或者android.stackexchange.com咨询关于平板电脑以及apple.stackexchange.com咨询关于水果味儿的小玩意儿。
你的电脑数据:全在/home里!去AskUbuntu问一个问题,说明你想要从Live CD中恢复的备份程序,这样会更加方便。 备份和存储位置
使用外部USB硬盘并使用Ubuntu标准备份程序。在Dash中键入backup。将USB硬盘存放在离计算机远离的安全地方。你丈夫的工具箱可能是最安全的选择!反正它从来不用! 何时进行备份
你能承受多少损失?一周?一个月?由你决定!只要选择一个并且坚持下去!如果你真的不知道,每周备份一次! 如何进行恢复
启动Ubuntu Live CD,重新安装Ubuntu,进行所有更新,然后恢复数据。你不知道如何操作吗?在AskUbuntu提问吧!

备份所有程序可能需要10 GB或更多。备份它们并没有太多意义,因为它们可以从互联网上恢复。
备份所有你的写作可能只需要几 MB。当然,除非你写得非常快且频繁。如果你有很多剪贴画和图片,备份你的电子表格和演示文稿可能需要数百 MB。
备份所有你的照片和歌曲可能需要数十 GB。另一个选择是使用Ubuntu将音乐和照片镜像到你的智能手机上。很有可能人为原因(火灾、盗窃、破坏、前任)或不可抗力(闪电、洪水、地震)不会同时影响两个设备。
备份你的视频可能需要数百 GB。
你必须知道你拥有什么,它存储在哪里,有多大,以及是否需要备份。你需要思考一下并进行一些研究。
对于我自己,我使用了一个自动备份到压缩文件(<25 MB)的方法,每天早上通过电子邮件发送到我的gmail.com帐户。每天早上,cron只会备份我写的内容以及Ubuntu设置的配置文件。
现在一年过去了,我将不得不采用父子祖父备份策略,进行年度、月度、周度和日常备份,以减少当前存储在gmail.com中的备份数量(365+天),因为它对地球上的每个人都是免费的,但限制为15 GB(或者理论上如果火星有IP地址的话)。
如果您对我每天备份到gmail.com的脚本感兴趣,您可以在这里查看:备份Linux配置、脚本和文档到Gmail

你可以购买便宜的16 GB、32 GB或64 GB的USB闪存驱动器(也称为拇指驱动器),并将整个Ubuntu镜像和数据文件复制到其中。

如果你有一个500 GB的硬盘或固态硬盘,并且Ubuntu只占用25到50 GB的空间,你可以创建一个备份分区来存储备份。请注意,这些备份不会是离线备份,也不能在硬盘崩溃时拯救你。当你不小心删除了大量文件或目录时,这些备份分区非常有帮助。为了将你的Ubuntu分区克隆到另一个备份分区,我编写了这个脚本:用于将Ubuntu克隆到新分区以进行测试18.04 LTS升级的Bash脚本

此外,还有一些备份程序可供使用,但我无法保证它们的可靠性。


@Fabby 谢谢你的编辑。我开始研究"不可抗力"了。很有趣... - WinEunuuchs2Unix