Linux江湖13:我该如何备份系统

Posted on 2014-12-18 10:39 京山游侠 阅读(497) 评论(3) 编辑 收藏

在前面的一些文章中,我反复提到经常会把系统搞崩溃,所以备份系统就是一件不容忽视的事情。由于Linux系统本身的优越性,系统的备份和还原还是比较容易的。主要表现在以下方面:

  • Linux系统所有的数据都以文件的形式存在,所以备份就是直接拷贝文件;硬盘分区也被当成文件,所以可以直接克隆硬盘数据。
  • Linux系统自带很多实用工具,比如tar、dd、rsync等,备份还原系统不需要购买或下载第三方软件。
  • Linux系统在运行时其硬盘上的文件可以直接被覆盖,所以还原系统的时候不需要另外的引导盘。(当然,系统完全挂掉到无法启动这种情况还是需要另外的引导盘的。)

备份Linux系统的策略有很多,比如使用dd命令直接克隆硬盘分区:

sudo dd if=/dev/sda1 of=/dev/sdb1

或者,使用tar将硬盘上的文件打包:

cd /
sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz /

还原系统的命令是:

sudo dd if=/dev/sdb1 of=/dev/sda1

tar xvpfz backup.tgz -C /

但是我最终选择的是rsync命令。rsync是一个非常优秀的文件同步工具,从它的名字可以看出,它支持远程同步。当然,在备份我的桌面系统时,只需要用到它的本地同步功能就行了。之所以选择rsync,是因为它具有如下优点:

  • 在备份还原过程中,可以保存文件原有的时间、权限、软硬链接等信息;
  • 首次备份时,需要复制所有文件,但是再次备份或还原系统时,只需要复制修改过的文件。

关于rsync的使用方法,其主要参考文档是man rsync,另外,rsync也可以作为守护进程运行用来建立文件备份服务器,可以参考文档man rsyncd.conf

桌面系统备份实战

对于我的桌面系统,我选择的备份策略是使用rsync命令将硬盘上的所有文件(当然要排除/proc和/sys目录下的内容)复制到U盘上。首先使用df -lh命令查看一下我电脑的系统占多大空间,如下图:

从上图可以看出,根目录所在的分区占用了14G,而/boot目录所在的分区才占用100多M。其实Linux系统本来不用这么臃肿,只是因为我安装了太多的软件包,比如一整套的texlive啊什么的,才占用了这么多的空间。不过这都不是事儿,反正现在U盘也便宜,所以找个32G的USB 3.0的U盘来备份我这个系统,肯定是很轻松愉快的。

新U盘插到电脑上会被自动识别,使用不带参数的mount命令可以查看U盘的设备文件和挂载路径,使用fdisk命令了解U盘的大小和分区情况。如下图:

整个U盘分成一个区我没什么意见,不过我不喜欢它的vfat文件系统,万一碰到超过4G的巨型文件怎么办?so,先umount它,然后使用mkfs.ext3为它重新建立一个文件系统,如下图:

再把U盘mount起来,挂载的路径为/media/youxia/usb。如下图:

然后,可以开始备份了,我备份的命令是:

sudo rsync -Pa / /media/youxia/usb/backup_20141216 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*

如下图:

下图是备份完成后的效果,可以看到整个备份过程花了59分多钟,U盘被占用15G,如下图:

如果哪天系统再崩溃了的话,只需要使用sudo rsync -Pa /media/youxia/usb/backup_20141216 /即可恢复系统。

(京山游侠于2014-12-18发布于博客园,转载请注明出处。)

另:该文章使用Markdown写作,写起来挺舒服的。而且我的博客开启了数学公式支持,所以各位评论的朋友们注意了,如果评论中用到$字符,请使用<span>$</span>这种形式。

 在Linux系统下各种折腾,偶有所感。

摘要: Linux系统备份的一点心得。阅读全文

posted @ 2014-12-18 10:39 京山游侠 阅读(498) | 评论 (3) 编辑 |

摘要: Linux桌面美化的一点心得。阅读全文

posted @ 2014-10-31 21:38 京山游侠 阅读(4344) | 评论 (20) 编辑 |

摘要: 发博客时总免不了要用图片说话。这里向大家推荐几款在Linux系统下应用广泛、运行稳定、界面美观、功能强大的图像处理软件。阅读全文

posted @ 2014-10-20 17:34 京山游侠 阅读(615) | 评论 (2) 编辑 |

摘要: 在这一篇中,我将探讨Bash脚本语言中的美学与哲学。这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更加快速地学习Bash脚本编程。阅读这篇随笔,不需要你有Bash编程的经验,但一定要和我一样热衷于探索各种编程语言的本质,感悟它们的魅力。阅读全文

posted @ 2014-09-30 15:17 京山游侠 阅读(597) | 评论 (5) 编辑 |

摘要: 在Ubuntu 14.04中安装了个搜狗输入法,虽然没什么难度,也拿出来和大家分享一下。我用的不是Ubuntu Kylin,而是原生的Ubuntu。我安装搜狗输入法也曾经把系统搞挂掉哦,所以还是有些教训可以吸取的。阅读全文

posted @ 2014-09-12 13:15 京山游侠 阅读(896) | 评论 (3) 编辑 |

摘要: 编写运行于x86实模式下的16位程序和编写能在DOS下运行的Plain Binary可执行文件都是一个复古的话题。以往,凡是需要使用x86的16位实模式的时候,其他作者都喜欢用NASM来编程。我就是想使用gcc和as来编写16位的程序。这篇文章就是阐述怎样来干这件事。阅读全文

posted @ 2014-08-24 15:30 京山游侠 阅读(512) | 评论 (2) 编辑 |

摘要: 折腾Linux系统,总免不了经常进行硬盘分区和系统安装,也总免不了要和各个版本的Windows系统组建多系统。更何况,主板的BIOS标准和硬盘分区的标准也总在变化。该文章不仅展示了传统的MBR硬盘分区安装Linux,也展示了最新的只支持EFI的主板和使用GPT分区的硬盘安装Linux,以及说明其基本原理。阅读全文

posted @ 2014-07-13 13:55 京山游侠 阅读(579) | 评论 (3) 编辑 |

摘要: 写Linux系列的文章少了C语言可不行。但是我又不是一个语言专家。所以这篇文章只写了我自己的一点小感悟,以及使用Vim写C程序的一点小技巧。不过我这篇文章中提供的学习资料可不少。阅读全文

posted @ 2014-06-29 13:05 京山游侠 阅读(705) | 评论 (0) 编辑 |

摘要: 展示了Fedora 20配置字体的全过程。通过对Fontconfig配置文件的展示,以及用fc-pattern、fc-match命令对字体配置进行测试,揭开Fontconfig的神秘面纱。包含大量截图。阅读全文

posted @ 2014-06-20 21:27 京山游侠 阅读(693) | 评论 (2) 编辑 |

摘要: Linux系统中字体配置的心得。本来准备一篇文章写完,结果发现实在太长了,所以只好分成上下两部分。这部分主要是对字体及字体显示技术的认识,包含丰富的截图。阅读全文

posted @ 2014-06-18 21:40 京山游侠 阅读(770) | 评论 (1) 编辑 |

摘要: 网上虽然有不少讲述X Window的中文资料,但是我认为那些文章不够深入,也不够新。我这里以最新的Ubuntu-14.04 Desktop为例,展示如何学习X Window。包含以下内容:1.理解DISPLAY和DISPLAY MANAGER;2.理解Linux桌面的启动过程;3.在一个Linux中开启多个X Server;4.远程连接X Server需要做哪些工作。包含丰富的截图,仍然包含一些很重要的折腾Linux系统的方法论。阅读全文

posted @ 2014-06-08 18:45 京山游侠 阅读(699) | 评论 (5) 编辑 |

摘要: 打造属于自己的Vim。 1.展示一个最简单但是看起来很舒服、用起来很顺手的Vim配置; 2.展示使用Vundle管理插件; 3.展示使用Vim阅读Linux内核源代码的效果。 包含大量截图。阅读全文

posted @ 2014-06-04 10:17 京山游侠 阅读(1092) | 评论 (7) 编辑 |

摘要: 折腾Linux系统所需要的一些技巧。包括怎么使用包管理器查找想要的软件包、怎么查看一个软件包安装后其文件分散到文件系统的哪些地方、怎样查看一个文件属于哪个软件包、怎么查看软件的文档以及怎么获取软件包的源代码。包含丰富的截图。 另外,这篇文章只是我准备写的“Linux江湖”系列的开篇。阅读全文

posted @ 2014-05-27 21:37 京山游侠 阅读(866) | 评论 (8) 编辑 |

分类: Linux江湖
标签: Linux系统备份rsync

Linux---江湖的更多相关文章

  1. Linux江湖01:玩转Linux系统的方法论 (转载)

    http://www.blogjava.net/youxia/archive/2015/01/08/linux001.html 2014年上半年,我是在写RCP系列.然后,由于要准备研究生毕业论文和答 ...

  2. Linux 江湖系列阶段性总结

    引言 我使用 Linux 已经有很多年了,最开始接触 Linux 的时候是从 RedHat 9(没有 Enterprise),中途换过 N 个不同的发行版.多年前,我在 BlogJava 上面分享 J ...

  3. 玩转 Linux 系统的方法论

    Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...

  4. Linux应用环境

    转载Linux应用环境 阅读目录 引言 使用 Linux 的一些困难和解决方法 我眼中的Linux哲学总纲 我这一系列随笔中展现出的Linux哲学 Linux之得和Linux之失 总结 回到顶部 引言 ...

  5. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  6. 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE

    C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...

  7. vim编辑器的使用详解

    在Linux江湖,最常用到的编辑器非vim莫属,vim的功能很强大. 1.   vim简介 在Linux世界中,最长用到的而且功能比较强大的是Vim编辑器.Vim编辑器是在内存缓冲区中处理数据. vi ...

  8. Linux 桌面系统字体配置要略

    字体显示效果测试 这一段是为了测试宋体字的显示效果,包括宋体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.后面几个字是加粗的宋体. ...

  9. 操作系统Unix、Windows、Mac OS、Linux的故事

    电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...

随机推荐

  1. FPGA合成编码

    1 决策树 于FPGA推断使用if else报表及case达到. a) if else 是有特权的,类似于优先编码(当两个条件同一时候成立,仅推断条件靠前的成立),所以当有特权条件时应该採用if el ...

  2. 给AspNetPager分页控件添加bootstrap样式

    AspNetPager分页控件算是比较好用的一个分页控件了.想要结合bootstrap使用,官方代码入口 .pagination a[disabled]{ color: #777;cursor: no ...

  3. Cordova WP8 插件开发

    原文:Cordova WP8 插件开发 前面博客中介绍了Cordova WP8平台上的安装部署,Cordova扩展可以利用WP8本地代码扩展WebApp的功能,调用本地能力需要开发相应的插件,下面以闪 ...

  4. Ping azure

    最近azure在虚拟机上打开(欧式世纪互联),这其实并不能ping虚拟机! 查了一下资料,发现azure不支持被ping这个功能(貌似是不开放ICMP-in这个协议).有些用户跟客服问过这个问题,可是 ...

  5. Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)

    一.引言    本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于Intelli ...

  6. Python标准库简介

    在<Python语言参考手册>描述中的描述Python语法和语义,而本手冊主要介绍了Python标准库的内容和使用,也介绍了一些发行库里可选的组件库. Python标准库包括的内容是非常广 ...

  7. Android-往来:添加到联系人

    //添加到联系人.使用事务 public void testAddContact() { String name[]={"周杰伦","谢霆锋","言承 ...

  8. cocos2dx 制作单机麻将(二)

    cocos2dx 制作单机麻将(二) 打乱麻将顺序2 前面解说了怎样打乱初始给定的麻将牌堆, 另一种是打乱随意给定的麻将牌堆 //混乱扑克2 void RandAppointCardData(BYTE ...

  9. NSIS脚本:更改壁纸

    原文 NSIS脚本:更改壁纸 我们在制作主题安装包的时候,经常要进行自动更改壁纸的操作,其实用NSIS实现这一点非常简单.示例代码如下: 01 Name "更改壁纸" 02 Out ...

  10. wikioi 1002 旁路

    意甲冠军:这个问题刚开始的问题,有错误的含义,原桥始建于一条直线.无论多么遥远. 思维:dfs寻求答案的第一个问题.然后做最小生成树,双方不能大桥将设置INF即可了.然后假设用到INF的边就加上0即可 ...