首页 > 脚本 > 系统 > Linux乌班图系统的升级设置优化教程,的Ubuntu桌面生存指南四:Ubuntu系统备份恢复升级策略

Linux乌班图系统的升级设置优化教程,的Ubuntu桌面生存指南四:Ubuntu系统备份恢复升级策略

来源:整理 时间:2022-03-03 17:10:57 编辑:飘云 手机版

Linux乌班图系统的升级设置优化教程,的Ubuntu桌面生存指南四:Ubuntu系统备份恢复升级策略,这些备份恢复策略不仅适用于Ubuntu,对于使用其他发行版的Linux用户,同样可以参阅以下内容,对其中的步骤稍加改造即可。我们前面介绍过Ubuntu系统的一个特色就是可以从自己的源通过apt-get命令来下载需要的软件,因此用户可以建立一个脚本文件,通过写入常用的apt-get install命令的方式来备份需要的软件(参见上一篇中的在云端保存一个软件安装的脚本部分),同时在这个脚本文件中加入某些需要手工干预的个性化配置的具体步骤。

本文作者张佳伟(@ghosert)继续上篇的内容续写的,在最初使用开发者系统的时候,无论是构建Ubuntu系统基础设施,还是安装配置各种软件都是一个费心劳力的过程:由于开发者系统是一个需要付出脑力成本换取高效率的系统,它因此被设计成一个高可定制又极度自由的系统,暂且不说你可以自由地从编译源码的方式配置安装整个操作系统,即便是大多数的常用软件例如:vi,emacs等等通过变更配置文件都可以玩出无数的操作方式,用户需要花费时间去变更尝试这些配置,使得操作这些软件的方式***自己的习惯,达到高效的目的。因此经过一段时间调配,每一个Linux用户都会有一个自己专属的高效系统,有1000个用户就会有1000个专属高效系统,每一个系统上安装的软件和配置方法都各不一样,并且每一个用户在打造这个专属系统的过程中都会耗费大量的精力和时间。

丢失自己的专属系统,就意味着时间精力的丢失,对于一个长期使用Linux的用户更是如此:用户已经在这个系统上积累太多软件和操作习惯,如果因为系统崩溃而需要从头开始配置一个全新的系统,在事前又没有任何备份措施,那剩下的简直就是一场灾难。这也是有经验的Linux用户很注意备份的原因。介于此,笔者在本章节结合自己的一些经验来介绍一下Ubuntu系统的备份恢复以及升级策略。

这些备份恢复策略不仅适用于Ubuntu,对于使用其他发行版的Linux用户,同样可以参阅以下内容,对其中的步骤稍加改造即可。

脚本恢复策略 — 完全格式化更新

脚本恢复策略 — 完全格式化更新

我们前面介绍过Ubuntu系统的一个特色就是可以从自己的源通过apt-get命令来下载需要的软件,因此用户可以建立一个脚本文件,通过写入常用的apt-get install命令的方式来备份需要的软件(参见上一篇中的在云端保存一个软件安装的脚本部分),同时在这个脚本文件中加入某些需要手工干预的个性化配置的具体步骤,例如:更改激活拼音输入法快捷键的具体步骤(大多数拼音输入法抢占了ctrl+space,如果不更改,开发者用户就无法在诸如Eclipse这样的IDE里使用这个快捷键激活智能代码提示的功能),又例如:你可能对 Firefox 的默认字体并不满意,需要替换一下,这些详细的步骤都应该以注释的形式记录在这个脚本里,如果这些步骤实在太过繁琐,也可以在配置以后,找到对应的配置文件,直接保存在Dropbox里,方便今后直接从云端恢复这些配置到本机。例如,你自己定制化了Vim的行为并且加装了Vim插件,那你只需要将~/.vimrc ~/.vim备份在云端即可。

所以一旦建立了这样一个脚本文件,即使需要重装系统或者面对一台全新的计算机,只需要执行这个脚本文件,查看脚本里的注释记录,就可以保证软件没有丢失,配置软件的步骤可以还原,重要的资料都被存储在云端:Dropbox(二进制文件),GitHub(文本文件,以后详述)。自然这个策略的前提是:你在使用系统的时候必须保持勤于更新脚本的习惯,用于日后的系统恢复。

优点

这种方法比较适用于希望将现有系统迁徙到更高版本的情形。例如:迁徙 Ubuntu 10.04 至 12.04的时候,在格式化系统,重新安装12.04以后,用户就可以通过这个脚本恢复原先计算机的面貌。并且由于Ubuntu源里的软件版本和Ubuntu发行版版本之间存在对应关系(例如:10.04源里的firefox版本可能在某个版本以后不再提供更新),如果12.04在目前还是一个比较新的LTS版本,那么就可以保证在12.04上使用apt-get install安装的软件版本都比较新。同时如果你大多数的配置恢复是通过还原具体步骤完成的,那么就有机会检查这些步骤在新版本软件上是否仍旧适用。也不会出现从云端恢复旧版本软件的配置到新版本软件以后无法适用的状况,当然理论上这也不是一个太大的问题,Linux下许多著名的软件都非常尊重用户的旧有习惯,轻易不会变更自己读取配置文件的方式,大多数情况下恢复旧有软件的配置到新版本不会出现太多状况。

缺点

由于没有采用全盘备份的方式,这种备份恢复策略的缺点同样明显,尽管可以保证在升级以后,计算机的原始面貌不会有任何丢失,但是相对来说,手动恢复许多软件的配置仍旧需要投入相当的时间和精力,即使在备份策略完善的前提下,笔者通过这种方式将Ubuntu 10.04升级到12.04的时候仍然花费了整整5天的国庆长假。因此个人建议只在每隔两年发布一次的LTS版本出现的时候才做这样的升级,以此保证计算机的全新状态。#p#

脚本恢复策略 — 沿用/home分区数据

我们前面提到过独立/home分区的原因在于用户大多数重要的个性化配置和数据都保存在这个目录,以至于Ubuntu官方的云端备份软件Ubuntu One在默认情况下就是协助用户备份/home分区所在的数据到云端。因此如果可以在重装系统的时候沿用这个分区的数据,无疑可以为我们节省大量的数据恢复和配置恢复的时间,更何况某些数据如电影,照片可能占据几百个G的空间,没有独立/home分区,用户在重装系统,格式化分区的时候根本就没有可以容纳那么大数据的第二个媒介做临时的备份,除非你有第二块硬盘。另一方面在恢复系统的时候因为配置和数据仍旧在/home目录,你只需要执行前面提到的脚本重新安装软件即可,无需手工还原配置软件的步骤。

为了使用这种恢复策略,在***安装Ubuntu的时候可以参考上一篇博客的分区推荐方案独立出/home分区,在使用系统的过程中时刻保证只在这个目录下存储自己重要的数据和配置,如果一定有一些特例状况也一定要在恢复脚本中加以记录,在云端有另外的备份措施。只要你的/home分区没有被损坏,再次恢复的代价就相当的小。重装系统的时候可以格式化 / 目录所挂载的分区,但是记得在以下Installation type界面上千万不要选择格式化 /home 所在的分区,否则就无法沿用这个分区的数据。

优点

显而易见,这种策略很经济,省去很多的麻烦,是非常常见的系统恢复策略,同样也适用于在重新安装一个高版本的Ubuntu以后恢复计算机原先的面貌,例如从10.04LTS升级至12.04LTS。

缺点

沿用过去/home分区的数据毕竟在保留了数据的同时也保留了旧有的配置和目录结构,如前所述虽然在匹配新版本软件的时候,这不会是一个太大的问题,但是一旦出现状况,例如两个软件版本之间的差异过大,导致新版本无法正常工作在旧配置或者目录结构上,用户要有一定解决问题的能力,仍然需要通过查看脚本注释手动还原配置步骤。#p#

tar包全盘备份恢复策略

上述两种恢复策略免不了还是需要在分区以后,插入启动U盘或者光盘,从头开始安装操作系统本身,并且安装完操作系统以后继续安装软件,恢复配置,熟悉Windows下大名鼎鼎的Ghost的同学一定在想,Ubuntu下是否也有这种一站式的全盘备份方案:无论计算机系统当前的状态,我可以对整个系统的每一个字节都做数据备份,当需要恢复系统的时候甚至都不必再次安装Ubuntu本身就可以把当初备份的那个状态复原到新的机器或者格式化以后的当前机器上,甚至是虚拟机上。这也是一般公司的IT部门在帮员工重装机器的时候最常用的策略,没有其它原因,就是因为这种方式最快捷。备份恢复一个系统的时间不会超过一个小时。

优点

最迅速快捷的备份恢复方式,可以通过刻录母盘的方式在各处恢复自己的备份。你既可以在一台物理机上做备份恢复到另一台物理机或者虚拟机,你甚至也可以将一台虚拟机里的备份恢复到一台物理机或者另一台虚拟机上,非常的灵活方便。

缺点

采用这种方式的一个问题在于,如果需要还原的目标机器和做备份的源机器硬件配置差异过大,可能会发生恢复以后某些驱动程序工作不正常的状况,例如计算机没有声音,或者图形分辨率特别低,无法联网等状况。这个时候需要用户自行尝试解决。第二个问题在于由于全盘备份,意味着如果你备份的是10.04的系统,那你也只能恢复到10.04的系统,这种恢复方式没有办法升级你的Ubuntu到更高的版本。第三个问题:一定的学习实践成本,以下就我个人的实践经验提供tar包全盘备份的基本步骤和原理,也许你在网络上可以找到更方便的脚本或者备份软件替代这些工作,但是如果遇到问题回到这些具体的步骤和原理可以帮助你了解到底是哪里出了问题,怎么解决这些问题。

1. 全盘备份

得益于Linux系统强大的命令行和系统设计,全盘备份一个Ubuntu系统的基本原理相当简单:使用tar命令打包必要的文件目录即可,也就是说备份系统和备份数据基本没有区别。

新建一个脚本文件BACKUP_SYSTEM.sh,在其中添加以下内容:


 
  1. mkdir ~/BACKUP_SYSTEM  
  2. sudo tar --exclude /proc --exclude /mnt --exclude /tmp --exclude /media --exclude /home/jiawzhang/Downloads --exclude /home/jiawzhang/Templates --exclude '/home/jiawzhang/VirtualBox VMs' --exclude /home/jiawzhang/BACKUP_SYSTEM -jpcvf ~/BACKUP_SYSTEM/Ubuntu-12.04-20121114-home-pc.tar.bz2 /  
这两条命令首先在home目录新建了一个BACKUP_SYSTEM的目录用于放置备份后的tar包。随后tar命令的 –exclude 参数排除了某些你认为没有必要进行备份的目录,例如 Download, Templates 目录,同时我的案例里也排除 VirtualBox VMs 这个目录,因为安装虚拟机以后,Virtualbox所在的这个目录会极度膨胀,我们没有必要把几十个G的虚拟机镜像全都备份进tar包。-jpcvf 这个命令中:j 表示使用 bzip2 格式打包,这是一种压缩耗时但是压缩比很高的格式,经常用于压缩大数据。p 表示在制作tar包的时候保留目录结构的用户权限信息,***程度的对文件系统做现场保护。cvf 表示创建一个压缩包,并且列出详细的压缩过程。~/BACKUP_SYSTEM/Ubuntu-12.04-20121114-home-pc.tar.bz2 指定了压缩包的文件名,我个人偏向于在这个文件名里写清楚版本信息,打包的时间和在哪一台机器上做的备份,有助于今后做恢复操作。这条命令的***有一个 “/” 字符就是表示从本机的根目录开始做全盘备份,你本机的所有东西除了被 –exclude 的目录都会被打进最终的压缩包。即使是全盘备份,事前一定要甄别清楚到底哪些目录是没必要备份的,否则压缩和解压过程都会变得无法接受的漫长。
Linux乌班图系统的升级设置优化教程,的Ubuntu桌面生存指南四:Ubuntu系统备份恢复升级策略相关文章内容教程说明。
文章TAG:UbuntuLinux内核操作系统升级备份系统备份

最近更新

脚本排行榜推荐