无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 66369
打印 上一主题 下一主题

NTFS和FAT32 互转 / 北斗.H3.Pauly.netwinxp.haiou327.dvd008 ..win7启动技术探讨中..

[复制链接]
181#
发表于 2009-12-13 22:14:24 | 只看该作者
原帖由 dvd008 于 2009-12-13 16:14 发表



这个命令是重新建立 bootmgr 和 bcd,可以在硬盘没有的情况下生成这两个文件,

如果先删除bcd,应该就正常了,你可以试一试,删除bcd,再执行它。

另外,由于有了 bootsect, xp下,win7下分区格式 ...


谢谢dvd008大大,有时间我再测试一下

原帖由 hhh333 于 2009-12-13 19:29 发表
在FAT32分区中,我已经进行了测试,NT60的PBR不能按bootmgr-->ntldr顺序进行查找。
刚才我将这个分区转变成了NTFS分区,证明确实可以按bootmgr-->ntldr顺序查找。

我再测试MBR改成NT52形式时看能不能引导Wi ...


h3大大辛苦,如此测试很折腾人的

等差不多的时候,建议h3大大能做个总结,把帖子里的内容综合一下,方便后来人

[ 本帖最后由 北斗 于 2009-12-13 22:17 编辑 ]
回复

使用道具 举报

182#
发表于 2009-12-13 22:23:58 | 只看该作者
对于XP系统用水大的方法是可行的,而W7如果重新分区再提取文件到分区要修复BCD文件才能正常引导。
如果重新分区或非本磁盘分区格式化,再提取W7的GHO文件到分区,引导失败,须要修改bcd文件,当磁盘分区结构发生变化,执行了bcdboot c:\windows /s c: /l zh-CN和分区未改变格式化提取文件到分区成功引导的BCD文件作对比,仅resumeobject标识发生变化,见图(来自北斗提供的修复前和修复后的BCD)


[ 本帖最后由 haiou327 于 2009-12-14 12:30 编辑 ]
回复

使用道具 举报

183#
发表于 2009-12-13 22:31:17 | 只看该作者
原帖由 haiou327 于 2009-12-13 22:23 发表
对于XP系统用水大的方法是可行的,而W7如果重新分区再提取文件到分区要修复BCD文件才能正常引导。
北斗测试没有重新分区,只是对源磁盘源系统分区用W7PE进行格式化(即磁盘逻辑结构对GHO文件来说没有发生改变) ...


我每次用ghostexp提取gho中文件到目标盘C之前,都用MHDD清零硬盘的前100MB

修复前的BCD文件,是提取完成后,重启,不能引导,再进PE保存下来的BCD

修复后的BCD文件,是接上面步骤,在PE中执行我的那个Fix.CMD批处理后,重启,成功进入win7,再重启,进PE,保存下来的BCD

附件中的BCD就是这个过程得到的

Fix.CMD批处理的内容:

bcdedit /set {default} osdevice boot
bcdedit /set {default} device boot
bcdedit /set {default} detecthal 1

[ 本帖最后由 北斗 于 2009-12-13 22:32 编辑 ]
回复

使用道具 举报

184#
发表于 2009-12-13 22:35:32 | 只看该作者

回复 #187 北斗 的帖子

修复前的BCD是从100小启动分区提取出来的?
那么说来你的W7启动文件是在W7系统分区前的100M小启动分区

[ 本帖最后由 haiou327 于 2009-12-13 22:37 编辑 ]
回复

使用道具 举报

185#
发表于 2009-12-13 22:39:33 | 只看该作者
XP系统是可以的,去年就用过好几次都可以成功启动!~!
回复

使用道具 举报

186#
发表于 2009-12-13 22:39:56 | 只看该作者
原帖由 haiou327 于 2009-12-13 22:35 发表
修复前的BCD是从100小启动分区提取出来的?
那么说来你的W7启动文件是在W7系统分区前的100M小启动分区


应该不是,在Win7中用自带的磁盘管理器分区、格式化,重启,进PE,用diskgenius看分区就C和D(我就分了两个区),没发现C之前有隐含的分区。

况且,dos下用mhdd的erase清零前100MB,不会留下以前的小启动分区的痕迹,连MBR和数据区都统统清零
回复

使用道具 举报

187#
发表于 2009-12-13 22:42:28 | 只看该作者
现在请北斗兄确定一下你的修复前的BCD是从哪个分区提取出来的!
回复

使用道具 举报

188#
发表于 2009-12-13 22:56:57 | 只看该作者
原帖由 haiou327 于 2009-12-13 22:42 发表
现在请北斗兄确定一下你的修复前的BCD是从哪个分区提取出来的!


确定不是从那个小100MB分区提取出来的

1、光盘安装Win7时,硬盘已是分区、格式化完成(C盘原来装的是XP系统,后格式化为NTFS格式再安装了Win7),不存在空硬盘情况下用Win7安装光盘进行分区、格式化、安装系统的过程(这样的过程才会产生那个小100MB的分区)。

2、按上面的方法安装完Win7,直接到PE里用GHOST做了镜像,保存到D盘

3、挂上被清零的目标盘,用Win7自带的磁盘管理器分区、格式化、激活主分区

4、PE下操作ghostexp,提取gho中文件到目标盘的C盘,再启动测试能否引导Win7

就这样的过程
回复

使用道具 举报

189#
发表于 2009-12-14 14:28:38 | 只看该作者
1.C盘位于第一分区
2.有引导
3.100%没有问题..........
--------------------------------------------------------------------------------------------------------------------------
回复

使用道具 举报

190#
发表于 2009-12-14 14:37:31 | 只看该作者
来看看,不太了解的说
回复

使用道具 举报

191#
发表于 2009-12-14 17:06:53 | 只看该作者
关于windows的分区格式化、Win7的启动等本帖由各位测试的结果小结如下:

1、MS的windows系统中磁盘对系统的引导分两部分:
①MBR(Master Boot Record 或 Main Boot Record,即主引导记录):它位于某一块硬盘的第一扇区。
②PBR( Partition Boot Record,分区引导记录):位于某主分区的起始部分,用于启动该分区上的某程序。
计算机启动时,先BIOS自检,通过后就会查找第一块硬盘的MBR,并将机器的控制权交给MBR,MBR会搜寻第一个活动的主分区,如果找到则将控制权交给这个分区,即交给这个分区的PBR,PBR再查找系统的启动文件进行启动。

从以上过程中可以发现MBR与PBR都是一段小程序代码(当然可能也有数据),只是约定放在磁盘中固定的地方,但用户在文件系统中是不可见的。既然是程序,当然就可以修改、重做,从而让它完成不同的工作,以前有的病毒也瞄上它,因为它启动时会短暂地获得机器的控制权。由此可见,各种不同的系统或工具产生的MBR与PBR可能是不同的,此处我们只讨论MS的系统。

2、MS的系统在发展过程中MBR与PBR也会有变化,一般而言,vista以前的系统(2000、xp、2003)的MBR和PBR统称为NT52类型(或NT5x),vista及其以后的系统统称为NT60类型(或NT6x)。

3、无论是NT52还是NT60的MBR,它们的作用主要是将启动的控制权转交给活动分区的PBR;虽然看MS的说明这两种MBR一个是与vista以前的系统兼容,一个是与vista及其以后的系统兼容,没有仔细比较其代码,表面上看似乎无区别。NT52的MBR照样可以引导NT60的PBR。

4、NT52和NT60的PBR是明显不同的,52的将查找NTLDR文件并把控制权交给这个文件;而60的将查找BOOTMGR文件并把控制权交给这个文件。

5、NT52的PBR装载的NTLDR将负责载入启动项菜单文件BOOT.INI;而NT60的PBR装载的BOOTMGR将负责载入启动项菜单文件BCD和BOOT.INI,也即bootmgr除了拥有读取WIN7启动记录BCD的能力也具有NTLDR读取BOOT.INI的能力(bootmgr读boot.ini并不要ntldr支持,也即这是它内置的功能),所以我们在Win7的系统启动时看到的菜单项可能是这两个文件的合并。

6、BOOT.INI文件是文本文件,记事本就可编辑,这个文件要求在根目录下;BCD文件是二进制文件,编制要专用的工具,它位于BOOT目录下。如果要给win7主导的系统增加启动选项,可以在BCD中加,也可以象以前一样在boot.ini中加,显然在Boot.ini中加更直观更容易。现在很多的PE安装程序都采用后一种方式,也与NT52类型的系统兼容。

7、在MS的系统中,利用系统自带的磁盘管理程序,在NT52的系统分区格式出的MBR和PBR就是NT52的;NT60的系统分区格式出的就是NT60的,这种方式做出的分区是直接可引导的。(注意:其他第三方分区格式化工具,分区格式后目标硬盘的MBR和PBR不一定带有MS的信息,可能导致不能直接引导NT52或NT60系统,比如Win版DiskGenius 3.1.0421 Beta3分区后就没有MS信息。)
①基于这一点,如果有系统的GHO包,可以不必采取克隆的方式来恢复系统,可以用GHOSTEXP.EXE将文件直接释放到这个分区,这种方式不依赖于GHO包的文件系统格式,如果原来的GHO是NTFS格式的,也可以释放到FAT32的分区上,从而间接完成GHO格式的转换。(当然,win7系统是要求必须使用NTFS格式的。)
②用上述方法恢复的nt52类型的系统,可以直接启动而不用修复启动;Win7系统等,由于磁盘签名等的原因,要进行适当的BCD文件修复(实际上也可以算是直接启动,因为MBR与PBR并不需要修复)。按北斗的测试,可以在恢复后进入PE,在win7系统目录system32中执行如下命令:
bcdedit /set {default} osdevice boot
bcdedit /set {default} device boot
bcdedit /set {default} detecthal 1
或者执行:
bcdboot c:\windows /s c: /l zh-CN
③基于以上几点,备份系统就不一定要用GHOST,压缩软件、WIM工具等均可。

特别提示:按fujianabc 大侠说的,这种释放文件的方式会出现两大问题:
1、ntfs软硬连接的问题
2、权限的问题
具体请看#218

8、在NTFS分区上,NT60的PBR先会装载bootmgr文件,如果失败会继续装载ntldr,再失败就出错提示了。在其他的分区格式上只要bootmgr未找到就出错了,即没有这种能力,或者是说MS没有支持这种能力。这就是说,NT60在NTFS格式的盘中是向下兼容的,即NT60格式出的盘照样可以用来启动NT52的系统,其他分区格式不行。

以上就是各位大侠研究的成果的总结,水平有限,有错就改。
关于启动过程MBR与PBR的关系画了一张图


参考:
1、关于MBR与PBR的查看可以用Pauly大侠的bootice,有关知识可参看http://bbs.wuyou.net/forum.php?mod=viewthread&tid=57675&extra=page%3D1

2、jianliulin大侠做了一个BCD的编辑工具,大家可以参看http://bbs.wuyou.net/forum.php?mod=viewthread&tid=146397&extra=page%3D3

[ 本帖最后由 hhh333 于 2009-12-16 19:57 编辑 ]
回复

使用道具 举报

192#
 楼主| 发表于 2009-12-14 18:20:39 | 只看该作者

回复 #196 hhh333 的帖子

辛苦了.写的很细.等其他几位看后.转贴一楼.做为教学贴.造福更多的人.
回复

使用道具 举报

193#
发表于 2009-12-14 19:17:40 | 只看该作者
其实还可以把要做GHO的内容打包成CAB、RAR、7Z等格式(同样可以排除虚拟内存和睡眠文件),要用的时候再解压,当然如果第一分区不是启动分区(比如硬盘有坏块),还需要修改BOOT.INI和或BCD。其实GHOST有时会出现部分BPB有错,比如1键GHOST 4个分区就有BUG,个人不太推荐不同容量GHOST。

下面附上个人初步反汇编的WIN7 PBR(没校正,错误肯定不少),方便有心之人了解。
***BPB根据不同的硬盘,内容会不一样***

1、FAT12、16 WIN7 PBR
  1. 0000:7C00 EB3C       jmp 7C3E
  2. 0000:7C02 90         nop
  3. ;==================
  4.                      label BPB
  5. 0000:7C03 OemStr     db 'MSWIN4.1';OEM字串
  6. 0000:7C0B BytePerSec dw 0200;每扇区字节数
  7. 0000:7C0D SecPerClu  db 08;每簇扇区数
  8. 0000:7C0E ResvdSec   dw 0001;保留扇区数
  9. 0000:7C10 NumOfFat   db 02;FAT表数
  10. 0000:7C11 RootEnt    dw 0200;根目录项数
  11. 0000:7C13 TolSec     dw 5103;总扇区数 如果为0则看总扇区数扩展
  12. 0000:7C15 Media      db F8;介质字节F8为硬盘 软盘为F0
  13. 0000:7C16 SecPerFat  dw 0008;每FAT表扇区数
  14. 0000:7C18 SecPerCly  dw 0011;每磁道/柱面扇区数
  15. 0000:7C1A NumOfHead  dw 0004;磁头数
  16. 0000:7C1C HidenSec   dd 00000001;分区前隐藏扇区数
  17. 0000:7C20 TolSecExt  dd 00000000;总扇区数扩展 总扇区数不为0时该双字为0
  18. 0000:7C24 DrvNum     db 80;驱动器号 硬盘80软盘00
  19. 0000:7C25 Resvd      db 00;保留 未使用
  20. 0000:7C26 ExtSig     db 29;扩展引导标志
  21. 0000:7C27 Serial     dd 00000000;分区盘系列号
  22. 0000:7C2B Vol        db 'NO NAME    ';卷标
  23. 0000:7C36 FileSys    db 'FAT12   ';文件系统类型 可以是FAT12、FAT、FAT16
  24. ;==以上是BPB====
  25. 0000:7C3E 33C9       xor cx,cx
  26. 0000:7C40 8ED1       mov ss,cx;ss=0
  27. 0000:7C42 BCF07B     mov sp,7BF0
  28. 0000:7C45 8ED9       mov ds,cx;ds=0
  29. 0000:7C47 B80020     mov ax,2000
  30. 0000:7C4A 8EC0       mov es,ax;es=2000
  31. 0000:7C4C FC         cld
  32. 0000:7C4D BD007C     mov bp,7C00
  33. 0000:7C50 384E24     cmp [bp+24],cl;DrvNum
  34. 0000:7C53 7D24       jge 7C79
  35. 0000:7C55 8BC1       mov ax,cx
  36. 0000:7C57 99         cwd
  37. 0000:7C58 E83C01     call 7D97
  38. 0000:7C5B 721C       jb 7C79
  39. 0000:7C5D 83EB3A     sub bx,003a
  40. 0000:7C60 66A11C7C   mov eax,dword ptr [7C1C];HidenSec
  41. 0000:7C64 26663B07   cmp eax,es:[bx]
  42. 0000:7C68 268A57FC   mov dl,es:[bx-04]
  43. 0000:7C6C 7506       jne 7C74
  44. 0000:7C6E 80CA02     or dl,02
  45. 0000:7C71 885602     mov [bp+02],dl
  46. 0000:7C74 80C310     add bl,10
  47. 0000:7C77 73EB       jnb 7C64
  48. 0000:7C79 33C9       xor cx,cx
  49. 0000:7C7B 8A4610     mov al,[bp+10];NumOfFat
  50. 0000:7C7E 98         cbw
  51. 0000:7C7F F76616     mul word ptr [bp+16];SecPerFat
  52. 0000:7C82 03461C     add ax,[bp+1C];HidenSec
  53. 0000:7C85 13561E     adc dx,[bp+1E]
  54. 0000:7C88 03460E     add ax,[bp+0E];ResvdSec
  55. 0000:7C8B 13D1       adc dx,cx
  56. 0000:7C8D 8B7611     mov si,[bp+11];RootEnt
  57. 0000:7C90 60         pusha
  58. 0000:7C91 8946FC     mov [bp-04],ax
  59. 0000:7C94 8956FE     mov [bp-02],dx
  60. 0000:7C97 B82000     mov ax,0020
  61. 0000:7C9A F7E6       mul si
  62. 0000:7C9C 8B5E0B     mov bx,[bp+0B];BytePerSec
  63. 0000:7C9F 03C3       add ax,bx
  64. 0000:7CA1 48         dec ax
  65. 0000:7CA2 F7F3       div bx
  66. 0000:7CA4 0146FC     add [bp-04],ax
  67. 0000:7CA7 114EFE     adc [bp-02],cx
  68. 0000:7CAA 61         popa
  69. 0000:7CAB BF0000     mov di,0000
  70. 0000:7CAE E8E600     call 7D97
  71. 0000:7CB1 7239       jb 7CEC
  72. 0000:7CB3 26382D     cmp es:[di],ch
  73. 0000:7CB6 7417       je 7CCF
  74. 0000:7CB8 60         pusha
  75. 0000:7CB9 B10B       mov cl,0B
  76. 0000:7CBB BEA17D     mov si,7DA1
  77. 0000:7CBE F3         repz
  78. 0000:7CBF A6         cmpsb
  79. 0000:7CC0 61         popa
  80. 0000:7CC1 7432       je 7CF5
  81. 0000:7CC3 4E         dec si
  82. 0000:7CC4 7409       je 7CCF
  83. 0000:7CC6 83C720     add di,0020
  84. 0000:7CC9 3BFB       cmp di,bx
  85. 0000:7CCB 72E6       jb 7CB3
  86. 0000:7CCD EBDC       jmp 7CAB
  87. 0000:7CCF A0FB7D     mov al,[7DFB]
  88. 0000:7CD2 B47D       mov ah,7D
  89. 0000:7CD4 8BF0       mov si,ax
  90. 0000:7CD6 AC         lodsb
  91. 0000:7CD7 98         cbw
  92. 0000:7CD8 40         inc ax
  93. 0000:7CD9 740C       je 7CE7
  94. 0000:7CDB 48         dec ax
  95. 0000:7CDC 7413       je 7CF1
  96. 0000:7CDE B40E       mov ah,0E
  97. 0000:7CE0 BB0700     mov bx,0007
  98. 0000:7CE3 CD10       int 10
  99. 0000:7CE5 EBEF       jmp 7CD6
  100. 0000:7CE7 A0FD7D     mov al,[7DFD]
  101. 0000:7CEA EBE6       jmp 7CD2
  102. 0000:7CEC A0FC7D     mov al,[7DFC]
  103. 0000:7CEF EBE1       jmp 7CD2
  104. 0000:7CF1 CD16       int 16
  105. 0000:7CF3 CD19       int 19
  106. 0000:7CF5 268B551A   mov dx,es:[di+1A]
  107. 0000:7CF9 52         push dx
  108. 0000:7CFA B001       mov al,01
  109. 0000:7CFC BB0000     mov bx,0000
  110. 0000:7CFF E83B00     call 7D3D
  111. 0000:7D02 72E8       jb 7CEC
  112. 0000:7D04 5B         pop bx
  113. 0000:7D05 8A5624     mov dl,[bp+24];DrvNum
  114. 0000:7D08 BE0B7C     mov si,7C0B
  115. 0000:7D0B 8BFC       mov di,sp
  116. 0000:7D0D C746F03D7D mov word ptr [bp-10],7D3D
  117. 0000:7D12 C746F4297D mov word ptr [bp-0C],7D29
  118. 0000:7D17 8CD9       mov cx,ds
  119. 0000:7D19 894EF2     mov [bp-0E],cx
  120. 0000:7D1C 894EF6     mov [bp-0A],cx
  121. 0000:7D1F C606967DCB mov byte ptr [7D96],CB
  122. 0000:7D24 EA03000020 jmp 2000:0003
  123. 0000:7D29 0FB6C8     movzx cx,al
  124. 0000:7D2C 668B46F8   mov eax,[bp-08]
  125. 0000:7D30 6603461C   add eax,[bp+1C];HidenSec
  126. 0000:7D34 668BD0     mov edx,eax
  127. 0000:7D37 66C1EA10   shr edx,10
  128. 0000:7D3B EB5E       jmp 7D9B
  129. 0000:7D3D 0FB6C8     movzx cx,al
  130. 0000:7D40 4A         dec dx
  131. 0000:7D41 4A         dec dx
  132. 0000:7D42 8A460D     mov al,[bp+0D];SecPerClu
  133. 0000:7D45 32E4       xor ah,ah
  134. 0000:7D47 F7E2       mul dx
  135. 0000:7D49 0346FC     add ax,[bp-04]
  136. 0000:7D4C 1356FE     adc dx,[bp-02]
  137. 0000:7D4F EB4A       jmp 7D9B
  138. 0000:7D51 52         push dx
  139. 0000:7D52 50         push ax
  140. 0000:7D53 06         push es
  141. 0000:7D54 53         push bx
  142. 0000:7D55 6A01       push 0001
  143. 0000:7D57 6A10       push 0010
  144. 0000:7D59 91         xchg ax,cx
  145. 0000:7D5A 8B4618     mov ax,[bp+18];SecPerCly
  146. 0000:7D5D 96         xchg ax,si
  147. 0000:7D5E 92         xchg ax,dx
  148. 0000:7D5F 33D2       xor dx,dx
  149. 0000:7D61 F7F6       div si
  150. 0000:7D63 91         xchg ax,cx
  151. 0000:7D64 F7F6       div si
  152. 0000:7D66 42         inc dx
  153. 0000:7D67 87CA       xchg dx,cx
  154. 0000:7D69 F7761A     div word ptr [bp+1A];NumOfHead
  155. 0000:7D6C 8AF2       mov dh,dl
  156. 0000:7D6E 8AE8       mov ch,al
  157. 0000:7D70 C0CC02     ror ah,02
  158. 0000:7D73 0ACC       or cl,ah
  159. 0000:7D75 B80102     mov ax,0201
  160. 0000:7D78 807E020E   cmp byte ptr [bp+02],0E
  161. 0000:7D7C 7504       jne 7D82
  162. 0000:7D7E B442       mov ah,42
  163. 0000:7D80 8BF4       mov si,sp
  164. 0000:7D82 8A5624     mov dl,[bp+24];DrvNum
  165. 0000:7D85 CD13       int 13
  166. 0000:7D87 61         popa
  167. 0000:7D88 61         popa
  168. 0000:7D89 720B       jb 7D96
  169. 0000:7D8B 40         inc ax
  170. 0000:7D8C 7501       jne 7D8F
  171. 0000:7D8E 42         inc dx
  172. 0000:7D8F 035E0B     add bx,[bp+0B];BytePerSec
  173. 0000:7D92 49         dec cx
  174. 0000:7D93 7506       jne 7D9B
  175. 0000:7D95 F8         clc
  176. 0000:7D96 C3         ret
  177. 0000:7D97 41         inc cx
  178. 0000:7D98 BB0000     mov bx,0000
  179. 0000:7D9B 60         pusha
  180. 0000:7D9C 666A00     push 00000000
  181. 0000:7D9F EBB0       jmp 7D51
  182. 0000:7DA1            db 'BOOTMGR    ',0D,0A
  183. 0000:7DAE            db 'BOOTMGR is missing'
  184. 0000:7DC0            db FF
  185. 0000:7DC1            db 0d,0a,'Disk error'
  186. 0000:7DCD            db FF
  187. 0000:7DCE            db 0D,0A,'Press any key to restart',0D,0A,00
  188. 0000:7DEB            db 00,00,00,00,00
  189. 0000:7DF0            db 00,00,00,00,00,00,00,00,00,00,00
  190. 0000:7DFB            db AC
  191. 0000:7DFC            db C1
  192. 0000:7DFD            db CE
  193. 0000:7DFE            dw AA55;引导有效标志
复制代码

2、FAT32 WIN7 PBR(修正一下,FAT32 PBR目前共占3个扇区,前面提供的反汇编代码不完整)
  1. 00000:7C00 EB58                   jmp 7C5A
  2. 0000:7C02 90                     nop
  3. ==========================
  4.                                  label BPB
  5. 0000:7C03 OemStr                 db 'MSWIN4.1';OEM字串
  6. 0000:7C0B BytePerSec             dw 0200;每扇区字节数
  7. 0000:7C0D SecPerClu              db 02;每簇扇区数
  8. 0000:7C0E ResvdSec               dw 0008;保留扇区数
  9. 0000:7C10 NumOfFat               db 01;FAT表数
  10. 0000:7C11 RootEnt                dw 0400;根目录项数
  11. 0000:7C13 TolSec                 dw 0000;总扇区数(<16M)
  12. 0000:7C15 Media                  db F8;介质字节
  13. 0000:7C16 SecPerFat              dw 0000;每FAT表扇区数(<16M)
  14. 0000:7C18 SecPerCly              dw 0011;每磁道/柱面扇区数
  15. 0000:7C1A NumOfHead              dw 0004;磁头数
  16. 0000:7C1C HidenSec               dd 00000001;分区前隐藏扇区数
  17. 0000:7C20 TolSecExt              dd 00200000;总扇区数扩展(>16M)
  18.                                  label ExtBPB
  19. 0000:7C24 SecPerFat2             dd 00001FE0(>16M)
  20. 0000:7C28 ExtFlags               dw 0000;bit0~3:起始FAT数 bit7:0操作映射到所有FAT 1操作仅对当前FAT 其他位:保留
  21. 0000:7C2A Version                dw 0000;文件系统版本,如非0则不支持以前版本的windows
  22. 0000:7C2C RootDir1Clu            dd 00000000;根目录首簇号
  23. 0000:7C30 FSinfoSec              dw 0001
  24. 0000:7C32 BakBootSec             dw 0006;备份的引导扇区(不更新)
  25. 0000:7C34 Resvd                  db 0x0C dup(00);保留
  26. 0000:7C40 DrvNum                 db 80
  27. 0000:7C41 Unused                 db 00
  28. 0000:7C42 ExtSig                 db 29;扩展引导标志
  29. 0000:7C43 Serial                 dd 00000000;分区盘系列号
  30. 0000:7C47 Vol                    db 'NO NAME    ';卷标
  31. 0000:7C52 FileSys                db 'FAT32   ';文件系统类型
  32. ======以上为BPB===========
  33. 0000:7C5A 33C9                   xor cx,cx
  34. 0000:7C5C 8ED1                   mov ss,cx
  35. 0000:7C5E BCF47B                 mov sp,7BF4
  36. 0000:7C61 8EC1                   mov es,cx
  37. 0000:7C63 8ED9                   mov ds,cx
  38. 0000:7C65 BD007C                 mov bp,7C00
  39. 0000:7C68 884E02                 mov [bp+02],cl
  40. 0000:7C6B 8A5640                 mov dl,[bp+40]
  41. 0000:7C6E B441                   mov ah,41
  42. 0000:7C70 BBAA55                 mov bx,55AA
  43. 0000:7C73 CD13                   int 13
  44. 0000:7C75 7210                   jb 7C87
  45. 0000:7C77 81FB55AA               cmp bx,AA55
  46. 0000:7C7B 750A                   jne 7C87
  47. 0000:7C7D F6C101                 test cl,01
  48. 0000:7C80 7405                   je 7C87
  49. 0000:7C82 FE4602                 inc byte ptr [bp+02]
  50. 0000:7C85 EB2D                   jmp 7CB4
  51. 0000:7C87 8A5640                 mov dl,[bp+40]
  52. 0000:7C8A B408                   mov ah,08
  53. 0000:7C8C CD13                   int 13
  54. 0000:7C8E 7305                   jnb 7C95
  55. 0000:7C90 B9FFFF                 mov cx,FFFF
  56. 0000:7C93 8AF1                   mov dh,cl
  57. 0000:7C95 660FB6C6               movzx eax,dh
  58. 0000:7C99 40                     inc ax
  59. 0000:7C9A 660FB6D1               movzx edx,cl
  60. 0000:7C9E 80E23F                 and dl,3F
  61. 0000:7CA1 F7E2                   mul dx
  62. 0000:7CA3 86CD                   xchg ch,cl
  63. 0000:7CA5 C0ED06                 shr ch,06
  64. 0000:7CA8 41                     inc cx
  65. 0000:7CA9 660FB7C9               movzx ecx,word ptr cx
  66. 0000:7CAD 66F7E1                 mul ecx
  67. 0000:7CB0 668946F8               mov [bp-08],eax
  68. 0000:7CB4 837E1600               cmp word ptr [bp+16],0000
  69. 0000:7CB8 7538                   jne 7CF2
  70. 0000:7CBA 837E2A00               cmp word ptr [bp+2A],0000
  71. 0000:7CBE 7732                   ja 7CF2
  72. 0000:7CC0 668B461C               mov eax,[bp+1C]
  73. 0000:7CC4 6683C00C               add eax,0000000C
  74. 0000:7CC8 BB0080                 mov bx,8000
  75. 0000:7CCB B90100                 mov cx,0001
  76. 0000:7CCE E82B00                 call 7CFC
  77. 0000:7CD1 E92C03                 jmp 8000
  78. 0000:7CD4 A0FA7D                 mov al,[7DFA]
  79. 0000:7CD7 B47D                   mov ah,7D
  80. 0000:7CD9 8BF0                   mov si,ax
  81. 0000:7CDB AC                     lodsb
  82. 0000:7CDC 84C0                   test al,al
  83. 0000:7CDE 7417                   je 7CF7
  84. 0000:7CE0 3CFF                   cmp al,FF
  85. 0000:7CE2 7409                   je 7CED
  86. 0000:7CE4 B40E                   mov ah,0E
  87. 0000:7CE6 BB0700                 mov bx,0007
  88. 0000:7CE9 CD10                   int 10
  89. 0000:7CEB EBEE                   jmp 7CDB
  90. 0000:7CED A0FB7D                 mov al,[7DFB]
  91. 0000:7CF0 EBE5                   jmp 7CD7
  92. 0000:7CF2 A0F97D                 mov al,[7DF9]
  93. 0000:7CF5 EBE0                   jmp 7CD7
  94. 0000:7CF7 98                     cbw
  95. 0000:7CF8 CD16                   int 16
  96. 0000:7CFA CD19                   int 19
  97. 0000:7CFC 6660                   pushad
  98. 0000:7CFE 807E0200               cmp byte ptr [bp+02],00
  99. 0000:7D02 0F842000               je 7D26
  100. 0000:7D06 666A00                 push 00000000
  101. 0000:7D09 6650                   push eax
  102. 0000:7D0B 06                     push es
  103. 0000:7D0C 53                     push bx
  104. 0000:7D0D 666810000100           push 00010010
  105. 0000:7D13 B442                   mov ah,42
  106. 0000:7D15 8A5640                 mov dl,[bp+40]
  107. 0000:7D18 8BF4                   mov si,sp
  108. 0000:7D1A CD13                   int 13
  109. 0000:7D1C 6658                   pop eax
  110. 0000:7D1E 6658                   pop eax
  111. 0000:7D20 6658                   pop eax
  112. 0000:7D22 6658                   pop eax
  113. 0000:7D24 EB33                   jmp 7D59
  114. 0000:7D26 663B46F8               cmp eax,[bp-08]
  115. 0000:7D2A 7203                   jb 7D2F
  116. 0000:7D2C F9                     stc
  117. 0000:7D2D EB2A                   jmp 7D59
  118. 0000:7D2F 6633D2                 xor edx,edx
  119. 0000:7D32 660FB74E18             movzx ecx,word ptr [bp+18]
  120. 0000:7D37 66F7F1                 div ecx
  121. 0000:7D3A FEC2                   inc dl
  122. 0000:7D3C 8ACA                   mov cl,dl
  123. 0000:7D3E 668BD0                 mov edx,eax
  124. 0000:7D41 66C1EA10               shr edx,10
  125. 0000:7D45 F7761A                 div word ptr [bp+1A]
  126. 0000:7D48 86D6                   xchg dh,dl
  127. 0000:7D4A 8A5640                 mov dl,[bp+40]
  128. 0000:7D4D 8AE8                   mov ch,al
  129. 0000:7D4F C0E406                 shl ah,06
  130. 0000:7D52 0ACC                   or cl,ah
  131. 0000:7D54 B80102                 mov ax,0201
  132. 0000:7D57 CD13                   int 13
  133. 0000:7D59 6661                   popad
  134. 0000:7D5B 0F8275FF               jb 7CD4
  135. 0000:7D5F 81C30002               add bx,0200
  136. 0000:7D63 6640                   inc eax
  137. 0000:7D65 49                     dec cx
  138. 0000:7D66 7594                   jne 7CFC
  139. 0000:7D68 C3                     ret
  140. 0000:7D69                        db 'BOOTMGR    '
  141. 0000:7D74                        db BYTE 0x38 DUP(00)
  142. 0000:7DAC                        db 0D,0A
  143. 0000:7DAF                        db 'BOOTMGR is missing'
  144. 0000:7DC0                        db  FF,0D,0A
  145. 0000:7DC3                        db 'Disk error'
  146. 0000:7DCD                        db FF,0D,0A
  147. 0000:7DD0                        db 'Press any key to restart'
  148. 0000:7DE8                        db 0D,0A
  149. 0000:7DEA                        db 0x0F DUP(00)
  150. 0000:7DF9                        db AC
  151. 0000:7DFA                        db C1
  152. 0000:7DFB                        db CE
  153. 0000:7DFC                        db 00,00
  154. 0000:7DFE                        dw AA55;引导有效标志
  155. 0000:7E00                        db 'RRaA'
  156. 0000:7E04                        db 0x1E0 dup(00)
  157. 0000:7FE4                        db 'rrAa'
  158. 0000:7FE8                        dd xxxx;未分配的簇数
  159. 0000:7FEC                        dd xxxx;第一个空闲簇簇号
  160. 0000:7FF0                        db 0x0E dup(00)
  161. 0000:7FFE                        dw AA55;引导有效标志
  162. 0000:8000 660FB64610             movzx eax,[bp+10]
  163. 0000:8005 668B4E24               mov ecx,[bp+24]
  164. 0000:8009 66F7E1                 mul ecx
  165. 0000:800C 6603461C               add eax,[bp+1C]
  166. 0000:8010 660FB7560E             movzx edx,word ptr [bp+0E]
  167. 0000:8015 6603C2                 add eax,edx
  168. 0000:8018 668946FC               mov [bp-04],eax
  169. 0000:801C 66C746F4FFFFFFFF       mov dword ptr [bp-0C],FFFFFFFF
  170. 0000:8024 668B462C               mov eax,[bp+2C]
  171. 0000:8028 6683F802               cmp eax,00000002
  172. 0000:802C 0F82C2FC               jb 7CF2
  173. 0000:8030 663DF8FFFF0F           cmp eax,0FFFFFF8
  174. 0000:8036 0F83B8FC               jnb 7CF2
  175. 0000:803A 6650                   push eax
  176. 0000:803C 6683E802               sub eax,00000002
  177. 0000:8040 660FB65E0D             movzx ebx,[bp+0D]
  178. 0000:8045 8BF3                   mov si,bx
  179. 0000:8047 66F7E3                 mul ebx
  180. 0000:804A 660346FC               add eax,[bp-04]
  181. 0000:804E BB0082                 mov bx,8200
  182. 0000:8051 8BFB                   mov di,bx
  183. 0000:8053 B90100                 mov cx,0001
  184. 0000:8056 E8A3FC                 call 7CFC
  185. 0000:8059 382D                   cmp [di],ch
  186. 0000:805B 741E                   je 807B
  187. 0000:805D B10B                   mov cl,0B
  188. 0000:805F 56                     push si
  189. 0000:8060 BE697D                 mov si,7D69
  190. 0000:8063 F3                     repz
  191. 0000:8064 A6                     cmpsb
  192. 0000:8065 5E                     pop si
  193. 0000:8066 741B                   je 8083
  194. 0000:8068 03F9                   add di,cx
  195. 0000:806A 83C715                 add di,0015
  196. 0000:806D 3BFB                   cmp di,bx
  197. 0000:806F 72E8                   jb 8059
  198. 0000:8071 4E                     dec si
  199. 0000:8072 75DA                   jne 804E
  200. 0000:8074 6658                   pop eax
  201. 0000:8076 E86500                 call 80DE
  202. 0000:8079 72BF                   jb 803A
  203. 0000:807B 83C404                 add sp,0004
  204. 0000:807E E971FC                 jmp 7CF2
  205. 0000:8081                        dw 2000
  206. 0000:8083 83C404                 add sp,0004
  207. 0000:8086 8B7509                 mov si,[di+09]
  208. 0000:8089 8B7D0F                 mov di,[di+0F]
  209. 0000:808C 8BC6                   mov ax,si
  210. 0000:808E 66C1E010               shl eax,10
  211. 0000:8092 8BC7                   mov ax,di
  212. 0000:8094 6683F802               cmp eax,00000002
  213. 0000:8098 0F8256FC               jb 7CF2
  214. 0000:809C 663DF8FFFF0F           cmp eax,0FFFFFF8
  215. 0000:80A2 0F834CFC               jnb 7CF2
  216. 0000:80A6 6650                   push eax
  217. 0000:80A8 6683E802               sub eax,00000002
  218. 0000:80AC 660FB64E0D             movzx ecx,[bp+0D]
  219. 0000:80B1 66F7E1                 mul ecx
  220. 0000:80B4 660346FC               add eax,[bp-04]
  221. 0000:80B8 BB0000                 mov bx,0000
  222. 0000:80BB 06                     push es
  223. 0000:80BC 8E068180               mov es,[8081]
  224. 0000:80C0 E839FC                 call 7CFC
  225. 0000:80C3 07                     pop es
  226. 0000:80C4 6658                   pop eax
  227. 0000:80C6 C1EB04                 shr bx,04
  228. 0000:80C9 011E8180               add [8081],bx
  229. 0000:80CD E80E00                 call 80DE
  230. 0000:80D0 0F830200               jnb 80D6
  231. 0000:80D4 72D0                   jb 80A6
  232. 0000:80D6 8A5640                 mov dl,[bp+40]
  233. 0000:80D9 EA00000020             jmp 2000:0000
  234. 0000:80DE 66C1E002               shl eax,02
  235. 0000:80E2 E81100                 call 80F6
  236. 0000:80E5 26668B01               mov eax,es:[bx+di]
  237. 0000:80E9 6625FFFFFF0F           and eax,0FFFFFFF
  238. 0000:80EF 663DF8FFFF0F           cmp eax,0FFFFFF8
  239. 0000:80F5 C3                     ret
  240. 0000:80F6 BF007E                 mov di,7E00
  241. 0000:80F9 660FB74E0B             movzx ecx,word ptr [bp+0B]
  242. 0000:80FE 6633D2                 xor edx,edx
  243. 0000:8101 66F7F1                 div ecx
  244. 0000:8104 663B46F4               cmp eax,[bp-0C]
  245. 0000:8108 743A                   je 8144
  246. 0000:810A 668946F4               mov [bp-0C],eax
  247. 0000:810E 6603461C               add eax,[bp+1C]
  248. 0000:8112 660FB74E0E             movzx ecx,word ptr [bp+0E]
  249. 0000:8117 6603C1                 add eax,ecx
  250. 0000:811A 660FB75E28             movzx ebx,word ptr [bp+28]
  251. 0000:811F 83E30F                 and bx,000F
  252. 0000:8122 7416                   je 813A
  253. 0000:8124 3A5E10                 cmp bl,[bp+10]
  254. 0000:8127 0F83C7FB               jnb 7CF2
  255. 0000:812B 52                     push dx
  256. 0000:812C 668BC8                 mov ecx,eax
  257. 0000:812F 668B4624               mov eax,[bp+24]
  258. 0000:8133 66F7E3                 mul ebx
  259. 0000:8136 6603C1                 add eax,ecx
  260. 0000:8139 5A                     pop dx
  261. 0000:813A 52                     push dx
  262. 0000:813B 8BDF                   mov bx,di
  263. 0000:813D B90100                 mov cx,0001
  264. 0000:8140 E8B9FB                 call 7CFC
  265. 0000:8143 5A                     pop dx
  266. 0000:8144 8BDA                   mov bx,dx
  267. 0000:8146 C3                     ret
  268. 0000:8147                        db 0x0B7 dup(00)
  269. 0000:81FE                        dw AA55;引导有效标志
复制代码

3、NTFS WIN7 PBR太长了,就偷懒了:)

****我怀疑直接将FAT、FAT32里面的"BOOTMGR    "字串改成"NTLDR      "就能直接启动NT5.X。NTFS的不用改也行(里面有UNICODE的NTLDR字串),如果要改反而更麻烦。****

[ 本帖最后由 netwinxp 于 2009-12-25 08:03 编辑 ]
回复

使用道具 举报

194#
发表于 2009-12-14 22:37:37 | 只看该作者
原帖由 hhh333 于 2009-12-14 17:06 发表
关于windows的分区格式化、Win7的启动等本帖由各位测试的结果小结如下:

1、MS的windows系统中磁盘对系统的引导分两部分:
①MBR(Master Boot Record 或 Main Boot Record,即主引导记录):它位于某一块硬 ...


有劳H3大大了,为了详细说明还附了图

7、在MS的系统中,利用系统自带的磁盘管理程序,在NT52的系统分区格式出的MBR和PBR就是NT52的;NT60的系统分区格式出的就是NT60的,这种方式做出的分区是直接可引导的。


后面是否可以加一句,提醒一下使用第三方工具的网友:

其他第三方分区格式化工具,分区格式后目标硬盘的MBR和PBR不一定带有MS的信息,可能导致不能直接引导,比如Win版DiskGenius 3.1.0421 Beta3分区后就没有MS信息。
回复

使用道具 举报

195#
发表于 2009-12-14 23:20:40 | 只看该作者
其实不用过于迷信ms的分区工具,MBR、PBR的真正作用其实只是完成把引导文件加载到适当的位置而已,grub加载引导文件可以引导NT5.x及以前的操作系统就证明了这点,蛙兄的!F9系列能引导的范围也很广同样是有力证据。至于BOOTMGR会出错,其实是BOOTMGR故意作了限制导致的,只要能解开BOOTMGR做手脚的地方就能找到破解的方法,故意制造不兼容以遏制竞争对手或者潜在的竞争对手本来就是ms一贯的卑鄙的做法。苹果的BOOTCAMP为什么能引导全系列windows呢?是因为他们通过气了。我再举个例子——打印用户不知大家有没有这个印象(好像是A开头的),后来被人发现了,就推出个补丁,打完补丁后就会限制这个原先没有出现的用户的权限,windows里面类似这种幽灵用户还很多,特别有个别的网络用户权限居然比Administrator还高!对于我们这种平头百姓来说,泻点隐私没什么大不了的,但对于国家机密、商业机密来说就不得不提防着点!
BTW:引导程序里面真正有用的东西是DPT和BPB,它们才是完成文件定位的依据(对于非GPT来说)。反汇编的代码可能会有不少错误,不过BPB我是由校验过的,这些数据是做研究和数据恢复的重要咚咚。

[ 本帖最后由 netwinxp 于 2009-12-14 23:49 编辑 ]
回复

使用道具 举报

196#
发表于 2009-12-14 23:33:51 | 只看该作者
其他第三方分区格式化工具,分区格式后目标硬盘的MBR和PBR不一定带有MS的信息,可能导致不能直接引导,比如Win版DiskGenius 3.1.0421 Beta3分区后就没有MS信息。

正是如此
回复

使用道具 举报

197#
 楼主| 发表于 2009-12-15 10:32:49 | 只看该作者
各位超大的精彩研究成果.在 20  页开始查看.

感谢H3做了总结.请查看.

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=157529&page=20#pid1850337

[ 本帖最后由 66369 于 2009-12-15 16:42 编辑 ]
回复

使用道具 举报

198#
发表于 2009-12-15 13:45:01 | 只看该作者
用什么工具分区,格式化到不重要,
因为可以用 bootsect  改写mbr 和pbr

对win7可以用 bcdboot新建 bcd和bootmgr

因此,无论是否重新分区,重新格式化,只要目标盘没有重名文件夹和文件(否则将被替换掉)

把gho释放即可,不能启动,只需要上面两个工具修复引导就行。
回复

使用道具 举报

199#
发表于 2009-12-15 14:20:49 | 只看该作者
到目前为止除了MS还没有支持格式化分区引导为NT60分区工具吧
DG到目前最新版3.10412格式化的分区也是NT52
以前用蛙兄的1JF9K和1JF9就是用DG把VM分区再把最后逻辑(主)分区格式化再把做的PE1.X的GHO包文件释放到最后分区就可以使用

[ 本帖最后由 haiou327 于 2009-12-15 14:31 编辑 ]
回复

使用道具 举报

200#
发表于 2009-12-15 15:39:55 | 只看该作者
nt60的引导代码可以用 bootsect改写, win98的,nt52的,dos6.22的都可以改为 nt60
回复

使用道具 举报

201#
发表于 2009-12-15 17:13:47 | 只看该作者
我给单位装系统,就是PE格式C盘,然后看下激活分区,没激活的激活一下,然后直接用GHOSTXP攫取GHOST文件C盘,重启就自动装完了。
一直这样装系统的,。没出过问题!
回复

使用道具 举报

202#
发表于 2009-12-15 17:18:42 | 只看该作者
bootsect.exe /nt60 SYS
bootsect.exe /nt52 SYS

[ 本帖最后由 ghangz 于 2009-12-15 17:19 编辑 ]
回复

使用道具 举报

203#
发表于 2009-12-15 21:01:11 | 只看该作者
这样转换后可靠吗?还没试过。
回复

使用道具 举报

204#
发表于 2009-12-15 21:05:28 | 只看该作者
记得以前老九写了个 bootsect的GUI,当时应该是Vista的bootsect是不支持MBR参数的,只支持写分区引导代码,到W7 bootsect 开始支持 MBR参数
回复

使用道具 举报

205#
 楼主| 发表于 2009-12-15 21:17:29 | 只看该作者
没WIN7的GHO.

马上再玩了一把复制法.稍后反馈.
回复

使用道具 举报

206#
 楼主| 发表于 2009-12-15 21:39:14 | 只看该作者
原先FAT32 30G 主分区的C盘.在用一楼办法.现在是 NTFS 60G de C盘了.


启动全内置维护PE.手动删了C盘页面文件<减小体积>.在U盘新建文件夹.把 NTFS 60G的C盘内所有文件.复制到新建文件夹.

拔掉U盘.重分区硬盘并格式化 C盘为FAT32 20G.并激活.

其他扩展分区...也分好...

打开资源管理器.盘符不对.刷新PE就可以了.


插入U盘.把新建文件夹的文件.复制到C盘.

完成后.重启.一切正常...转为了 FAT32 20G 的C盘了.


WIN7.仍采用NTFS,是不是也能复制后.修复引导继续使用呢...如用此法成功.到另一硬盘.微软会不会以为是D版呢.
回复

使用道具 举报

207#
发表于 2009-12-15 23:00:44 | 只看该作者
复制是可以的
试过
与W98一样

但必须在PE下复制C盘
回复

使用道具 举报

208#
发表于 2009-12-16 06:31:07 | 只看该作者
看了此帖大约一半左右的回复,发觉不少人对PC的引导过程不明所以。有一网页对此有很好的论述,看得懂英文的不妨参考一下!

http://www.multibooters.co.uk/multiboot.html
回复

使用道具 举报

209#
发表于 2009-12-16 16:15:07 | 只看该作者
狂汗,,,各位高手今天才发现啊???

GHOST,GHOST32都是基于扇区的备份或还原。
而GHOSTEXP提取却是只基于文件的还原。
就像你用7z压缩一个文件,用WINRAR也能解压一样,这你会感觉很奇怪吗???
。何况GHOSTEXP和GHOST是一家的,更不会出现兼容性的问题。

这样的FAT到NTFS的转换,一般在重启后是会重新CHKDST一次的……

NTFS -》FAT应该会造成一些权限设置失效。
回复

使用道具 举报

210#
发表于 2009-12-16 18:35:48 | 只看该作者
原帖由 junyee 于 2009-12-16 16:15 发表
狂汗,,,各位高手今天才发现啊???

GHOST,GHOST32都是基于扇区的备份或还原。
而GHOSTEXP提取却是只基于文件的还原。
就像你用7z压缩一个文件,用WINRAR也能解压一样,这你会感觉很奇怪吗???
。何 ...

谁告诉你GHOST、GHOST32是居于扇区备份的?其实GHOST分区到映像和映像到分区全是居于文件的(如果是居于扇区的话,BPB、文件链就会一样,你还能在不同容量的分区里面还原吗?最好多实践一下,不要想当然),只不过里面多了引导信息而已(和可引导的WIM差不多原理)。至于文件权限问题,本来就是NTFS的特点,FAT/FAT32文件项里面没有对应的字段,当然会丢失,你把权限更多的uinx文件拷到windows下不同样也会丢失?

[ 本帖最后由 netwinxp 于 2009-12-16 18:44 编辑 ]
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 15:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表