Por que o MBR retorna um deslocamento diferente dos comandos do Ubuntu?

2
~$ 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

O último comando destina-se a despejar o MBR. Você pode ver do segundo ao último int (0800 0000) que é little endian, que codifica 8. 8 * 512 = 4098 que não é o 2048 relatado pelos dois outros comandos. Por que isso é diferente?

    
por chacham15 25.12.2013 / 05:31

1 resposta

2

O número 0800 em formato hexadecimal é convertido para 2048 na forma decimal.

O comando para converter um número hexadecimal em decimal é:

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

Executando o comando:

echo "ibase=16; 0800"|bc

Retorna o resultado: 2048

    
por karel 25.12.2013 / 05:43