中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » [讨论] DOS, Windows 等几大操作系统的 MBR 和 PBR 的重写方法
作者:
标题: [讨论] DOS, Windows 等几大操作系统的 MBR 和 PBR 的重写方法 上一主题 | 下一主题
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『楼 主』:  [讨论] DOS, Windows 等几大操作系统的 MBR 和 PBR 的重写方法

有时候我们安装了许多操作系统和多系统引导管理软件之后,或者 MBR 或/和 PBR 遭损坏时候往往需要用某种操作系统标准的 MBR 或/和 PBR 对主引导扇区和分区引导扇区进行重写。目前我已知的方法和针对的操作系统如下,欢迎大家补充和指出错误之处:
重写 MBR DOS: fdisk/mbr Windows9X: 1.fdisk/mbr (MS-DOS 7.10) 2.全新安装或重装的时候安装程序会自动重写MBR,除非带 /IR 参数 Windows Me: 不清楚。没怎么用过,忽略。欢迎知道的补充 Windows NT: 不清楚。没怎么用过,忽略。欢迎知道的补充 Windows 2000: 不清楚。全新安装或重装的时候不会改动 MBR Windows XP: 全新安装或重装的时候 重写 PBR DOS: sys Windows9X(MS-DOS 7.10): sys Windows Me: 不清楚。没怎么用过,忽略。欢迎知道的补充 Windows NT: 不清楚。没怎么用过,忽略。欢迎知道的补充 Windows 2000: 全新安装或重装的时候 Windows XP: 全新安装或重装的时候
从中可以看出实际只有 DOS 才提供了重写 MBR 的工具。对 PBR ,实际各大操作系统都没有提供相应的工具,DOS 的 sys 命令只是一个取巧,只是利用了它在传输操作系统时要写标准 PBR 的这一个功能。当然,所有操作系统在格式化分区的时候都会写入标准的 PBR ,由于这样数据也丢失了,所以这种方法没有意义,不在我们的讨论范围。 另外,对于第三方软件我所知的只有 BOOTPART 这一软件,据说可以生成 DOS、Windows9X、WindowsNT 系列的分区引导扇区的记录,至于是否标准,由于我没怎么使用过所以不得而知。




DOS倒下了,但永远不死 DOS NEVER DIES ! 投票调查: www.cn-dos.net/forum/v ... 本人尚未解决的疑难问题: www.cn-dos.net/forum/v ... www.cn-dos.net/forum/v ... www.cn-dos.net/forum/v ...
2007-11-25 14:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
9634888
初级用户





积分 38
发帖 19
注册 2006-10-28
状态 离线
『第 2 楼』:  

不错,学习一下。


2007-11-25 16:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 3 楼』:  

winme和win9x一样的; 2000和xp一样的。 故障恢复控制台下的命令,fixmbr和fixboot可以用来重写mbr和pbr。 另外,vista自带了命令行工具bootsect.exe可以重写pbr。


2007-11-25 18:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 4 楼』:  

嗯!“福建ABC"说的有道理,但问题是如果要用 fixmbr 和 fixboot 命令得象重装一样耐心的等待很长的一段时间,复制完许多临时文件才能进入 Win2000,XP 的“故障恢复控制台”。命令的执行倒用不了几秒钟的时间,可前期的准备工作实在是“劳师动众”,而且过后还会产生许多不必要的临时文件,这个方法有点得不偿失,实在是不得已的情况下才这么做。所以我才写了“全新安装或重装的时候”。让我们再想想有没有更好的方法。




DOS倒下了,但永远不死 DOS NEVER DIES ! 投票调查: www.cn-dos.net/forum/v ... 本人尚未解决的疑难问题: www.cn-dos.net/forum/v ... www.cn-dos.net/forum/v ... www.cn-dos.net/forum/v ...
2007-11-25 22:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 5 楼』:  

Originally posted by DOSforever at 2007-11-25 10:08 PM: 嗯!“福建ABC"说的有道理,但问题是如果要用 fixmbr 和 fixboot 命令得象重装一样耐心的等待很长的一段时间,复制完许多临时文件才能进入 Win2000, ...
网上搜一下我写的“ramdisk启动故障恢复控制台"的方法,很方便的,启动也很快的。 制做完后就5个文件,放在光盘上或者u盘上都行(大概6-7MB)。


2007-11-26 11:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
loveheartrain
初级用户

DOS之迷


积分 174
发帖 81
注册 2007-11-7
状态 离线
『第 6 楼』:  

XP下用dsptw.exe @echo off color 0A :mmbr title MMBR 重建MBR! set hd= cls echo 请选择要重建的硬盘编号。 echo 0 1 2 3 4 5 echo 输入数字后回车执行! set /p hd="">nul if not %hd%'==0' if not %hd%'==1' if not %hd%'==2' if not %hd%'==3' if not %hd%'==4' if not %hd%'==5' goto mmbr if %hd%'==' goto mmbr :mmbr1 set h= ECHO 你选择的硬盘编号是%hd%!以下是该硬盘的分区情况! dsptw %hd% /l /y ECHO MMBR 开始重建MBR! echo 请选择所要的操作。 echo 恢复输入Y 其它键退出 echo 输入后回车执行! set /p h="">nul if not %h%'==y' if not %h%'==Y' goto exit if %h%'==' goto exit ECHO 重建MBR前备份原来的MBR到文件mbry.bin! dsptw %hd% 0 1 /s mbry%hd%.bin /y ECHO 备份完成! ECHO @ ECHO 正在写入00h ... dsptw %hd% 0 0 /m /hex:33C08ED0BC007CFB5007501FFC50BE00 /Y if errorlevel 1 goto err ECHO 写入00h完成! ECHO @ ECHO 正在写入10h ... dsptw %hd% 0 16 /m /hex:7CBF0006B90002F3A4BF1E0657CB33DB /Y ECHO 写入10h完成! ECHO @ ECHO 正在写入20h ... dsptw %hd% 0 32 /m /hex:33D2BEBE07B104F6048074038BD64383 /Y ECHO 写入20h完成! ECHO @ ECHO 正在写入30h ... dsptw %hd% 0 48 /m /hex:C610E2F383FB017409BEC400B91700EB /Y ECHO 写入30h完成! ECHO @ ECHO 正在写入40h ... dsptw %hd% 0 64 /m /hex:719052B441B280BBAA55CD135A81FB55 /Y ECHO 写入40h完成! ECHO @ ECHO 正在写入50h ... dsptw %hd% 0 80 /m /hex:AA7533F6C101742EB80042BEAD07B110 /Y ECHO 写入50h完成! ECHO @ ECHO 正在写入60h ... dsptw %hd% 0 96 /m /hex:C6040046E2FABEAD078BFAC60410C644 /Y ECHO 写入60h完成! ECHO @ ECHO 写入70h ... dsptw %hd% 0 112 /m /hex:0201C74404007C8B5D08895C088B5D0A /Y ECHO 写入70h完成! ECHO @ ECHO 正在写入80h ... dsptw %hd% 0 128 /m /hex:895C0AEB0F90B80102BB007C8BF28B4C /Y ECHO 写入80h完成! ECHO @ ECHO 正在写入90h ... dsptw %hd% 0 144 /m /hex:028A7401B280CD13BEFE7D813C55AA74 /Y ECHO 写入90h完成! ECHO @ ECHO 正在写入a0h ... dsptw %hd% 0 160 /m /hex:09BEDB00B91800EB099033C050B8007C /Y ECHO 写入a0h完成! ECHO @ ECHO 正在写入b0h ... dsptw %hd% 0 176 /m /hex:50CB81C60006ACBB0700B40ECD10E2F6 /Y ECHO 写入b0h完成! ECHO @ ECHO 正在写入c0h ... dsptw %hd% 0 192 /m /hex:B10FE2FC496E76616C69642070617274 /Y ECHO 写入c0h完成! ECHO @ ECHO 正在写入d0h ... dsptw %hd% 0 208 /m /hex:6974696F6E207461626C654D69737369 /Y ECHO 写入d0h完成! ECHO @ ECHO 正在写入e0h ... dsptw %hd% 0 224 /m /hex:6E67206F7065726174696E6720737973 /Y ECHO 写入e0h完成! ECHO @ ECHO 正在写入f0h ... dsptw %hd% 0 240 /m /hex:74656D004D617374657220426F6F7420 /Y ECHO 写入f0h完成! ECHO @ ECHO 正在写入100h ... dsptw %hd% 0 256 /m /hex:5265636F72642057726F746520202120 /Y ECHO 写入f0h完成! ECHO @ ECHO 正在写入110h dsptw %hd% 0 272 /m /hex:627920617879204C6F76652048656172 /Y ECHO 写入110h完成! ECHO @ ECHO 正在写入120h ... dsptw %hd% 0 288 /m /hex:74205261696E20766572323030373132 /Y ECHO 写入120h完成! ECHO @ ECHO 写入130h ... dsptw %hd% 0 304 /m /hex:32372051513A37313231363731360000 /Y ECHO 写入130h完成! ECHO @ ECHO 正在写入140h ... dsptw %hd% 0 320 /m /hex:00000000000000000000000000000000 /Y ECHO 写入140h完成! ECHO @ ECHO 正在写入150h ... dsptw %hd% 0 336 /m /hex:00000000000000000000000000000000 /Y ECHO 写入150h完成! ECHO @ ECHO 写入160h ... dsptw %hd% 0 352 /m /hex:00000000000000000000000000000000 /Y ECHO 写入160h完成! ECHO @ ECHO 正在写入170h ... dsptw %hd% 0 368 /m /hex:00000000000000000000000000000000 /Y ECHO 写入170h完成! ECHO @ ECHO 正在写入180h ... dsptw %hd% 0 384 /m /hex:00000000000000000000000000000000 /Y ECHO 写入180h完成! ECHO @ ECHO 正在写入190h ... dsptw %hd% 0 400 /m /hex:00000000000000000000000000000000 /Y ECHO 写入190h完成! ECHO @ ECHO 正在写入1a0h ... dsptw %hd% 0 416 /m /hex:00000000000000000000000000000000 /Y ECHO 写入1a0h完成! ECHO @ ECHO 正在写入1b0h ... dsptw %hd% 0 432 /m /hex:00000000000000000000000000008001 /Y ECHO 写入1b0h完成! ECHO @ pause ECHO 正在清除2到46扇区的数据 ... dsptw %hd% 1 45 /e /y ECHO 清除2到46扇区的数据完成! ECHO @ ECHO 正在将MBR备份到第2扇区 ... dsptw %hd% 0 1 /D %hd% 1 /y ECHO 备份到第2扇区完成! ECHO @ ECHO 正在将MBR备份到第42扇区 ... dsptw %hd% 0 1 /D %hd% 41 /y ECHO 备份到第42扇区完成! ECHO @ echo 重建MBR完成! echo 以下是重建后的MBR内容 pause ECHO 正在将重建后的MBR写到文件mbrx%hd%.bin dsptw %hd% 0 1 /s mbrx%hd%.bin /y ECHO 写入完成! dsptw %hd% 0 1 /l /p /a goto exit :err echo 重建MBR失败! :exit pause XP下受系统保护不能直接写入0硬盘PBR,可以在PE下写入,一下代码适用于FAT32格式启动的NTLDR @echo off color 0A :mmbr title MNTMBR 重建NTMBR! set hd= cls echo 请选择要重建的硬盘编号。 echo 0 1 2 3 4 5 echo 输入数字后回车执行! set /p hd="">nul if not %hd%'==0' if not %hd%'==1' if not %hd%'==2' if not %hd%'==3' if not %hd%'==4' if not %hd%'==5' goto mmbr if %hd%'==' goto mmbr :mmbr1 set h= ECHO 你选择的分区编号是%hd%:1!以下是该硬盘的分区情况! dsptw %hd% /l /y ECHO MNTMBR 开始重建NTMBR! echo 请选择所要的操作。 echo 恢复输入Y 其它键退出 echo 输入后回车执行! set /p h="">nul if not %h%'==y' if not %h%'==Y' goto exit if %h%'==' goto exit ECHO 重建MBR前备份原来的MBR到文件mbry.bin! dsptw %hd%:1 0 1 /s ntmbry%hd%.bin /y ECHO 备份完成! ECHO @ ECHO 正在写入00h ... dsptw %hd%:1 0 3 /m /hex:4158594E544C4452 /Y if errorlevel 1 goto err ECHO 写入00h完成! ECHO @ ECHO 正在写入40h ... dsptw %hd%:1 0 71 /m /hex:90DBD0C4D3EA2020 /Y ECHO 写入40h完成! ECHO @ ECHO 正在写入60h ... dsptw %hd%:1 0 96 /m /hex:7B8EC18ED9BD007C884E028A5640B408 /Y ECHO 写入60h完成! ECHO @ ECHO 写入70h ... dsptw %hd%:1 0 112 /m /hex:CD137305B9FFFF8AF1660FB6C640660F /Y ECHO 写入70h完成! ECHO @ ECHO 正在写入80h ... dsptw %hd%:1 0 128 /m /hex:B6D180E23FF7E286CDC0ED0641660FB7 /Y ECHO 写入80h完成! ECHO @ ECHO 正在写入90h ... dsptw %hd%:1 0 144 /m /hex:C966F7E1668946F8837E16007538837E /Y ECHO 写入90h完成! ECHO @ ECHO 正在写入a0h ... dsptw %hd%:1 0 160 /m /hex:2A007732668B461C6683C00CBB0080B9 /Y ECHO 写入a0h完成! ECHO @ ECHO 正在写入b0h ... dsptw %hd%:1 0 176 /m /hex:0100E82B00E94803A0FA7DB47D8BF0AC /Y ECHO 写入b0h完成! ECHO @ ECHO 正在写入c0h ... dsptw %hd%:1 0 192 /m /hex:84C074173CFF7409B40EBB0700CD10EB /Y ECHO 写入c0h完成! ECHO @ ECHO 正在写入d0h ... dsptw %hd%:1 0 208 /m /hex:EEA0FB7DEBE5A0F97DEBE098CD16CD19 /Y ECHO 写入d0h完成! ECHO @ ECHO 正在写入e0h ... dsptw %hd%:1 0 224 /m /hex:6660663B46F80F824A00666A00665006 /Y ECHO 写入e0h完成! ECHO @ ECHO 正在写入f0h ... dsptw %hd%:1 0 240 /m /hex:53666810000100807E02000F852000B4 /Y ECHO 写入f0h完成! ECHO @ ECHO 正在写入100h ... dsptw %hd%:1 0 256 /m /hex:41BBAA558A5640CD130F821C0081FB55 /Y ECHO 写入100h完成! ECHO @ ECHO 正在写入110h dsptw %hd%:1 0 272 /m /hex:AA0F851400F6C1010F840D00FE4602B4 /Y ECHO 写入110h完成! ECHO @ ECHO 正在写入120h ... dsptw %hd%:1 0 288 /m /hex:428A56408BF4CD13B0F9665866586658 /Y ECHO 写入120h完成! ECHO @ ECHO 写入130h ... dsptw %hd%:1 0 304 /m /hex:6658EB2A6633D2660FB74E1866F7F1FE /Y ECHO 写入130h完成! ECHO @ ECHO 正在写入140h ... dsptw %hd%:1 0 320 /m /hex:C28ACA668BD066C1EA10F7761A86D68A /Y ECHO 写入140h完成! ECHO @ ECHO 正在写入150h ... dsptw %hd%:1 0 336 /m /hex:56408AE8C0E4060ACCB80102CD136661 /Y ECHO 写入150h完成! ECHO @ ECHO 写入160h ... dsptw %hd%:1 0 352 /m /hex:0F8254FF81C300026640490F8571FFC3 /Y ECHO 写入160h完成! ECHO @ ECHO 正在写入170h ... dsptw %hd%:1 0 368 /m /hex:4E544C44522020202020200D0A4E544C /Y ECHO 写入170h完成! ECHO @ ECHO 正在写入180h ... dsptw %hd%:1 0 384 /m /hex:4452206973206D697373696E67FF0D0A /Y ECHO 写入180h完成! ECHO @ ECHO 正在写入190h ... dsptw %hd%:1 0 400 /m /hex:4469736B206572726F72FF0D0A507265 /Y ECHO 写入190h完成! ECHO @ ECHO 正在写入1a0h ... dsptw %hd%:1 0 416 /m /hex:737320616E79206B657920746F207265 /Y ECHO 写入1a0h完成! ECHO @ ECHO 正在写入1b0h ... dsptw %hd%:1 0 432 /m /hex:73746172740D0A000000000000000000 /Y ECHO 写入1b0h完成! ECHO @ ECHO 正在写入1c0h ... dsptw %hd%:1 0 448 /m /hex:00000000000000000000000000000000 /Y ECHO 写入1c0h完成! ECHO @ ECHO 正在写入1d0h ... dsptw %hd%:1 0 464 /m /hex:00000000000000000000000000000000 /Y ECHO 写入1d0h完成! ECHO @ ECHO 正在写入1e0h ... dsptw %hd%:1 0 480 /m /hex:00000000000000000000000000000000 /Y ECHO 写入1e0h完成! ECHO @ ECHO 正在写入1f0h ... dsptw %hd%:1 0 496 /m /hex:000000000000000000 /Y ECHO 写入1f0h完成! ECHO @ echo 重建NTMBR完成! echo 以下是重建后的NTMBR内容 pause ECHO 正在将重建后的NTMBR写到文件ntmbrx%hd%.bin dsptw %hd%:1 0 1 /s ntmbrx%hd%.bin /y ECHO 写入完成! dsptw %hd%:1 0 1 /l /p /a goto exit :err echo 重建NTMBR失败! :exit pause [ Last edited by loveheartrain on 2007-11-30 at 08:52 PM ]




愛意之无尽@灵犀! QQ:71216716 E_mail:l.h.r.@163.com
2007-11-30 20:47
查看资料  发送邮件  发短消息 网志  OICQ (71216716)  编辑帖子  回复  引用回复
l123456789
新手上路





积分 5
发帖 3
注册 2006-3-7
状态 离线
『第 7 楼』:  

不错,学习一下。


2007-12-7 10:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fj666
新手上路





积分 10
发帖 5
注册 2008-1-25
状态 离线
『第 8 楼』:  

支持你啊楼主顶你.呵.


2008-1-25 20:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sh19871122
新手上路





积分 18
发帖 8
注册 2008-4-4
状态 离线
『第 9 楼』:  顶啊

支持楼主


2008-4-4 17:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
oasisspirit
新手上路





积分 15
发帖 6
注册 2008-4-11
状态 离线
『第 10 楼』:  

有很多软件可以 重写 MBR, 如, disk genius,易我分区表医生, WinPM 等 重写 DBR的 倒是没见到


2008-4-11 15:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: