grub2へのシンボリックリンク(例:pxelinux)

grub2へのシンボリックリンク(例:pxelinux)

grub2を使ってpxelinuxのようなシンボリックリンクを作成したいと思います。しかし、どうすればいいのかわかりません。目標は、IPに動的に配信できるさまざまなプロファイルを持つことです。

これまでGrub2は機能しますが、IP用の他の設定ファイルを提供することはできず、常にgrub.cfgが必要です。また、実際に使用したい設定ファイルへのシンボリックリンクであるgrub.cfg-IP ->他の設定ファイル - >も試しました。

たぶん誰かがこれを見つけたかもしれません。 Grub2のマニュアルはあまり役に立ちません。

答え1

PXELINUX は「シンボリックリンクを実行」しません。単に名前にクライアントのIP、MACアドレス、またはその一部を含む設定ファイルをダウンロードします。一致するファイルがシンボリックリンクであるという事実は、完全にユーザーとそのファイルをPXELINUXに提供するTFTPサーバー間の問題です。

PXELINUXとは異なり、GRUBはデフォルトで単一の設定ファイルのみを検索しますgrub.cfg。これはあなたが提供する必要があります。 GRUBにクライアントのIPアドレスによって異なる名前の設定ファイルを使用させるには、GRUBにそれを知らせる必要があります。

その後、そのプロファイルはGRUBに別のプロファイルをロードするように指示でき、名前を付けるときにGRUB環境変数を使用できます。

したがって、GRUBがという名前の設定ファイルを使用できるようにするには、grub.cfg-<IP address>まずgrub.cfgGRUBが期待する場所に非常に小さなファイルを作成し、次のように読み取る必要があります。

configfile grub.cfg-${net_default_ip}

その後、GRUBにクライアントのIPアドレスの後に続くファイル名を使用して新しい設定ファイルをダウンロードするように指示する必要があります。

絶対パスを使用して新しい構成ファイルを指定することもできます。

configfile (tftp,${net_default_server})/some/path/grub.cfg-${net_default_ip}

新しい設定ファイルを単一行として定義する別のファイルを使用したくない場合(または使用しているアーキテクチャ)をgrub.cfg使用して、grub-mkimage -c <grub.cfg containing the configfile command> -O i386-pc-pxe <other parameters...>GRUB PXEブートイメージにこの1行設定を含めることができます。


クライアントが正しい情報を受信して​​いることを確認し、順番に正しいファイルを要求するのとtcpdump同じ方法を使用して、PXEクライアントとDHCP / TFTPサーバー間のネットワークトラフィックをダンプすることが役に立つことがわかりました。そうですか?wireshark

関連情報