免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 17581 | 回复: 42
打印 上一主题 下一主题

关于用dd备份或恢复分区表,有个问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-29 12:32 |只看该作者 |倒序浏览
看书上的用dd备份分区表,但是没写恢复,后来就用GOOGLE找了下,找到一个很多网站都有的例子:
首先使用fdisk -l 确定MBR位置。
备份MBR:
dd if=/dev/sda1 of=/root/mbr bs=512 count=1
恢复MBR:
dd if=/root/mbr of=/dev/sda1 bs=512 count=1
恢复分区表:
dd if=/root/mbr of=/dev/sda1 bs=512 skip=446 count=66
注:mbr大小512 所以bs=512 count=1
bs=512 skip=446 count=66 用来确定分区表在备份文件中的位置


其中有疑问的地方就是恢复分区表,按我的理解,前面在恢复MBR的时候,给的bs=512,很明显已经是磁盘主引导区的大小了(启动代码[446]+磁盘分区表[64]+结束标志[2]),也就是说MBR通过这样已经恢复了。

那下面的恢复分区表是什么意思呢?难道说作者不知道MBR是什么且包括什么?而且,基于bs=512的前提条件下,skip=446表示跳过输入文件开头的446个块,而备份的文件一共才count=1个块,它是怎么做到从备份的mbr文件中跳过446个块并且复制剩下的66个块的呢?

我最初对这条命令的疑问是:从输入文件跳过446个块开始复制,基于块大小为512的前提条件,复制66个,我就奇了怪了,你这样复制回去的时候,难道dd命令也会基于块大小为512的前提下在of文件中跳过446个块将你复制的66个覆盖进去?

所以到目前为止,我理解的恢复MBR,还是停留在自己想像的交换备份的if和of就行了!

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2010-11-29 12:33 |只看该作者
本帖最后由 wlforyou1 于 2010-11-29 12:40 编辑

沙发·~楼主要做备份?
哇,前辈06年注册的啊。差不多一年发一个帖子。。嘻嘻,我咋就这么喜欢讲话呢。认真学习linux……

论坛徽章:
0
3 [报告]
发表于 2010-11-29 12:35 |只看该作者
本帖最后由 sfrost 于 2010-11-29 12:36 编辑

回复 2# wlforyou1
感谢您对我贴子的快速回复,麻烦您看一下我贴子的内容,谢谢您的支持!

我也编辑一下回复您的第二个问题:当时注册这个论坛是因为学PHP,搜到一篇文章觉得这个论坛不错,所以注册了,结果发现主要不是PHP,饿,所以一直没咋上,到现在学LINUX,所以就到这儿来学习了。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
4 [报告]
发表于 2010-11-29 12:36 |只看该作者
回复  wlforyou1
感谢您对我贴子的快速回复,麻烦您看一下我贴子的内容,谢谢您的支持!
sfrost 发表于 2010-11-29 12:35



    我不会哦。要是会的,我肯定写出来了。帮你顶。希望你能得到解决的方法。

论坛徽章:
0
5 [报告]
发表于 2010-11-29 12:38 |只看该作者
回复 4# wlforyou1
非常感谢,说话有些尖酸的地方还请理解。因为个人喜欢技术贴子里面只有讨论,而没有无意义的回复,所以冒犯的地方还请原谅哈!

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
6 [报告]
发表于 2010-11-29 12:40 |只看该作者
回复  wlforyou1
非常感谢,说话有些尖酸的地方还请理解。因为个人喜欢技术贴子里面只有讨论,而没有无意 ...
sfrost 发表于 2010-11-29 12:38



    没有没有,是我说话不好听。你请原谅,我下次不这样了。我向您道歉。

论坛徽章:
0
7 [报告]
发表于 2010-11-29 13:20 |只看该作者
本帖最后由 taojie2000 于 2010-11-29 13:25 编辑

回复 1# sfrost


  dd 参数   skip=blocks   从输入文件开头跳过 blocks 个块后再开始复制    skip=80 count=8  跳过80个字节且复制8个字节

你是问这命令的原理?还是?

他下面是举个例子单独修复分区表的!  第2个命令已经恢复完整了!

论坛徽章:
0
8 [报告]
发表于 2010-11-29 13:50 |只看该作者
回复 7# taojie2000
哦。。。其实我错理解skip=446了,这儿的446单位是字节,是吧?
而且,bs=512有点类似于文件系统在对磁盘进行格式化时选择的block大小,是吧?

而备份分区表的时候,复制了512字节。在恢复的时候,要单独恢复mbr中的分区表,就跳过[skip=446]mbr中的引导部份,复制剩下的64+2字节,以此来恢复分区表信息,是吧?

那就剩最后一个问题了:单独恢复分区表信息,通过skip=446跳过输入文件的前446字节,然后开始复制64+2字节,复制的内容会放在of文件的哪个位置?

论坛徽章:
0
9 [报告]
发表于 2010-11-29 15:01 |只看该作者
你这个回答让我很无语,本来还想请教你关于skip单位的事。
唉,算了,我还是自己作测试吧!

论坛徽章:
0
10 [报告]
发表于 2010-11-29 15:04 |只看该作者
回复 10# sfrost


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP