grub-mkrescueが "--core-compress = xz"オプションを受け入れないのはなぜですか?

grub-mkrescueが

一部のパッケージがありませんか、他のオプションがありませんか?それとも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の場合、そのようなコードはありません。

おすすめ記事