- Oracle Linuxのインストール
- ネットワーク・インストール設定の作成
- PXEブート・ロードの構成
PXEブート・ロードの構成
PXEブート・ローダーを構成する手順は、ブート・サーバー用に使用されるシステムのタイプによって異なります。
重要:
サポートする予定のインストールには、正しいカーネルおよびRAMディスク・イメージを使用する必要があります。たとえば、Btrfs rootパーティションを持つシステムをインストールする場合は、UEK Boot ISOを使用して、システムがBtrfsサポートでインストールできるように適切なカーネルおよびイメージを取得する必要があります。BIOSベースのPXEクライアント用に構成する方法
pxelinux.0
ブート・ローダーを含むsyslinux
パッケージをインストールします。sudo dnf install syslinux -y
- TFTPサーバー・ディレクトリの下に
pxelinux/pxelinux.cfg
ディレクトリを作成します。sudo mkdir -p /var/lib/tftpboot/pxelinux/pxelinux.cfg
- ブート・ローダー・ファイルを
pxelinux
サブディレクトリにコピーします。sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
- NFS共有ディレクトリから、インストール・カーネル(
vmlinuz
)およびRAMディスク・イメージ・ファイル(initrd.img
)をpxelinux
サブディレクトリにコピーします。sudo cp /var/nfs-exports/ISOs/ol8/vmlinuz /var/lib/tftpboot/pxelinux/vmlinuz sudo cp /var/nfs-exports/ISOs/ol8/initrd.img /var/lib/tftpboot/pxelinux/initrd.img
- ブート・ローダーをメニューとして表示するためのモジュールを、ブート・ローダー・ディレクトリにコピーします。
sudo cp /usr/share/syslinux/*.c32 /var/lib/tftpboot/pxelinux
pxelinux.cfg
サブディレクトリで、エントリを作成してブート構成ファイルに追加します。このファイルには、pxe.conf
などの任意の名前を割り当てることができます。次の例では、このファイル内の標準的なエントリを示します。DEFAULT menu.c32 TIMEOUT 400 ONTIMEOUT BootLocal PROMPT 0 MENU INCLUDE pxelinux.cfg/pxe.conf NOESCAPE 1 LABEL BootLocal localboot 0 TEXT HELP Boot to local hard disk ENDTEXT LABEL OL8 MENU LABEL OL8 kernel vmlinuz append initrd=initrd.img inst.repo=/var/nfs-exports/ISOs/ol8/ \ inst.ks.sendmac inst.ks=/var/nfs-exports/ISOs/ksfiles/kstart-file TEXT HELP Install Oracle Linux 8 ENDTEXT
ブート・ローダーは、これらのエントリに基づいて、
TIMEOUT
期間中にユーザーの介入がなかった場合に自動的にローカル・ドライブからブートを試みます。OSがインストールされていない場合、ブート・ローダーはネットワークからブートし、インストール・プロセスを開始します。このリストでは、構成ファイル内で使用されるいくつかのディレクティブを説明します:
-
DEFAULT
により、ブート・ローダー・メニューを表示するために使用するモジュールを特定します。基本的なテキスト表示の場合は、
menu.c32
モジュールで十分です。ただし、画像や色などのグラフィカル表示用のディレクティブを追加するには、かわりにvesamenu.c32
モジュールを指定します。 -
TIMEOUT
により、ブート・ローダーが後続のディレクティブに従ってクライアントをブートするまでの期間をtimeout
/10秒単位で指定します。次のディレクティブ(ontimeout
)により、待機期間を過ぎたときのアクションを指定します。 -
PROMPT
により、デフォルトでboot:
プロンプトを表示するかどうかを決定します。PROMPT
が1に設定されている場合は、boot:
プロンプトが表示されます。PROMPT
が0に設定されている場合は、ユーザーがコンソールで[Shift
]または[Alt
]キーを押さないかぎり、boot:
プロンプトは表示されません。 -
MENU INCLUDE
により、作成したブート構成を特定します。 -
kernel
により、カーネル実行可能ファイルの名前を定義します。 -
append
により、カーネルのロード時に追加するパラメータ(RAMディスク・イメージの名前やファイルの場所など)を定義します。なお、ご使用のシステムからインターネットにアクセスできる場合は、Oracle Linux yumサーバーにあるBaseOSリポジトリを指すようにinst.repo
変数を設定できます。たとえば、x86_64プラットフォーム・システムの場合は、inst.repo
をhttps://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64
に設定できます。重要:
カーネルとRAMディスク・イメージのファイルのパスは、ブート・ローダーが含まれるサブディレクトリ(
pxelinux
など)からの相対パスであるとみなされます。pxelinux/OL8
などのサブディレクトリにvmlinuz
およびinitrd.img
ファイルを配置する場合は、必ず正しい相対パスを指定してください。
-
UEFIベースのPXEクライアント用に構成する方法
grub2-efi
およびshim
パッケージをダウンロードします:mkdir /tmp/boot_rpms sudo dnf download shim grub2-efi --downloaddir=/tmp/boot_rpms
- パッケージの場所に移動し、その内容を展開します:
cd /tmp/boot_rpms sudo rpm2cpio grub2-efi-version.rpm | cpio -idmv sudo rpm2cpio shim-version.rpm | cpio -idmv
- TFTPサーバー・ディレクトリの下に、
efi
などのサブディレクトリを作成します:sudo mkdir -p /var/lib/tftpboot/efi
- ブート・ローダーおよびその他の関連ファイルを
efi
サブディレクトリにコピーします:sudo cp /tmp/boot_rpms/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/efi sudo cp /tmp/boot_rpms/boot/efi/EFI/redhat/shim*.efi /var/lib/tftpboot/efi sudo cp /tmp/boot_rpms/boot/efi/EFI/redhat/MokManager.efi /var/lib/tftpboot/efi
ノート:
クライアントでセキュア・ブートをサポートするには、
shim.efi
およびMokManager.efi
ファイルが必要です。MokManager.efi
には、EFIバイナリへの署名に使用するキーを管理するためのユーティリティが備えられています。その後、/etc/dnsmasq.conf
ファイル内でUEFIベースのクライアント用にdhcp-boot
を設定するときに、パススルー・ブート・ローダーとして、shim.efi
を指定します。dnsmasqの構成方法を参照してください。 - NFS共有ディレクトリから、インストール・カーネル(
vmlinuz
)およびRAMディスク・イメージ・ファイル(initrd.img
)をefi
サブディレクトリにコピーします。sudo cp /var/nfs-exports/ISOs/ol8/vmlinuz -O /var/lib/tftpboot/efi/vmlinuz sudo cp /var/nfs-exports/ISOs/ol8/initrd.img /var/lib/tftpboot/efi/initrd.img
efi
サブディレクトリで、エントリを作成してから、それをgrub.cfg
ブート・ローダー構成ファイルに追加します。この構成ファイルには、ネットワークからのブートおよびローカルでブートするためのオプションが含まれています。クライアントが、ネットワークからブートされてインストール・プロセスを開始します。その後、インストール終了時にクライアントが再起動されると、システムがローカル・ドライブからブートされます。
次の例では、このファイル内の標準的なエントリを示します。
set default 0 set timeout=10 menuentry 'ol8 localboot' { echo "Booting from local disk" set root=(hd0,gpt1) chainloader efi/shim.efi boot } menuentry 'ol8' { echo "Loading vmlinuz" linuxefi vmlinuz inst.repo=/var/nfs-exports/ISOs/ol8/ inst.ks.sendmac \ inst.ks=/var/nfs-exports/ISOs/ksfiles/kstart-file echo "Loading /initrd.img" initrdefi initrd.img echo "Booting installation kernel" }
注意:
ブート・ローダー構成は、UEFIベースのシステム間で共通ではありません。ディスク・レイアウトが異なるなどの違いがあるため、特定のブート・ローダー設定がすべてのシステムに共通に適用されるわけではありません。前述の例では、ブート・ローダーを構成する方法を1つのみ示しています。設定するシステムに適したブート・ローダー構成を作成する必要があります。
-
linuxefi
は、カーネル実行可能ファイルの名前を定義し、カーネルのロード時に追加するパラメータ(インストール・パッケージの場所やファイルの場所など)を定義します。 -
initrdefi
により、RAMディスク・イメージの名前を定義します。
重要:
カーネルとRAMディスク・イメージのファイルのパスは、ブート・ローダーが含まれるサブディレクトリ(
efi
など)からの相対パスであるとみなされます。efi/OL8
などのサブディレクトリにvmlinuz
およびinitrd.img
ファイルを配置する場合は、必ず正しい相対パスを指定してください。-