本文是转载的,经过测试发现**不靠谱**!! 谨慎尝试,后果自负。

1. 前言

在使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton Ghost是备份Windows系统时经常使用的备份工具。

在备份Windows系统的时候你可能想过,我能不能把整个C盘都放到一个ZIP文件里去呢。这在Windows下是不可能的,因为在Windows中有很多文件在它们运行时是不允许拷贝或覆盖的,因此你需要专门的备份工具对Windows系统进行特殊处理。

和备份Windows系统不同,如果你要备份Ubuntu系统(或者其它任何Linux系统),你不再需要像Ghost这类备份工具。事实上,Ghost这类备份工具对于Linux文件系统的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系统,如果你用它来备份Ext3文件系统,你可能会丢失一些宝贵的数据。

2. 本文分析内容安排

  1. 备份系统
  2. 恢复系统

3. 备份系统

我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去! 
首先成为root用户:

sudo su
  • 1

然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):

cd /
  • 1

下面是我用来备份系统的完整命令:

tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=backup.tgz /
  • 1

让我们来简单看一下这个命令: 
“tar”当然就是我们备份系统所使用的程序了。 
“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。 
“backup.gz”是我们将要得到的档案文件的文件名。 
“/”是我们要备份的目录,在这里是整个文件系统。 
在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。 
有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。 
执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。 
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。 
在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。 
你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
  • 1

4. 恢复系统

在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心! 
接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。 
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令! 
使用下面的命令来恢复系统:

tar xvpfz backup.tgz -C /
  • 1

如果你的档案文件是使用Bzip2压缩的,应该用:

tar xvpfj backup.tar.bz2 -C /
  • 1

注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。 
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。 
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:

mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys
  • 1
  • 2
  • 3
  • 4

当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!

5. 作者介绍

梁明远,国防科大并行与分布式计算国家重点实验室(PDL)应届研究生,14年入学伊始便开始接触docker,准备在余下的读研时间在docker相关开源社区贡献自己的代码,毕业后准备继续从事该方面研究。邮箱:liangmingyuanneo@gmail.com

本文参考http://blog.csdn.net/sunnylgz/article/details/8055315

centos7系统备份与还原的更多相关文章

  1. linux系统 备份与还原

    linux 系统备份与还原备份系统:1.成为 root 用户: su root2.进入根目录: cd /3.用tar命令打包压缩:tar cvpjf 压缩包名.tar.bz2 --exclude=/压 ...

  2. 文件操作 系统备份和还原,压缩,解压 tar dump/restore

    基本操作命令: ls -a 显示指定目录下的目录和文件,包括隐藏的文件和目录 ls -l 将文件和目录详细列出来,包括文件状态,权限,拥有者,文件名,文件大小等 改变工作目录命令 cd cd .. 进 ...

  3. “一键GHOST”系统备份与还原(icmzn)

    “一键GHOST”系统备份与还原(icmzn) 1.软件介绍 软件名称:一键GHOST 软件版本:v2014.01.14 安装环境:WINXP/2000/2003/WIN7/VISTA/2008/WI ...

  4. 随笔记录 MBR扇区故障系统备份与还原 2019.8.7

    系统备份: [root@localhost ~]# mkdir /abc [root@localhost ~]# mount /dev/sdb1 /abc [root@localhost ~]# dd ...

  5. archlinux Timeshift系统备份与还原

    安装 timeshif yay -s timeshif 备份设置 选择快照类型 此处选择[RSYNC] 选择储存位置 每台设备安装分区不一样,大家安装实际情况选择,一般选择比较大的空间存储,并且最好是 ...

  6. Linux系统备份与还原

    在使用Ubuntu之前,相信很多人都有过使用Windows系统的经历.如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的 ...

  7. linux下利用ruby做系统备份与还原

    啥都不说了,都在代码里 :) #!/usr/bin/ruby BAK_PATH = "/media/backup.tar.xz" def to_backup exclude_fil ...

  8. Win7自带的系统备份还原功能如何去使用?

    很多用户都会反映Win7系统使用过程中会出现系统或应用程序方面的小故障,针对这些小问题,再选择进行电脑系统的重装就有些过于麻烦了. 其实Win7系统内带有系统备份和还原的功能,可以在电脑系统出现小问题 ...

  9. 正版Win7永不崩溃的秘密 解密系统备份!

    备份正版Win7系统 打开Win7系统的控制面板,进入“备份和还原”选项,即可要使用正版Win7系统的备份还原功能. 进入Win7“备份和还原”功能 点击“设置备份”,即可启动Windows 备份程序 ...

随机推荐

  1. 【函数式权值分块】【分块】bzoj1901 Zju2112 Dynamic Rankings

    论某O(n*sqrt(n))的带修改区间k大值算法. 首先对序列分块,分成sqrt(n)块. 然后对权值分块,共维护sqrt(n)个权值分块,对于权值分块T[i],存储了序列分块的前i块的权值情况. ...

  2. 长按事件OnLongClickListener

    1.MainActivity.java package com.example.administrator.hello4; import android.support.v7.app.AppCompa ...

  3. webpack导入es6的简单应用

    1.先全局安装babel的需要文件 npm install -g babel-cli npm install --save-dev babel-preset-es2015 babel-core bab ...

  4. 深入理解AMD和RequireJS!

    AMD 基于commonJS规范的nodeJS出来以后,服务端的模块概念已经形成,很自然地,大家就想要客户端模块.而且最好两者能够兼容,一个模块不用修改,在服务器和浏览器都可以运行.但是,由于一个重大 ...

  5. java源码阅读ArrayBlockingQueue

    1类签名与简介 public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQ ...

  6. 第五章:关于ESearch的应用

    ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例. 我在这里做一下简单介绍和整理: 首先.ES搜索引擎给予java开放使用之前必须安装java环境,使用j ...

  7. java 问题汇总(总结,重点)若忘了可以看看{不定时更新}

    在用到spring框架中时,场景如下 post 请求过去,对象接收不到参数的值(解决办法:考虑到在参数上加个@RequestBody 注解即可,有些没加的是框架帮忙处理了后默认接收的是json串) h ...

  8. Codeforces 553B Kyoya and Permutation

    problem 题意 本题题意不太easy看懂. 给定一个序列,我们能够把这个序列变成一些循环置换的和.然而这样的置换的方法是不止一种的.我们定义一种standard cyclic represent ...

  9. Docker默认存储路径修改

    Docker默认存储路径: # docker info...... Data loop file: /var/lib/docker/devicemapper/devicemapper/data.... ...

  10. java动态载入指定的类或者jar包反射调用其方法

    序言 有时候.项目中会用到java动态载入指定的类或者jar包反射调用其方法来达到模块的分离,使各个功能之间耦合性大大减少,更加的模块化.代码利用率更高.模式中的代理模式就用到java的这一机制. 下 ...