Та же причина, что и в ответе bashBedlam, но другой код (опция -n
не требуется, это экономит два байта), просто измените эту строку:
howmany=${2:-10}
на это :
howmany=${2:--10}
Вы можете отредактировать исполняемый файл grub и заменить заголовок строкой той же длины. Особенностью формата ELF является отсутствие контрольной суммы.
В моем Debian 7 это (найдено с помощью grep -l 'GNU GRUB'
) в /boot/grub/normal.mod
, что od
Показывает, что используется строка с завершающим нулем:
726f 616d 206c 6e65 6976 6f72 6d6e 6e65
0153140 t \0 > \0 g r u b > \0 G N U G R
0074 003e 7267 6275 003e 4e47 2055 5247
0153160 U B v e r s i o n % s \0 1
Команда file
сообщает вам о формате, например,
$ file /boot/grub/normal.mod
/boot/grub/normal.mod: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
Конечно, вы должны использовать для этого подходящий инструмент, такой как шестнадцатеричный редактор.
Дополнительная литература:
К сожалению, единственный способ изменить текст заголовка - это изменить исходный код Grub 2 и перекомпилировать его, поскольку текст заголовка жестко закодирован в grub-core/normal/main.c
в дереве исходного кода. Подробности смотрите в этом ответе на AskUbuntu - здесь слишком много деталей, чтобы их воспроизводить.