Por que o grub-mkrescue não aceita a opção “--core-compress = xz”?

3

Falta algum pacote ou falta algumas outras opções? ou apenas um bug do grub-mkresuce? Algum exemplo para a opção --core-compress= ?

$ grub-mkrescue --core-compress=xz --compress=xz -o grub.iso ./iso
grub-mkrescue: --core-compress: (PROGRAM ERROR) Option should have been recognized!?
Try 'grub-mkrescue --help' or 'grub-mkrescue --usage' for more information.
    
por illiterate 03.09.2018 / 07:58

1 resposta

2

Parece que a opção --core-compress está declarada, mas não implementada. Se você usar uma opção desconhecida para o grub-mkrescue e seus ajudantes, então opção é encaminhada para xorriso, que irá reclamar se não conheça a opção:


xorriso : FAILURE : -as mkisofs: Unrecognized option '--XYZ-compress=xz'

Mas você vê um GRUB "PROGRAM ERROR", porque include / grub / util / install.h tem


  {"core-compress", GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS,         \
      "xz|none|auto",                                           \
      0, N_("choose the compression to use for core image"), 2},        \

Se você usar a opção, ela será traduzida no código numérico GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS. Agora o GRUB deve ter em algum lugar um pedaço de código que reconheça número, lê o argumento "xz" e registra o desejo do usuário.

Isso é feito com "--compress = xz". install.h tem:


  { "compress", GRUB_INSTALL_OPTIONS_INSTALL_COMPRESS,            \
    "no|xz|gz|lzo", 0,                            \
    N_("compress GRUB files [optional]"), 1 },                            \

e util / grub-install-common.c tem:


    case GRUB_INSTALL_OPTIONS_INSTALL_COMPRESS:
      if (strcmp (arg, "no") == 0
      ...
      if (strcmp (arg, "gz") == 0)
      ...
      if (strcmp (arg, "xz") == 0)

Mas para o GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, não existe código em nenhum lugar.

    
por 04.09.2018 / 20:35

Tags