Вопрос Почему 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. Вы можете видеть от второго к последнему int (0800 0000), который немного сужен, что он кодирует 8. 8 * 512 = 4098, который не является 2048, сообщенным двумя другими командами. Почему это другое?


2
2017-12-25 04:31


происхождения




ответы:


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

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

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

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

echo "ibase=16; 0800"|bc

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


2
2017-12-25 04:43



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