根据我找到的 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。