当前位置:Linux教程 - Linux综合 - 关于mbr的存取控制

关于mbr的存取控制

  不少朋友爱装多系统,自然避免不了对mbr和c盘的引导扇区的操作,下面写一下个人的在这方面的心得,与大家共享。 1,****** 在 98和2000共存,重装98的时候,有可能把c盘的引导扇区重写,因为这个扇区里的引导程序可以双引导,那么重写以后,就不能引导2k了。如果我们在重装98前把c盘引导扇区的信息先保存下来,重装完了以后再恢复回去,不就可以又恢复双引导了吗?这个过程用98自带的debug程序就可以完成。 进入win98的command.com c:>debug -l 100 2 0 1 -n c: esttest -r cx CX 0000 :200 -w 100 Writing 00200 bytes -q c: esttest就是C盘的引导扇区。 恢复的时候可以如下,先进入command.com: c:debug -n c: esttest -l 100 -w 100 2 0 1 -q OK了。 2,****** 对于Linux系统,对mbr进行操作的命令为dd,例如,要读出硬盘的mbr,命令为 dd if=/dev/hda of=./mbr bs=512 count=1 要写回硬盘的mbr,命令为 dd if=./mbr of=/dev/hda bs=512 count=1 3,******* 有的时候,我们还有同时安装98和linux 的习惯,而这个时候,在mbr里装有linux的引导程序,如果我们重装98,他是要重写mbr的,重装后要恢复回原来能多引导的mbr,有多种办法,比如用linux启动软盘引导,用相关命令重写mbr引导程序,有没有更简单的办法呢,呵呵,当然有了,还是用 debug。 不管你怎么重装系统,win98是你肯定都可以进入的,所以我们不需要别的工具,只用他自带的就最方便了。 下面是先把mbr的内容保存到文件c:mbr.dbg的操作 进入win98的command.com c:>debug -a进入小汇编 2631:0100 mov ax,0201ah,读磁道,al,读的扇区数为1 2631:0103 mov bx,1000es:bx=数据缓冲区地址 2631:0106 mov cx,0001ch,cl=磁道号,扇区号 2631:0109 mov dx,0080dh,dl=磁头号,驱动器号,80为硬盘 2631:010c int 13bios的磁盘功能 2631:010e int 3断点指令(用于debug) 2631:010f -g10f执行 -r bx BX 1000 :0000 -r cx CX 0001 :0200 -n c:mbr.dbg命名 -w 1000写到上面命名文件,写入地址为1000,大小为BX:CX字节 Writing 00200 bytes -q退出 下面是把mbr的内容恢复回去的方法, 进入win98的command.com c:>debug -n c:mbr.dbg -l 1000加载到地址1000 -a 2631:0100 mov ax,03013号功能为写磁道,写1个扇区 2631:0103 mov bx,1000 2631:0106 mov cx,0001 2631:0109 mov dx,0080 2631:010c int 13 2631:010e int 3 2631:010f -g10f -q 4,******* 以上的方法虽然简单,但是相信很少有人愿意用,毕竟风险比较大,那就使用norton的diskedit工具,他可以轻松菜单化的完成对mbr的保存和恢复,在pchome有下载,文件大小为48K 还有一个工具是diskman,可以完成对硬盘分区的保存和恢复。 附言:以上方法除方法3外,方法1,2,4我常用,绝对保证安全,方法3我没试过,但是原理上没有问题,我在virtualpc pcdos2000下测试通过,关于读出mbr,用debug方法和diskedit读出的文件内容完全一样。用debug方法写回mbr后,系统正常启动。呵呵,哪位大侠愿意在自己机子上试试,如果成功了,别忘了通知偶一声。

(出处:http://www.sheup.com)