2011-04-22 71 views
0

我打印了我的Pentium M笔记本电脑硬盘驱动器的MBR。这里是我使用的命令:读取硬盘驱动器时的字节顺序MBR

$ sudo od -N 512 -x /dev/sda 

我希望在输出中按顺序获得字节,但似乎每一对字节都是相反的。

例如,下面的16个字节描述第二分区:

 
0000700 .... .... .... .... .... .... .... 0080 
0000720 0601 fe07 ffff 7886 0001 1990 0353 

这是一个可引导分区。因此,此分区条目中的第一个字节应为80.第5个字节应具有文件系统代码,对于NTFS为“07”。然而,这些分别出现在第2和第6位。

另一个例子 - 最后4个字节应该是分区的大小。这是有道理的,如0x03531990(28.5GB)。但是,上面的输出显示为1990 0353.

它看起来像是在反转每对字节。由于这是一个小小的endian芯片,我可以看到它首先放置了最不重要的字节,但是它不能从字大小开始工作吗?那将是4个字节。上面的输出似乎是每2个字节反转一次。

由此非常困惑,任何帮助将不胜感激。谢谢!

回答

1

odman page

“-X”输出为十六进制两字节 单元。相当于'-t x2'。

可以指定的字节数到 使用在通过用十进制 整数继 类型指示符字符解释在 给定数据类型的每个号码。

因此,也许你更喜欢-t x1(或-t x4)来代替。

+0

哎呀!这很有道理 - 感谢您的帮助。 – 2011-04-22 02:54:43

4

显然,这是正常的。请参阅:

在所有IBM PC,PC兼容或任何 其他小端电脑, 的两个或两个以上 字节十六进制数总是存储在介质上或以相反的顺序 内存(更多 高效CPU处理)。因此, MBR签名(十六进制数0xAA55(或 AA55h))将按顺序显示在磁盘编辑器 中:55 AA。

http://en.wikipedia.org/wiki/Partition_table_%28master_boot_record%29