일부 패키지가 누락되었거나 다른 옵션이 누락되었습니까? 아니면 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의 경우 그러한 코드가 없습니다.