2

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

dd ... if=PBL.bin of=... count=block_number

Переменная block_number определяется как

The HEX of ($filesize - 1)/512 + 1

где $filesize - это размер файла входного файла PBL.bin как указано в приведенной выше команде dd .

Как рассчитать это значение? заранее спасибо

2 ответа2

2

Как насчет:

printf "%x" `stat -c "%b" PBL.bin`

printf напечатает в шестнадцатеричном формате (% x) вывод из stat, который запрашивает только количество блоков, выделенных (% b) файла.

Если вы не доверяете количеству блоков, выделенных согласно статистике, то вручную:

printf "%x" $(( (`stat -c "%s" PBL.bin ` - 1) / 512 + 1))

Таким образом, вы получаете размер файла, а затем делать математику вручную

1

Я второй факт, что dd принимает count как десятичное число. Во всяком случае, вот способ Perl, чтобы получить то, что вы просите:

perl -e 'printf ("%x\n", -s "PBL.bin")'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .