u盘MBR误删除,但是有MBR的16进制备份,如何恢复优盘MBR

需求描述:

             自己的U盘是装的有个slax系统,开机能自己启动。

      我估计就是这个原因,在我进入windows后,pqmagic识别不了我的优盘。而现在我有需求需要把U盘的fat32分区,

      resize一下,就是想把U盘分成两个区。

 

---------------------------------------------------我是华丽的分割线-------------------------------------------------------------

问题描述:

      当时,就为了让PQ能认我的U盘,我自己手动用,winhex把U盘的MBR给删除了,不过还好,我先把MBR拷贝了,不过不是

正常拷贝,而是拷贝的hex value,这个就导致了我无法通过正常途径恢复MBR。真是个悲剧阿。。。

 

---------------------------------------------------我是华丽的分割线-------------------------------------------------------------

解决途径:

 

      其实一开始,就有一个办法,那就是用vim打开我保存的MBR的16进制数值,然后看着它,一个一个的用winhex手动写回U盘,

不过这个太慢了,太费眼睛了,也不是咱学计算机的干的。

      就在我写这篇文章的时候,突然想起来,我真笨,可以编个C程序的,既然有了16进制的数据,用vim把每byte前面加个0x,

比如FA31,改为0xFA0x31,然后把这串数据直接write回去,就可以了...

 

      好了,开始说自己用的方法。就是用winhex在U盘MBR的位置,随便写几个数据,然后copy,不过这次要正常copy,保存为mbr。

然后用vim编辑mbr,转换为16进制,然后保存。然后再用ultraEdit编辑转换后的mbr,用列编辑的方式,把之前自己保存的MBR的16进制数据copy过去,然后保存。接着再用vim打开mbr,下面就需要修改几个字节,不然转换回去后,数据会多几个字节,这是因为用byte=0a的缘故,mbr里有几个byte是0a,当你用vim转换回去的时候,0a就变成0d0a了,多出来个0d,你再转换成16进制就会发现这个问题了。

   解决这个小问题的方法就是先把0a改成一个数,我改成了31,也就是10进制的1。0a都改成31后,用vim转换回去。然后再用winhex打开mbr,打开后,把31该回原来的0a,然后正常copy,再粘贴到MBR的位置就ok了。

 

---------------------------------------------------我是华丽的分割线-------------------------------------------------------------

  此方法适用于不想编程解决。不知道别人能看懂不,说的有些罗嗦,不过感觉,还算清楚~

  主要还是自己备忘~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值