为什么 BOOTMGR 位于 MBR 里面?

为什么 BOOTMGR 位于 MBR 里面?

根据我找到的 MBR 结构定义,分区表数据应该位于磁盘第一个块的 446 到 510 字节范围内。但是,当我运行:

sudo xxd -g 1 -u -l 512 /dev/sda1

我看到这些字节中有一些与 BOOTMGR 相关的文本,而不是分区定义。这是为什么?分区定义在哪里?

以下是上述命令的输出:

0000000: EB 52 90 4E 54 46 53 20 20 20 20 00 02 08 00 00  .R.NTFS    .....  
0000010: 00 00 00 00 00 F8 00 00 3F 00 FF 00 00 08 00 00  ........?.......  
0000020: 00 00 00 00 80 00 80 00 F8 17 03 00 00 00 00 00  ................  
0000030: C0 06 00 00 00 00 00 00 78 06 00 00 00 00 00 00  ........x.......  
0000040: F6 00 00 00 01 00 00 00 40 3C CD 9B 25 88 CF 01  ........@<..%...  
0000050: 00 00 00 00 FA 33 C0 8E D0 BC 00 7C FB 68 C0 07  .....3.....|.h..  
0000060: 1F 1E 68 66 00 CB 88 16 0E 00 66 81 3E 03 00 4E  ..hf......f.>..N  
0000070: 54 46 53 75 15 B4 41 BB AA 55 CD 13 72 0C 81 FB  TFSu..A..U..r...  
0000080: 55 AA 75 06 F7 C1 01 00 75 03 E9 D2 00 1E 83 EC  U.u.....u.......  
0000090: 18 68 1A 00 B4 48 8A 16 0E 00 8B F4 16 1F CD 13  .h...H..........  
00000a0: 9F 83 C4 18 9E 58 1F 72 E1 3B 06 0B 00 75 DB A3  .....X.r.;...u..  
00000b0: 0F 00 C1 2E 0F 00 04 1E 5A 33 DB B9 00 20 2B C8  ........Z3... +.  
00000c0: 66 FF 06 11 00 03 16 0F 00 8E C2 FF 06 16 00 E8  f...............  
00000d0: 40 00 2B C8 77 EF B8 00 BB CD 1A 66 23 C0 75 2D  @.+.w......f#.u-  
00000e0: 66 81 FB 54 43 50 41 75 24 81 F9 02 01 72 1E 16  f..TCPAu$....r..  
00000f0: 68 07 BB 16 68 70 0E 16 68 09 00 66 53 66 53 66  h...hp..h..fSfSf  
0000100: 55 16 16 16 68 B8 01 66 61 0E 07 CD 1A E9 6A 01  U...h..fa.....j.  
0000110: 90 90 66 60 1E 06 66 A1 11 00 66 03 06 1C 00 1E  ..f`..f...f.....  
0000120: 66 68 00 00 00 00 66 50 06 53 68 01 00 68 10 00  fh....fP.Sh..h..  
0000130: B4 42 8A 16 0E 00 16 1F 8B F4 CD 13 66 59 5B 5A  .B..........fY[Z  
0000140: 66 59 66 59 1F 0F 82 16 00 66 FF 06 11 00 03 16  fYfY.....f......  
0000150: 0F 00 8E C2 FF 0E 16 00 75 BC 07 1F 66 61 C3 A0  ........u...fa..  
0000160: F8 01 E8 08 00 A0 FB 01 E8 02 00 EB FE B4 01 8B  ................  
0000170: F0 AC 3C 00 74 09 B4 0E BB 07 00 CD 10 EB F2 C3  ..<.t...........  
0000180: 0D 0A 41 20 64 69 73 6B 20 72 65 61 64 20 65 72  ..A disk read er  
0000190: 72 6F 72 20 6F 63 63 75 72 72 65 64 00 0D 0A 42  ror occurred...B  
00001a0: 4F 4F 54 4D 47 52 20 69 73 20 6D 69 73 73 69 6E  OOTMGR is missin  
00001b0: 67 00 0D 0A 42 4F 4F 54 4D 47 52 20 69 73 20 63  g...BOOTMGR is c  
00001c0: 6F 6D 70 72 65 73 73 65 64 00 0D 0A 50 72 65 73  ompressed...Pres  
00001d0: 73 20 43 74 72 6C 2B 41 6C 74 2B 44 65 6C 20 74  s Ctrl+Alt+Del t  
00001e0: 6F 20 72 65 73 74 61 72 74 0D 0A 00 00 00 00 00  o restart.......  
00001f0: 00 00 00 00 00 00 00 00 80 9D B2 CA 00 00 55 AA  ..............U.  

答案1

那不是 MBR。

您发布的命令也不会打印 MBR。它要求的是第一个磁盘分区的引导扇区,而不是 MBR。

/dev/sda如果您想查看 MBR,请尝试检查前 512 个字节。

答案2

Michael Hampton 提供的答案是正确的。/dev/sda 的前 512 个字节与 /dev/sda1 的前 512 个字节不是同一个磁盘位置。您可以使用dd提取每个字节并cmp -l进行比较来亲自查看。磁盘有一个 MBR;每个分区都有自己的 PBR;它们是不同的。您提取的是分区的 PBR,而不是磁盘的 MBR。

相关内容