前面有两篇文章,《Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份》和《Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份》,分别介绍了两种在线备份操作系统的方法。
前面两种,都是为了不中断业务而使用的较为精巧的备份。

今天我们介绍另外一种粗旷,但是相对简单的备份方法:通过dd命令二进制拷贝方式备份操作系统数据。dd拷贝的方式不能在线实施,因为dd是二进制
的块拷贝,若拷贝过程中有写文件操作,会导致文件系统不一致(如某个节点创建到一半被dd拷贝走了),因此,这种方式必须进入内存操作系的单用户模式下操
作,实施过程中不能挂接任何文件系统。所以说是比较粗旷的方法。

环境要求

需要准备好裁减的内存操作系统。
准备用一台PC,作为DHCP服务器,同时也作为备份文件存放的服务器(SSH Server)。
PC与Server之间建立SSH信任关系。

备份流程
1)在PC机上启动DHCP Server和TFTP Server。
2)将Server设置为从网络启动,并重新引导。
3)Server启动后DHCP Client请求到PC机上的DHCP Server后,分配到了临时IP地址,然后通过TFTP加在内存操作系统。
4)我们的备份脚本也打包在内存操作性系统中,随内存操作性系统启动。然后启动备份。
5)脚本分成两部分:调度和备份。调度脚本根据当前的CPU核数量,启动同样数量的备份脚本。调度脚本计算好块大小,给每个备份脚本制定拷贝的块范围,直到整个操作系统盘(sda)拷贝完成位置。
6)调度脚本在启动备份脚本之前,还会先mount一份内存文件系统(ramfs),用于临时存放拷贝的包。内存文件系统的大小要根据服务器自身的内存大小和每次块拷贝的大小来确定。
7)备份脚本拷贝完成之后打包并通过scp传输到PC机器上,然后退出。调度脚本又启动一个备份脚本,一直到整个sda拷贝完成为止。
8)最后重启操作系统完成备份。

恢复流程
恢复是一个逆向的过程,将压缩包逐个解压然后dd回去。

Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份的更多相关文章

  1. Using Android Phone to recover SD card formatted with DD command under linux

    Using Android Phone to recover SD card formatted with DD command under linux 1. Formatted a sd card ...

  2. Linux中删除特殊名称文件的多种方式

    今日分享:我们在肉体的疾病方面花了不少钱,精神的病害方面却没有花什么,现在已经到了时候,我们应该有不平凡的学校.--<瓦尔登湖> 前言 我们都知道,在linux删除一个文件可以使用rm命令 ...

  3. Docker 学习笔记(持久化数据的备份,还原)

    假如我们应用程序需要一台 mssql 数据库来持久化数据,我们将 mssql 数据库运行于 Docker 容器中: docker run -d -p 1433:1433 -e "ACCEPT ...

  4. Linux系统备份还原工具1(DD)

    注意:只要时运行备份,建议都使用Ubuntu的Live CD功能启动来操作(即启动盘下的试用Ubuntu而不安装的功能),因为这样可以减少资源占用造成的备份不完整. 说明: 1.使用DD进行硬盘备份可 ...

  5. Linux常用命令(6/26)——dd命令和split命令

    dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 以可选块长度复制文件,默认情况下从标准输入设备输出到标准输出设备.复制过程中,还可以对文件进行一些转换. dd命令可以指定block的 ...

  6. Linux高级运维 第四章 文件的基本管理和XFS文件系统备份恢复

    4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在windows系统中,查看文件先进入相应的盘符,然后进入文件目录 在windows中,它是多根  c:\    d:\   e ...

  7. [转]如何整理Linux磁盘碎片,竟与Windows的方式大不同 返回操作系统首页

    Linux 系统永远不需要整理磁盘碎片的神话相信很多人都听说过.由于 Linux 采用了优秀的日志文件系统(ext2.ext3.ext4, btrfs等),在绝大多数情况下确实是不需要进行磁盘碎片整理 ...

  8. 在Linux系统中如何把文件拷贝到U盘

    Linux下把所有的都当成文件处理,如果在linux系统下需要拷贝文件,哪么你需要先把U盘挂载到系统中的某一个位置,然后再使用cp命令完成拷贝.   工具/原料 Linux操作系统一台 U盘一枚 方法 ...

  9. Netty 零拷贝(一)Linux 零拷贝

    Netty 零拷贝(一)Linux 零拷贝 本文探讨 Linux 中主要的几种零拷贝技术以及零拷贝技术适用的场景. 一.几个重要的概念 1.1 用户空间与内核空间 操作系统的核心是内核,独立于普通的应 ...

随机推荐

  1. strncpy,strcpy

    strncpy不会为des自动添加“\0” strcpy遇空结束,自动添加结束符 结论: 1.使用strcpy时一定不能用于无结束符的字符串,因为strcpy依赖\0判断源字符串的结束 2.使用str ...

  2. CSS3绘制404页面

    标题有点噱了...最近在做一个交通有关的项目, 想做一个类似标志牌的404, 所以就有了这个. 只用的CSS3中的旋转, 效果如下 上代码: <!DOCTYPE html> <htm ...

  3. MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存 ...

  4. 学习AOP之JAVA的代理机制

    从一个输出日志的实例分析JAVA的代理机制 一.通用的日志输出方法  :需要在每个类里都增加对输出日志信息的代码 二.通过面向接口编程实现日志的输出(JAVA的静态代理):虽然实现了业务逻辑与输出日志 ...

  5. Git中三种文件状态及其转换

    查看地址http://phplaber.iteye.com/blog/1699926

  6. Sublime P4语法高亮设置

    Github插件链接:p4-syntax-highlighter 首先安装Package Control. 进入Package界面,我的目录: /Users/wasdns/Library/Applic ...

  7. openwrt的配置

    1,参考:http://www.cnblogs.com/gnuhpc/archive/2013/08/31/3293643.html(此人的博客还是挺不错的) http://www.cnblogs.c ...

  8. Xamarin Android 绑定jar库同时将so库打包进去

    1.在创建的Bindings Library项目中,新建Assets目录: 2.Assets目录下再分别创建armeabi,armeabi-v7a,x86三个目录: 3.将so文件分布copy到三个目 ...

  9. angular模块和组件之间传递信息和操作流程的方法(笔记)

    angular的模块之间,以及controller.directive等组件之间,是相对独立的,用以实现解耦合. 为实现相互之间传递信息及操作流程,有以下一些机制: 1.事件机制: $scope.$b ...

  10. How to reset password for unknow root

    1. Click "e" when entering the grub 2. Add option " init=/bin/sh" to linux line. ...