您曾经希望做一个“撤消"按钮吗?
我当然有。实际上,有时我会陷入困境,试图在纸上书写时按Ctrl + Z。
将操作系统恢复为先前状态而没有任何后果听起来像是在魔术。即使您不知道是什么原因造成的,您也可以像没有任何反应一样快速返回工作。因此,“系统还原"功能是Windows前用户希望从Linux中获得的首要功能。有些人甚至宣称Linux永远不会比Windows更好,因为它缺少系统还原。
那些用户应该阅读该手册,或者甚至是这篇文章,因为今天我们将介绍这些工具。将系统还原功能引入Linux。是的,默认情况下它们并非始终可用,但是Windows 10中的Windows Restore在两个Windows版本之间都没有改变。
系统还原如何在Windows中工作?
原始系统还原该功能可以追溯到2000年和Windows ME(千年版)。它只能还原系统文件和注册表,并不是特别可靠。后来在Windows XP和Vista中进行了改进。从那时起,系统还原依赖于称为卷快照服务的系统服务,该服务可以自动创建系统的快照(“卷影副本")(包括当前正在使用的文件)并将其转换为可恢复的“还原点"。
尽管这种新方法提供了更多的自定义功能(用户可以为快照分配磁盘空间,并选择应监视的目录),但它也带来了局限性。系统还原快照仅适用于NTFS分区,在Windows 8之前的版本中不能永久保存。
每个新的Windows版本都带来了进一步的混乱,因为Vista的“家庭"版本缺少界面还原以前的快照,Windows 8使其无法从资源管理器的“属性"对话框中恢复文件的先前版本。最后,Windows 10完全禁用了系统还原,将其留给用户手动启用。此决定最有可能旨在将其引导至“刷新和还原"。
但是对于Windows来说已经足够了。让我们看一下如何在Linux上实现此功能。
系统还原如何在Linux上运行?
它不起作用-至少不是使用该名称。在发行版菜单中找不到“系统还原"功能。您将必须找到适合自己的方法并安装必要的应用程序。它们大多数基于与Windows上的系统还原相同的原理。它们以指定的时间间隔创建系统快照,并让您回滚到选定的时间点。
在深入研究应用程序之前,让我们简要解释一下什么是系统快照。
什么是系统快照和备份之间的区别?
语义可能有所不同,但通常来说,备份是文件的副本。这种类型的备份“镜像"整个磁盘,包括用户数据,操作系统,引导扇区等。磁盘映像可用于裸机还原过程,在该过程中,您将硬盘内容复制到没有OS的计算机上。
快照是在特定时间点创建并保存在与文件系统相同的存储设备上的文件系统的已保存状态。它们通常包括文件系统的所有目录和文件,或者至少包括操作系统所需的文件。
将快照与文件系统保持在同一位置可以执行回滚,但是它还节省了磁盘空间。在此设置中,每个新快照都不必保存整个文件系统状态。相反,快照的作用类似于增量备份,并且仅保存自上次快照以来所做的更改。这意味着每个快照都依赖于上一个快照来完全还原系统。相反,完整备份或磁盘映像独立于其他备份,并且可以自行还原系统。
快照的问题是,它们很容易遭受磁盘故障的影响-如果磁盘遭受严重损坏机械损坏,您可能会丢失快照以及整个文件系统。为防止这种情况,建议在安装和设置Linux发行版后立即制作快照,然后将其复制到单独的存储设备中。
有很多适用于Linux的应用程序可以帮助您维护系统快照。其中大多数都是初学者友好的,不需要高级Linux技能。查看我们的选择,然后选择最适合您的工作流程的应用。
TimeShift
TimeShift具有简单的图形界面,您也可以从终端上使用它。默认情况下,它不包含用户的个人文件,但是您可以将自定义目录添加到快照中。在Ubuntu及其衍生产品上,您可以从开发人员的PPA中获取TimeShift:
sudo apt-add-repository ppa:teejee2008 / ppa
sudo apt-get update
sudo apt-get install timeshift
,而其他发行版的用户可以下载安装程序文件并在终端中运行它:
./ timeshift-latest-amd.64.run
还有一个用于BTRFS文件系统的版本,该版本支持本机BTRFS快照功能。
TimeShift lets you take snapshots whenever you want, or you can set it up to create them automatically. You can schedule hourly, daily, weekly, and monthly snapshots, and configure how often TimeShift should remove them. There is a special option called Boot Snapshots that creates one new snapshot after every reboot.
使用TimeShift还原快照是一个简单的过程:选择一个快照并选择应该将其还原到的位置。 TimeShift提供了将快照还原到外部设备的选项,克隆功能可以将当前系统状态直接复制到另一台设备。这有助于将操作系统迁移到新计算机,而无需从头开始进行设置。
在还原快照之前,TimeShift会询问您是否要保留应用程序设置,并让您选择要设置的设置保持。请记住, TimeShift需要GRUB 2 才能引导到已还原的快照。
Cronopete
如果TimeShift很简单,那么至少在以下方面,Crnopete会更简单:出现。它称自己为OS X的Time Machine的克隆,工作方式与TimeShift略有不同。 Cronopete提供了适用于Ubuntu,Debian和Fedora的程序包,而Arch Linux用户可以在AUR中找到它。在外部设备上。默认情况下,它每小时检查一次文件是否有更改,但是您可以在配置对话框中更改间隔。如果文件没有更改,则Cronopete只会硬链接到该文件,而不是复制文件,这有助于节省磁盘空间。
还原文件可能是Cronopete最酷的事情。它可以让您“滚动浏览时间";也就是说,直观地浏览文件和文件夹的所有保存版本。要还原文件,只需选择它们,然后单击还原。它们将从外部磁盘复制到当前系统。可以推断出,Crnopete对于完整的系统还原不是很实用,但是如果要保留单个文件的多个版本,这是一个不错的选择。
Back In Time
Back In Time看起来用户友好,足以吸引Linux初学者,而其“设置"对话框提供了细粒度的控制。该界面就像常规文件管理器一样,您可以预览所有快照,浏览每个快照以及还原选定的文件和文件夹。
如果您要在PPA中安装Back In Time,可以从PPA安装该文件。在Ubuntu上:
sudo add-apt-repository ppa:bit-team / stable
sudo apt-get update
sudo apt-get install backintime-qt4
多个发行版在其存储库中提供它,如果您的存储库中没有它,则可以随时下载源。
Back In Time创建快照,其中包括您选择的文件夹,但只能还原您具有写访问权的文件。您的快照可以被加密并存储在网络设备,外部磁盘或本地文件系统上。 Back In Time仅更新已更改的文件,并且设置>选项标签可让您在不需要更改时禁用快照。
可以安排快照(每日,每周,每月一次,每天几次或仅在重新启动后),也可以通过单击主工具栏中的按钮手动创建它们。 设置>自动删除标签可让您定义“ Back In Time"何时应删除旧快照,并且可以通过给快照命名并选择“不要删除命名的快照"来保护快照免受删除。
类似于Cronopete,“返回时间"更适用于基于文件夹或文件的回滚,但是如果您要还原整个文件系统,则也可以。还原快照就像选择快照并决定只还原几个文件夹还是整个shebang一样容易。
Systemback
Systemback在一个很小的体积中包含了许多功能接口。不幸的是,由于没有其他发行版的安装文件,目前只有Debian,Ubuntu及其衍生版本的用户才能使用Systemback。开发人员提供了一个PPA:
sudo add-apt-repository ppa:nemh / systemback
sudo apt-get update
sudo apt-get install systemback
Systemback不仅仅是另一个快照工具。它可以将当前系统转换为可在另一台计算机上引导的实时CD或DVD。它可以修复或重新安装GRUB 2引导加载程序,并修复fstab文件。不过,您可能仍会主要将其用于系统快照。
Systemback会将快照总数限制为十个,因此您可以删除它们。快照可以是增量的(仅复制更改的文件;其余的由硬链接表示),但是您可以在“设置"对话框中将其禁用。还原文件时,可以执行完整还原,也可以仅复制基本系统文件。您的个人数据(例如图片和文档)将不会包含在快照中,但是您可以使用 Live system create> Include user data 选项将它们传输到Live CD中。
Systemback可让您自定义快照计划,但您可以随意将其关闭并手动创建还原点。重要的是请记住, Systemback不支持NTFS文件系统,因此您将无法将快照还原到NTFS格式的分区或从中还原。
Snapper < /
Snapper is closely tied to openSUSE, where it was introduced in version 12.1. It’s possible to install it on other distributions, but it’s not guaranteed to work. The easiest way to set up Snapper is to install openSUSE on a BTRFS partition; in that case, Snapper gets automatically installed and configured. You can use Snapper as a command-line tool or through YaST, and there’s an alternative called snapper-GUI.
Snapper制作几种不同类型的快照。 前和后快照是在使用zypper或YaST安装新软件包之前和之后以及通过YaST模块修改系统时进行的。这样,您可以比较快照并在更改引起麻烦时恢复到旧状态。 时间轴快照会每小时自动创建一次,除非您将其禁用。所有其他快照都称为单个,包括您手动创建的快照。快照位于创建快照的同一分区上,并且快照的大小会增加,因此在组织磁盘空间时请记住这一点。
默认情况下,Snapper仅为根分区创建快照。要包括其他分区和BTRFS子卷,必须为它们每个创建一个配置文件。这必须在终端上完成。确保以root用户身份运行命令:
快照程序-c CONFIGNAME create-config / PATH
Here -c stands for “configure”, CONFIGNAME is the name you choose for the configuration, and /PATH is the location of the partition or subvolume. For example:
快照程序-c home create-config / home
您可以使用以下命令检查当前活动的配置:
快照程序列表配置
所有配置文件均为保存在 / etc / snapper / configs
中,您可以在常规文本编辑器中对其进行修改。例如,您可以禁用每小时快照,切换自动快照删除并告诉快照程序要保留多少个旧快照。
YaST快照程序模块使您可以创建和比较快照。您还可以回滚到以前的快照,以及还原单个文件或许多选定文件的先前版本。
An additional rollback method is provided by the package grub2-snapper-plugin
for openSUSE. This lets Snapper boot into a snapshot and restore the system directly from the bootloader menu. If it’s configured properly, there should be an option in GRUB 2 called “Start bootloader from a read-only snapshot”. On other distributions you can try grub-btrfs to get similar results. Note that you can only boot snapshots created for the root partition.
如何备份和还原已安装的应用程序
有时您只想还原安装的软件,而不是还原整个操作系统。发行版本转移,重新安装当前发行版或对其进行升级通常是这种情况。幸运的是,我们可以依靠这些方便的工具来简化应用程序迁移过程。
第一个提到的是 Aptik ,这是由TimeShift开发人员创建的应用程序备份实用程序。
p>
仅适用于基于Ubuntu的发行版,您可以从开发人员的PPA安装它:
sudo apt-add-repository ppa:teejee2008 / ppa
sudo apt -get update
sudo apt-get install aptik
Aptik可以导出当前安装的软件包列表以及您使用的存储库列表和下载的软件包本身。还有用于导出应用程序设置,桌面主题和图标集的选项。 Aptik按安装类型对软件包进行分类(预装操作系统,由用户安装,作为依赖项自动安装以及从.deb文件安装)。它使您可以将下载的.deb文件拖放到列表中,以将其包括在备份中。您可以将备份保留在任何位置,并通过首先安装Aptik并在主应用程序窗口中选择还原将其解压缩到新安装的发行版中。
Linux Mint用户可以尝试薄荷备份工具,其功能与Aptik几乎完全相同。除了还原已安装的应用程序之外,该工具还可以对所选文件夹及其权限进行快速备份。
运行Arch Linux的用户可以转向 Backpac 。它会创建手动安装的软件包的列表(来自官方存储库和AUR),并且可以备份您选择的单个文件。使用Backpac还原系统状态归结为安装导出的软件包,删除快照中未包含的软件包以及使用先前导出的版本覆盖系统文件。
当然,有一种方法可以仅使用包管理系统提供的工具,而无需第三方应用程序即可完成所有这些操作。在基于dpkg的系统上,可以使用以下命令导出已安装应用程序的列表:
dpkg --get-selections> / home /您的用户名/apps.txt
然后将文件和存储库信息从 /etc/apt/sources.d /
和 /etc/apt/sources.list
复制到新系统。提供正确的apps.txt文件路径,并使用以下方法将应用程序迁移到新系统:
dpkg --set-selections sudo apt-get update
sudo apt-get dselect-upgrade
某些图形软件包管理器(例如, Synaptic )可以导出和导入已安装应用程序的列表,因此您不必从终端上执行此操作。
高级系统回滚解决方案
也许到目前为止我们建议的应用程序根本就不适合您。好消息是还有其他解决方案可用。称它们为“高级"并不意味着它们过于复杂。只是它们可能不适合初学者的首选。
Rsnapshot [不再可用]
如果您正在寻找一种从终端拍摄快照的快速方法,请给出rsnapshot尝试。您可以在大多数Linux发行版的存储库中找到它。 Rsnapshot将所有设置保留在 /etc/rsnapshot.conf
中,在这里您将定义快照计划,何时删除旧快照以及实际要包含的文件和文件夹。对配置满意后,请使用以下命令测试rsnapshot:
rsnapshot configtest
rsnapshot -t每小时
,以确保一切运行顺利。请记住,快照快照的配置文件在选项之间需要制表符,而不是空格,因此不要通过按空格键来移动参数。但是,由于没有自动还原功能,因此您只需从选定的快照中手动复制文件即可。
Obnam
Obnam与rsnapshot类似,具有一些其他有趣的功能。首先,它将创建系统的完整备份,然后构建仅包含新文件和/或更改文件的增量快照。您的快照可以被加密,并且Obnam会自动处理解密。恢复快照也是如此:有一个命令,Obnam允许您选择恢复快照的位置。
您可以包括和排除自定义路径,并将快照存储在服务器或其他远程服务器上位置。自然,有一种方法可以删除老化的快照,而官方用户手册则是一本很好的文档,可以解释所有内容。
LVM快照
在保存宝贵数据时,它是事先考虑总是一个好主意。如果您只是设置Linux系统,则值得考虑使用LVM(逻辑卷管理器)来组织硬盘。
为什么?尽管它不完全是一个应用程序,但Linux内核中的LVM实现具有内置的快照功能。您可以挂载快照并将其作为其他任何磁盘或分区进行浏览,合并多个快照,然后还原它们以解决系统问题。另外,您可以使用dattobd,这是一个Linux内核模块,它支持正在运行的实时系统的增量快照,而无需卸载分区或重新启动计算机。
您已经看到,您有很多选择来获取Linux上的系统还原功能,但是从技术上讲它们都非常相似。有没有更好的方法可以替换Linux上的系统还原?也许将来随着这些应用程序的继续开发而被揭示,或者隐藏在已经存在的工具的组合中。
您如何看待?您是否使用过这些应用程序中的任何一个?您是否同意Linux需要系统还原之类的东西?加入讨论并在评论中分享您的建议。
图像积分:由旧计算机键盘通过stockmedia.cc(LVM层次结构)提供的撤消键。由Linux通过Flickr截取。