Почему MBR возвращает другое смещение, чем команды Ubuntu?

~$ sudo /sbin/fdisk -l /dev/sda | grep sda[0-9] 
/dev/sda1   *        2048   234133503   117065728   83  Linux
/dev/sda2       234135550   250068991     7966721    5  Extended
/dev/sda5       234135552   250068991     7966720   82  Linux swap / Solaris

~$ cat /sys/block/sda/sda1/start 
2048

~$ sudo hexdump -s 446 -n 64 /dev/sda
00001be 2080 0021 fe83 ffff 0800 0000 9000 0df4
00001ce fe00 ffff fe05 ffff 9ffe 0df4 2002 00f3
00001de 0000 0000 0000 0000 0000 0000 0000 0000
*
00001fe

Последняя команда предназначена для сброса MBR. Вы можете видеть от второго до последнего целого (0800 0000), который является прямым порядком байтов, что он кодирует 8. 8 * 512 = 4098, который не является 2048, сообщаемым двумя другими командами. Почему это отличается?

2
задан 25 December 2013 в 08:39

1 ответ

Число 0800 в шестнадцатеричной форме преобразуется в 2048 в десятичной форме.

Команда для преобразования шестнадцатеричного числа в десятичное::

echo "ibase=16; hex-number"|bc

Выполнение команды:

echo "ibase=16; 0800"|bc

Возвращает результат: 2048

0
ответ дан 25 December 2013 в 08:39

Другие вопросы по тегам:

Похожие вопросы: