порядок байтов при чтении MBR жесткого диска - PullRequest
0 голосов
/ 22 апреля 2011

Я напечатал MBR жесткого диска моего ноутбука Pentium M.Вот команда, которую я использовал:

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

Я хотел бы получить байты в последовательном порядке в выводе, но, похоже, каждая пара байтов инвертируется.

Например, следующие 16 байтов описывают второй раздел:

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

Это загрузочный раздел.Итак, первый байт в этой записи раздела должен быть 80. 5-й байт должен иметь код файловой системы, который является «07» для NTFS.Тем не менее, они появляются во 2-й и 6-й позиции, соответственно.

Другой пример - последние 4 байта должны быть размером раздела.Это имеет смысл как 0x03531990 (28,5 ГБ).Тем не менее, вышеприведенный вывод показывает 1990 0353.

Похоже, он переворачивает каждую пару байтов.Поскольку это немного порядковый чип, я мог бы видеть, что он помещает младший байт первым, но разве он не будет работать от размера слова?Это было бы 4 байта.Вывод выше, кажется, реверсирует каждые 2 байта.

Очень смущенный этим, любая помощь будет принята с благодарностью.Спасибо!

Ответы [ 2 ]

4 голосов
/ 22 апреля 2011

Видимо, это нормально. См:

На всех IBM PC, PC-совместимых или любых другие компьютеры с прямым порядком байтов, шестнадцатеричные числа двух или более байты всегда хранятся на носителе или в память в обратном порядке (для более эффективная обработка процессора). Таким образом Подпись MBR, шестнадцатеричное число 0xAA55 (или AA55h), появится в редакторе дисков как последовательность: 55 AA.

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

1 голос
/ 22 апреля 2011

Из od справочная страница :

'- x' Вывести в виде шестнадцатеричных двухбайтовых единиц.Эквивалентно '-t x2'.

и

, вы можете указать количество байтов для использования при интерпретации каждого числа в данном типе данных, следуя индикатору типасимвол с десятичным целым числом.

Итак, возможно, вы предпочтете -t x1 (или -t x4) вместо этого.

...