dd if= of= MBR

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个字节

如果逻辑分区都没有了,则用fdisk 照着hda.txt的信息重分一下就行了。

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)字符补齐。

dd命令使用详解

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错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

时间: 2024-11-13 12:47:04

dd if= of= MBR的相关文章

使用dd来备份还原分mbr,分区表

备份mbr dd if=/dev/sda of=/backup/mbr.img bs=512 count=1 还原mbr dd if=/backup/mbr.img of=/dev/sda bs=446 count=1 还原分区表,跳过mbr dd if=/backup/mbr.img of=/dev/sda bs=66 skip=446  count=1

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

光盘和磁盘.u盘.软盘.硬盘有什么区别 ①光盘: cdrom/dvdrom:光驱(光盘驱动器)    rom:只读    ram:可以擦写    cd:700M    dvd:4G ②软盘:floppy:软驱(软盘驱动器)③U盘:U盘,全称USB闪存盘,英文名“USB flash disk”.使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即插即用.④磁盘:计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘,将圆形的磁性盘片装在一个方的密封盒子

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

Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的grub跟grub2,因为前阵子用ghost恢复windows的时候出现错误,导致分区表被破坏,无法进入系统.今天给大家介绍下如何备份跟还原我们的硬盘主引导扇区.首先我来介绍下这个硬盘主引导扇区,因为对于这个主引导记录MBR跟这个硬盘分区表DPT的关系,可能有的朋友还不是那么清晰. 硬盘主引导扇区(硬盘的

Linux入门之磁盘管理(5)dd命令使用

在Linux中,经常需要一些数据读写等测试,还有文件以及其它数据的备份迁移,一般使用cp命令可以解决一部分,但是其无法进行控制数据的流向及动作,这时就可以使用dd命令,来进行灵活的数据流操作. dd 命令用法: dd  if=/PATH/FROM/SRC  of=/PATH/TO/DEST #解析:if表示inputfile,表示从if所指的文件读取数据流,然后输出到of所指的文件 详细解析: bs=# :block size,复制单元大小,默认不指定为byte,可以指定M count=#:  

linux命令dd

原文链接: http://blog.csdn.net/adaptiver/article/details/6672592 dd 使用dd这个linux命令可以创建一定大小文件. linux创建文件命令:dd命令把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换.语法:CODE:[Copy to clipboard]dd [选项]QUOTE:if =输入文件(或设备名称).of =输出文件(或设备名称).ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数.

Linux 特殊命令--dd 及Linux补丁制作

一.dd 命令详解: 官方解释: convert and copy a file ---转换并复制文件 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换 语法: dd [OPERAND]... dd OPTION 参数: if=FILE       read from FILE instead of stdin 源文件,用于指定数据流来源 of=FILE     write to FILE instead of stdout

mbr的恢复与备份

备份MBR分区 1.使用fdisk -l 确定MBR位置 2.备份MBR dd if=/dev/sda of=/root/mbr bs=512 count=1 3.恢复MBR dd if=/root/mbr of=/dev/sda bs=512 count=1 4.恢复分区表 dd if=/root/mbr of=/dev/sda bs=512 skip=446 count=66 注:mbr大小512 所以bs=512 count=1 bs=512 skip=446 count=66 用来确定分

查看MBR引导信息

MBR,(master boot record)即主引导记录,是硬盘逻辑上第一个扇区.MBR由系统引导代码段.分区表和有效标志组成,MBR分区表的最大可寻址的存储空间只有2Tb(232×512字节),当PC加电BIOS自检完毕后将控制权交给MBR中的引导代码段,由MBR代码加载操作系统完成启动过程,MBR信息不能存在于不可分区的媒介或高级分区,如软盘.LVM等分区中,是因为系统开机时没有相关驱动,无法识别有效的分区信息. 硬盘的0柱面.0磁头.1扇区称为主引导扇区(也叫主引导记录MBR).它由三

shell dd备份系统

备份MBR.根分区.Boot分区 #!/bin/bash Bak_dir=/mnt   #已挂载的移动硬盘或其他外设 Mbr=`fdisk -l |grep "Disk" |awk NR==1'{print $2}' |awk -F"/" '{print $3}'|sed s/://g` Root=`df |awk '/\//{print $1}' |awk NR==1'{print $1}'` Boot=`df |awk '/\/boot/{print $1}'`