'grub-mkimage --config='の実際の使い方

'grub-mkimage --config='の実際の使い方

Linuxでは、GRUB 2 Bootloaderを使用してこのトピックについて理解しようとしました--config=grub-mkimageman 1 grub-mkimage

-c, --config=FILE
FILEを次に挿入早い構成

私の最初の推測は/boot/grub/grub.cfg-> でしたが、このファイルをビルドする別のコマンドがあり、その推測から抜け出すようになりました。もう一つの推測は/boot/config-3.16.0-4-686-paefile:「Linux make config build file、ASCII text」)の出力です。私が見つけた他のファイルはASCIIではなくバイナリでしたが、その可能性はほとんどありません。

質問:どのファイルまたはファイル形式を意味しますか?


修正する:これを見つけたGRUB 2 に関する gnu.org ドキュメント、GRUBプロンプトのコマンドで:

configfile file
FILEを構成ファイルにロードします。 FILEこのメニュー項目を定義すると、その項目を含むメニューがすぐに表示されます。

おそらく同じファイルですか?興味深い点は、オンラインマニュアルにこのオプションが記載されていないようです。


アップデート2:出力で次の行を見つけます。grub-mkrescue --output grub.iso --verbose

grub-mkrescue: 情報: grub-mkimage --directory '/usr/lib/grub/i386-pc' --prefix '/boot/grub' --output '/tmp/grub.ZiXwO6/boot/grub/i386- pc/eltorito.img' --format 'i386-pc-eltorito' --圧縮 '自動'--config '/tmp/grub.UtCj8W'「バイオディスク」「iso9660」

だから--config '/tmp/grub.UtCj8W'除外..なんか/boot/grub/grub.cfg?いいえ、grub-install詳細な出力が有効な状態で実行されたときに構成について何も見つかりませんでした。


アップデート3:man 1 grub2-mkstandalone開いてman 3 grub2-mkstandaloneいますが、発行するとman 3 grub2-mkstandaloneエラーメッセージが表示されます。また:grub-mkimage --config=マニュアルページにのみ表示されるようですが、出力--help--usage出力には表示されません。

答え1

grub-mkimagegrub必要に応じて他のすべてが構築される重要なコアです。たとえば、grub-[install,mkstandalone,mkrescue]それはすべて使い方を意味するので、grub-mkimage一度grub-mkimage理解するとすべてが簡単に見えます。

grub-mkimage構成ファイルをイメージに「接続」する方法は2つあります。

  1. オプション-c--config=File (初期設定で組み込まれたFILE)

  2. オプション-m--memdisk=file(ファイルを次に含めるストレージディスク最終設定ファイルを含む)

例: 組み込み構成[$prefix]/boot/grub/[x86_64-efi/]grub.cfg

これストレージディスクさまざまなモジュールが「使用可能」になっているファイルシステムをgrub備えた仮想ディスクデバイスです。つまり、直接ロードできます。ただし、オプションのように「プリロードされたモジュール」と直接呼び出されることはありません(最後のモジュールはLinuxオペレーティングシステムにロードされたドライバに似ています)。tarfsinsmod--modules="blah blah...:"initramfs

この主張を最もよく示すのは、1行のコマンドを使用してaをlivecd_only_biosPC_awaredaに再マスターすることです。livecd_isohybrid_bios_and_efi_awared

xorriso -osirrox on -indev TinyCorePure64-6.0.iso -outdev new.iso \
-cpr efime.img /boot -- \
-rm /boot/isolinux/boot.cat -- \
-mkdir /.disk /boot/grub -- \
-cpr grub.cfg /boot/grub -- \
-cpr info /.disk/info -- \
 -as mkisofs  -graft-points -volid "tinyefi" -r -J -l -eltorito-boot boot/isolinux/isolinux.bin -eltorito-catalog boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -eltorito-alt-boot -e boot/efime.img -no-emul-boot -isohybrid-gpt-basdat

どこ

  1. ftp://ftp.nluug.nl/pub/os/Linux/distr/tinycorelinux/6.x/x86_64/archive/6.0/TinyCorePure64-6.0.iso
  2. grub.cfgisolinux.cfgオリジナルライブISOを再現するための簡単な構成です。
  3. ブートローダは次のefime.imgように取得されます。

    grub-mkimage -m memdisk -O x86_64-efi -o grubx64.efi --compression=xz disk part_msdos part_gpt linux linux16 loopback normal configfile test search search_fs_uuid search_fs_file true iso9660 test search_label efi_uga efi_gop gfxterm gfxmenu gfxterm_menu fat ext2 ntfs cat echo ls memdisk tar

  4. 最も単純なストレージディスク最初に含まれていた設定ファイルが含まれています(memdisk)/boot/grub/grub.cfg

これらすべては、grub-mkBootx64.efi @sourceforge.net/projects/toysboxで練習を通じてまもなく提供される予定です。

答え2

Grub マニュアル 2.04、セクション 6.5 で:

GRUBは、構成ファイルをコアイメージに直接挿入して、通常モードに入る前にロードするのをサポートします。たとえば、実際の構成ファイルが直接見つからない場合や、ファイルのロードに関する問題をデバッグする必要がある場合に便利です。
...
設定ファイルを含めるには、.を使用します-cgrub-mkimage...
含まれている
設定ファイルにはメニュー項目を直接含めることはできませんが、config file[the] [コマンド]を使用して他の場所からのみ読み取ることができます。

このため、この--configオプションは、通常のジョブが開始される前にgrubを初期化するのに役立つコマンドを含む構成ファイルを含めるためです。メニューgrub.cfg項目全体を含める意図はありません。

関連情報