我执行了我的闪存盘在sudo dd if=/dev/zero of=/dev/sda
哪里。此后全为零。然后我在闪存盘上使用 GParted 创建了一个分区表。我没有做其他更改。现在这是输出:/dev/sda
/dev/sda
sudo dd if=/dev/sda bs=512 count=1|hexdump -C
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 fd 5c ba 4c 00 00 00 00 |.........\.L....| 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 1+0 记录 1+0 记录出炉 已复制 512 字节(512 B),0.00183447 秒,279 kB/s 00000200
我试了两次。我的问题是为什么会发生这种情况。据我所知,分区表从第 446 个字节之后开始,签名没有理由55 aa
出现在那里。
如果不是恶意软件,那会是什么?
答案1
GParted 始终将 55AA 签名写入 MBR,即使并非严格需要。(正如您已经提到的,只有可引导 MBR 才需要它。)
原因在于历史兼容性问题。
一些 MBR 处理代码实现不佳的系统如果 MBR 没有签名,就会断然认为 MBR 无效。
为了防止出现此问题,GParted(以及大多数其他可以创建 MBR 的软件)会将虚拟/安全引导加载程序代码放入 MBR 中并为其赋予“可启动磁盘”签名。