1、备份分区表信息
sudo fdisk -l >hda.txt  #分区表信息重定向输出到文件中

2、备份MBR

sudo dd if=/dev/sda of=mbr bs=512 count=1  #备份MBR  输入文件/dev/sda, 输出文件mbr(自己定义),输入(出)块大小512字节,复制一次,由于mbr是512个字节,所以读取写到mbr文件中了;主引导记录512字节,前446是程序代码,后64字节包含分区表信息,最后2字节标识是MBR

1KB= 1024字节 
1MB= 1024KB
1GB= 1024MB
3、恢复分区表
dd if=mbr of=/dev/sda bs=1 skip=446 count=66  #输入文件mbr,输出 /dev/sda ,块大小1个字节,输入跳过446字节,恢复66个字节,看来恢复的只有66个字节   这里只恢复mbr
如果逻辑分区都没有了,则用fdisk 照着hda.txt的信息重分一下就行了。
root@zabix:~/sdb# dd if=/root/sdb/test of=/dev/sdb bs=1  count=512  恢复分区表
 
 
dd是linux下的一个非常有用的命令,作用是用指定大小的块复制一个文件,并在复制的同时进行指定的转换。
 
if=输入文件(input file),  如: if=/dev/sda,缺省为标准输入 
 
of=输出文件(output file), 如: of=mbr, 缺省为标准输出
 
ibs=Bytes,一次读入Bytes个字节,即一个块大小为Bytes个字节
 
obs=Bytes, 一次写Bytes个字节,即一个块大小为Bytes个字节
 
bs=Bytes ,同时设置读写块的大小为Bytes字节,可代替ibs,obs
 
cbs=Bytes,一次转换Bytes个字节,即转换缓冲区大小
 
skip=blocks, 从输入文件开头跳过blocks个块后再开始复制
 
seek=blocks,从输出文件开头路过blocks个块后再开始复制(通常只有当输出文件是磁盘或磁带时才有效)
 
count=blocks, 仅复制blocks个块,块大小是ibs指定的字节数
 
conv=conversion[,conversion...]
用指定的参数转换文件。
转换参数:
ascii 转换 EBCDIC 为 ASCII。
ebcdic 转换 ASCII 为 EBCDIC。
ibm 转换 ASCII 为 alternate EBCDIC.
block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。
unblock 使每一行的长度都为 cbs ,不足部分用空格填充。
lcase 把大写字符转换为小写字符。
ucase 把小写字符转换为大写字符。
swab 交换输入的每对字节。
noerror 出错时不停止。
notrunc 不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
 

1.命令简介 
dd 的主要选项:

指定数字的地方若以下列字符结尾乘以相应的数字:

b=512, c=1, k=1024, w=2, xm=number m

if=file #输入文件名,缺省为标准输入。 
of=file #输出文件名,缺省为标准输出。 
ibs=bytes #一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。 
obs=bytes #一次写 bytes 个字节(即一个块大小为 bytes 个字节)。 
bs=bytes #同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。 
cbs=bytes #一次转换 bytes 个字节,即转换缓冲区大小。 
skip=blocks #从输入文件开头跳过 blocks 个块后再开始复制。 
seek=blocks #从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。 
count=blocks #仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 
conv=conversion[,conversion...] #用指定的参数转换文件。

转换参数: 
ascii 转换 EBCDIC 为 ASCII。 
ebcdic 转换 ASCII 为 EBCDIC。 
ibm 转换 ASCII 为 alternate EBCDIC. 
block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。 
unblock 使每一行的长度都为 cbs ,不足部分用空格填充。 
lcase 把大写字符转换为小写字符。 
ucase 把小写字符转换为大写字符。 
swab 交换输入的每对字节。 
noerror 出错时不停止。 
notrunc 不截短输出文件。 
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

2.实例分析 
2.1.数据备份与恢复

2.1.1整盘数据备份与恢复

备份: 
dd if=/dev/hdx of=/dev/hdy #将本地的/dev/hdx整盘备份到/dev/hdy 
dd if=/dev/hdx of=/path/to/image #将/dev/hdx全盘数据备份到指定路径的image文件 
dd if=/dev/hdx | gzip >/path/to/image.gz 
#备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径

恢复:

dd if=/path/to/image of=/dev/hdx #将备份文件恢复到指定盘 
gzip -dc /path/to/image.gz | dd of=/dev/hdx #将压缩的备份文件恢复到指定盘

2.1.2.利用netcat远程备份 
dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234 #在源主机上执行此命令备份/dev/hda

netcat -l -p 1234 | dd of=/dev/hdc bs=16065b #在目的主机上执行此命令来接收数据并写入/dev/hdc

netcat -l -p 1234 | bzip2 > partition.img 
netcat -l -p 1234 | gzip > partition.img 
#以上两条指令是目的主机指令的变化分别采用bzip2 gzip对数据进行压缩,并将备份文件保存在当前目录。

2.1.3.备份MBR 
备份: dd if=/dev/hdx of=/path/to/image count=1 bs=512 
备份磁盘开始的512Byte大小的MBR信息到指定文件

恢复: dd if=/path/to/image of=/dev/hdx 
将备份的MBR信息写到磁盘开始部分

2.1.4.备份软盘 
dd if=/dev/fd0 of=disk.img count=1 bs=1440k 
将软驱数据备份到当前目录的disk.img文件

2.1.5.拷贝内存资料到硬盘 
dd if=/dev/mem of=/root/mem.bin bs=1024 
将内存里的数据拷贝到root目录下的mem.bin文件

2.1.6.从光盘拷贝iso镜像 
dd if=/dev/cdrom of=/root/cd.iso 
拷贝光盘数据到root文件夹下,并保存为cd.iso文件

2.2.增加Swap分区文件大小 
dd if=/dev/zero of=/swapfile bs=1024 count=262144 #创建一个足够大的文件(此处为256M) 
mkswap /swapfile #把这个文件变成swap文件 
swapon /swapfile #启用这个swap文件 
/swapfile swap swap defaults 0 0 #在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行

2.3.销毁磁盘数据 
dd if=/dev/urandom of=/dev/hda1 
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作无法执行。

2.4.磁盘管理

2.4.1.得到最恰当的block size 
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file 
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file 
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file 
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file 
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小

2.4.2测试硬盘读写速度 
dd if=/root/1Gb.file bs=64k | dd of=/dev/null 
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度

2.4.3.修复硬盘 
dd if=/dev/sda of=/dev/sda 
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

dd if= of= MBR的更多相关文章

  1. 磁盘,fdisk分区,MBR,dd命令

    光盘和磁盘.u盘.软盘.硬盘有什么区别 ①光盘: cdrom/dvdrom:光驱(光盘驱动器)    rom:只读    ram:可以擦写    cd:700M    dvd:4G ②软盘:flopp ...

  2. MBR与分区表备份与恢复

    常用工具列表 dd                   数据复制,转换实用工具 tar                  GNU磁盘存档实用工具 cpio                数据存档实用工 ...

  3. linux命令dd

    原文链接: http://blog.csdn.net/adaptiver/article/details/6672592 dd 使用dd这个linux命令可以创建一定大小文件. linux创建文件命令 ...

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

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

  5. mbr 备份

    MBR共512字节 (1) 第1-446字节:调用操作系统的机器码. (2) 第447-510字节:分区表(Partition table). (3) 第511-512字节:主引导记录签名(0x55和 ...

  6. Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

    Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...

  7. shell常用命令归类整理

    shell 命令整理     bash shell 含有许多功能,因此有许多可用的命令:本文档仅罗列了一些常用命令及其使用频率较高的参数.#本文档仅罗列了一些常用命令及其使用频率较高的参数.#vers ...

  8. linux运维中的命令梳理(四)

    ----------管理命令---------- ps命令:查看进程 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不 ...

  9. 提取所有mtk机型的线刷包

    首先手机root且安装busybox和超级终端软件,这里不提供自己百度一大堆 一.制作scatter 示范 PRELOADER 0x0 { } MBR 0x600000 { } EBR1 0x6800 ...

随机推荐

  1. Linux的几种关机命令

    在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各 ...

  2. Thinkcmf任意漏洞包含漏洞分析复现

    简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建.ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的 ...

  3. Typescript 实战 --- (9)ES6与CommonJS的模块系统

    1.ES6模块系统 1-1.export 导出 (1).单独导出 // a.ts export let a = 1; (2).批量导出 // a.ts let b = 2; let c = 3; ex ...

  4. 《新标准C++程序设计》4.5(C++学习笔记15)

    实例:长度可变的整型数组类 int main() { //要编写可变长整型数组类,使之能如下使用: CArray a; //开始里的数组是空的 ; i < ; ++i) a.push_back( ...

  5. C++ 语言程序设计(清华大学)2

    面向对象 1.面向对象程序基本特点:抽象.封装.继承.多态 2.类分为:公有类型成员public(接口),私有类型成员private(本类函数访问,类外要用友元函数访问),保护类型成员protect( ...

  6. Linux学习《第四章shell脚本练习一》随堂练习(重要)

  7. S7-300 实训3 异步电机正反转控制

    含有视频 方便以后查阅 参考书籍 跟我动手学 S7-300/400 PLC 第2版  廖常初 主编 实训3 异步电动机 正反转控制 步骤1 步骤2 在 cycle execution 前方 右击 插入 ...

  8. 从PC厂商狠抓粉丝经济看,春天将至?

    10月中旬,市场研究机构IDC发布的全球三季度PC出货量报告显示,第三季度全球个人电脑出货量总计6740万台,比去年同期下降0.9%.似乎这一数据的发布,依旧在证明着PC市场的颓势.但在这样的大背景下 ...

  9. Redis集群环境之linux搭建单机版

    Redis解决的问题是:作为一个缓存nosql数据库,能够支持高并发,关系型数据库是存储在磁盘中,通过io读写,而redis是存储在内存中,因此,能够实现高可用,他主要是解决数据库性能瓶颈而产生的. ...

  10. CentOS 6.8 32位 安装mysql8

    1.清理掉之前安装过的mysql rpm -qa | grep mysql mysql-libs-5.1.52-1.el6_0.1.x86_64 yum remove mysql-libs-5.1.5 ...