grub-mkrescue가 "--core-compress=xz" 옵션을 허용하지 않는 이유는 무엇입니까?

grub-mkrescue가 "--core-compress=xz" 옵션을 허용하지 않는 이유는 무엇입니까?

일부 패키지가 누락되었거나 다른 옵션이 누락되었습니까? 아니면 grub-mkresuce의 버그입니까?몇 가지 예가 있습니다선택을 위해 --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.

답변1

--core-compress 옵션이 선언되었지만 구현되지 않은 것 같습니다. grub-mkrescue 및 해당 도우미에 알려지지 않은 옵션을 사용하는 경우 이 옵션은 xorriso로 전달되며 xorriso도 옵션을 모른다면 불평합니다.


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

그러나 include/grub/util/install.h에 GRUB "프로그램 오류"가 표시되므로 GRUB "프로그램 오류"가 표시됩니다.


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

이 옵션을 사용하면 숫자 코드 GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS로 변환됩니다. 이제 GRUB에는 해당 숫자를 인식하고 "xz" 매개변수를 읽고 사용자가 원하는 것을 등록할 수 있는 코드 조각이 있어야 합니다.

이는 "--compress=xz"를 사용하여 수행됩니다. install.h에는 다음이 있습니다.


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

util/grub-install-common.c에는 다음이 있습니다:


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

그러나 GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS의 경우 그러한 코드가 없습니다.

관련 정보