目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Serverマニュアル / 導入ガイド / インストールサーバのセットアップ / ネットワークブート環境の準備
適用項目 SUSE Linux Enterprise Server 15

15 ネットワークブート環境の準備

この章では、PXEでのブートに必要なインフラストラクチャを提供するDHCPサーバとTFTPサーバの設定方法について説明します。

SUSE® Linux Enterprise Serverは、PXE (Preboot Execution Environment)を介してインストールすることができます。そのためには、クライアントハードウェアがPXEでのブートをサポートしている必要があります。また、クライアントに必要なデータを提供するDHCPサーバとTFTPサーバがネットワーク上に存在している必要もあります。この章では、これらの必要とされるサーバの設定方法を順を追って説明します。

PXEでは、カーネルとinitrdのみがブートされます。これらは、インストール環境または実働システムをブートする際に使用されます。インストールソースの設定方法については、第14章 「ネットワークインストールソースをセットアップするを参照してください。

このセクションでは、複雑なブートシナリオで必要となる設定タスクについて説明します。DHCP、PXEブート、TFTP、およびWake on LAN用の、すぐに使用できる設定例も含まれています。

以下の例では、DHCPサーバ、TFTPサーバ、およびNFSサーバがIP 192.168.1.1の同じマシンに存在することを想定しています。すべてのサービスが異なるマシンに存在していてもまったく問題ありません。必ず、必要に応じてIPアドレスを変更してください。

15.1 DHCPサーバのセットアップ

DHCPサーバは、ネットワーククライアントへの自動アドレス割り当てのほか、TFTPサーバのIPアドレスと、カーネルファイルおよびinitrdファイルへのパスをアナウンスします。ロードする必要があるファイルは、ターゲットマシンのアーキテクチャと、レガシBIOSブートまたはUEFIブートのどちらを使用するかによって異なります。クライアントはそれらのアーキテクチャタイプをDHCP要求で送信します。DHCPサーバはこの情報に基づいて、クライアントでどのファイルをブート用にダウンロードする必要があるかを決定します。

  1. DHCPサーバのホストとなるマシンにrootとしてログインします。

  2. systemctl enable dhcpdコマンドを実行して、DHCPサーバを有効にします。

  3. /etc/dhcpd.confにあるDHCPサーバの設定ファイルのサブネット設定に、次の行を追加します。

    # The following lines are optional
    option domain-name "my.lab";
    option domain-name-servers 192.168.1.1;
    option routers 192.168.1.1;
    option ntp-servers 192.168.1.1;
    ddns-update-style none;
    default-lease-time 3600;
    
    # The following lines are required
    option arch code 93 = unsigned integer 16; # RFC4578
    subnet 192.168.1.0 netmask 255.255.255.0 {
     next-server 192.168.1.1;
     range 192.168.1.100 192.168.1.199;
     default-lease-time 3600;
     max-lease-time 3600;
     if option arch = 00:07 or option arch = 00:09 {
       filename "/EFI/x86/grub.efi";
     }
     else if option arch = 00:0b {
       filename "/EFI/aarch64/bootaa64.efi";
     }
     else  {
       filename "/BIOS/x86/pxelinux.0";
     }
    }

    この設定例では、サブネット192.168.1.0/24と、IP 192.168.1.1のサーバ上のDHCP、DNS、およびゲートウェイを使用しています。使用されているIPアドレスはすべて、ネットワークレイアウトに従って変更してください。dhcpd.confで利用可能なオプションの詳細については、dhcpd.confのマニュアルページを参照してください。

  4. systemctl restart dhcpdコマンドを実行して、DHCPサーバを再起動します。

PXEおよびWake on LANインストールのリモート制御にSSHを使う場合には、DHCPがインストールターゲットに提供するIPアドレスを指定してください。そのためには、上記のDHCP設定を、以下の例に従って修正します。

group {
 host test {
   hardware ethernet MAC_ADDRESS;
   fixed-address IP_ADDRESS;
   }
}

host文は、インストールターゲットのホスト名になります。ホスト名とIPアドレスを特定のホストにバインドするには、そのシステムのハードウェア(MAC)アドレスを調べ、これを指定する必要があります。この例で使用されているすべての変数を、使用する環境にマッチする実際の値で置き換えてください。

DHCPサーバをリスタートすると、サーバは指定されたホストに静的なIPを提供するので、そのシステムにSSHで接続することが可能になります。

15.2 TFTPサーバのセットアップ

以下の手順では、32ビットおよび64ビットのx86アーキテクチャでUEFIおよびBIOSを搭載したターゲットマシン用にサーバを準備する方法を説明します。ここで準備する構造は、AArch64システム用にも使用できます。

15.2.1 TFTPサーバのインストール

TFTPサーバをインストールするには、次の手順に従います。

  1. tftpパッケージをインストールします。

    tux > sudo zypper in tftp
  2. /etc/sysconfig/tftptftpd設定を確認し、必要に応じてオプションの追加や変更を行います。詳細については、man 8 tftpdを確認してください。TFTPデーモンは設定変更なしで機能します。ファイルのデフォルトのルートディレクトリは/srv/tftpbootです。

  3. ブート時にtftpdの起動を確認したら、それを再起動して新しい設定を読み込みます。

    tux > sudo systemctl enable tftp.socket
    tux > sudo systemctl restart tftp.socket

15.2.2 パッケージからのPXEファイルのインストール

SUSE Linux Enterprise ServerのRPMは、BIOSまたはUEFIを搭載したマシンでPXEを介してブートするために必要なファイルを提供しています。TFTPサーバが稼働するマシンにファイルをインストールするには、次のコマンドを使用します。

tux > sudo zypper in tftpboot-installation-SLES-OS_VERSION-ARCHITECTURE

OS_VERSIONSUSE Linux Enterprise Serverインストール環境のバージョン(15など)で、ARCHITECTUREはシステムのアーキテクチャ(x86_64など)で置き換えます。zypper se tftpbootを使用すると、使用可能なすべてのバージョンとアーキテクチャを検索できます。

ファイルは/srv/tftpboot/SLES-OS_VERSION-ARCHITECTUREにインストールされます。/srv/tftpbootディレクトリへは、SUSE Linux Enterprise Serverの他のバージョンとアーキテクチャのファイルをコピーすることもできます。

15.2.3 PXELINUXの設定

ファイル/srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE/net/pxelinux.cfg/defaultをエディタで開きます。第14章 「ネットワークインストールソースをセットアップするで説明している設定方法に従って、installパラメータのパスを置き換えます。また、TFTP_SERVERは、TFTPサーバのIPアドレスで置き換えてください。PXELINUX設定オプションの概要については、15.3項 「PXELINUXの設定オプション」を参照してください。

default linux

# install
label linux
  ipappend 2
  kernel boot/ARCHITECTURE/loader/linux
  append initrd=boot/x86_64/ARCHITECTURE/initrd instsys=tftp://TFTP_SERVER/SLES-OS_VERSION-ARCHITECTURE/boot/ARCHITECTURE/root install=PROTOCOL://SERVER_IP:/PATH

display  message
implicit 1
prompt  1
timeout  50

append行で使用するブートパラメータの詳細については、7.3項 「重要なブートパラメータのリスト」を参照してください。

必要に応じて、/srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE/net/pxelinux.cfg/messageを編集して、ブートメニューにメッセージを表示します。

15.2.4 GRUB2を備えたEFIでのPXEブートの準備

GRUB2環境設定ファイルを変更する必要はありませんが、デフォルトの設定では、インストールシステム用のネットワークソースは用意されていません。ネットワーク経由でSUSE Linux Enterprise Serverの完全インストールを実行する場合は、ファイル/srv/tftpboot/SLES-OS_VERSION-ARCHITECTURE/EFI/BOOT/grub.cfglinuxefi行にinstallパラメータを追加します。第14章 「ネットワークインストールソースをセットアップするで説明している設定方法に従って、installパラメータを設定します。efilinux行で使用するその他のブートパラメータの詳細については、7.3項 「重要なブートパラメータのリスト」を参照してください。

15.3 PXELINUXの設定オプション

ここに記されているのは、PXELINUX設定ファイルで利用可能なオプションの一部です。

APPEND OPTIONS

カーネルのコマンドラインに1つまたは複数のオプションを追加します。これらは、自動ブートと手動ブートのどちらの場合でも追加されます。オプションはカーネルコマンドラインの先頭に追加されるので、通常は、明示的に入力したカーネルオプションによって上書きすることができます。

APPEND -

何も追加しません。LABELセクション内で、APPENDに引数として1つのハイフンを付ければ、グローバルなAPPENDを上書きすることができます。

DEFAULT KERNEL_OPTIONS...

デフォルトのカーネルコマンドラインを設定します。PXELINUXが自動的にブートする場合には、DEFAULTの後のエントリがブートプロンプトに対して入力されたときのように動作します。加えて、自動ブートであることを示すautoオプションも自動的に追加されます。

設定ファイルが存在しない、または設定ファイル内でDEFAULTエントリが定義されていない場合には、オプションの付かないカーネル名linuxがデフォルトとなります。

IFAPPEND FLAG

FLAG値に応じて、特定のオプションをカーネルコマンドラインに追加します。IFAPPENDオプションは、PXELINUXでのみ使用可能です。FLAGでは、表15.1「IFAPPENDから生成され、追加されたカーネルコマンドラインオプション」で説明されている値が必要です:

表 15.1: IFAPPENDから生成され、追加されたカーネルコマンドラインオプション

引数

生成されたカーネルコマンドライン/記述

1

ip=CLIENT_IP:BOOT_SERVER_IP:GW_IP:NETMASK

プレースホルダは、DHCP/BOOTPまたはPXEブートサーバからの入力に基づいて置換されます。

このオプションは、ブートされたシステムでDHCPクライアントを実行するための代替品ではないことに注意してください。定期的な更新がない場合、PXE BIOSによって取得されたリースは期限切れになり、IPアドレスはDHCPサーバによる再使用で使用可能になります。

2

BOOTIF=MAC_ADDRESS_OF_BOOT_INTERFACE

このオプションは、インストールサーバが、DHCPサーバからの返信を受け取るまで、LANインタフェースを交互に検索する場合に、タイムアウトを回避するのに役立ちます。このオプションを使用すると、initrdプログラムはシステムがブートされたインタフェースを特定することができます。linuxrcではこのオプションを読み込み、このネットワークインタフェースを使用します。

4

SYSUUID=SYSTEM_UUID

小文字16進数でUUIDを追加します。/usr/share/doc/packages/syslinux/pxelinux.txtを参照してください。

LABEL label KERNEL image APPEND options...

ブートするカーネルとしてLABELを入力した場合、PXELINUXで代わりにIMAGEをブートする必要があること、また指定されたAPPENDオプションを使用する必要があることを示します。これらは、ファイルのグローバルセクションにある、最初のLABELコマンドの前に記載されている設定に取って代わります。IMAGEのデフォルトはLABELと同じです。また、APPENDが指定されなかった場合には、グローバルエントリがデフォルトとして使用されます(存在する場合)。最大で128のLABELエントリが使用できます。

PXELINUXは次の構文を使用します。

label MYLABEL
  kernel MYKERNEL
  append MYOPTIONS

ラベルは、ファイル名の場合のように切り詰められるので、切り詰められた後も固有性が保たれるように決める必要があります。たとえば、v2.6.30v2.6.31という2つのラベルは、PXELINUXでは区別できません。これらは切り詰められるとどちらも同じDOSファイル名になるからです。

カーネルはLinuxカーネルである必要はありません。ブートセクタまたはCOMBOOTファイルを使用することもできます。

LOCALBOOT TYPE

PXELINUXでは、KERNELオプションの代わりにLOCALBOOT 0を指定すると、 この特定のラベルが呼び出されて、カーネルブートの代わりにローカルディスクのブートが行われます。

引数

説明

0

通常のブートを行う

4

まだメモリ上に常駐しているUNDI (Universal Network Driver Interface)ドライバを使用して、ローカルブートを行う

5

まだメモリ上に常駐しているUNDIドライバを含め、PXEスタック全体でローカルブートを行う

他の値は定義されていません。UNDIやPXEスタックについて知らない場合は、0を指定してください。

TIMEOUT TIME-OUT

自動的にブートする前に、ブートプロンプトをどれくらいの時間表示するかを指定します。単位は1/10秒です。タイムアウトは、ユーザがキーボードで何か入力するとキャンセルされます。この場合、ユーザがコマンドを入力するものと見なされます。タイムアウトの値を0に設定すると、タイムアウトは無効になります(これがデフォルトです)。タイムアウトの最大値は35996です(1時間よりほんの少しだけ短い時間です)。

PROMPT flag_val

flag_valを0に設定すると、ShiftAltキーが押された場合、またはCaps LockScroll Lockキーがセットされている場合にのみ、ブートプロンプトを表示します(デフォルト)。flag_valを1に設定すると、常にブートプロンプトを表示します。

F2  FILENAME
F1  FILENAME
..etc...
F9  FILENAME
F10 FILENAME

ブートプロンプトでファンクションキーを押したときに、指定されたファイルを表示します。これは、ブート前のオンラインヘルプ(おそらくはカーネルコマンドラインのオプション)を設定するために使用することができます。以前のリリースとの後方互換性のために、F10F0として入力することもできます。現在のところ、F11F12にファイル名を関連付けることはできないことに注意してください。

15.4 ターゲットシステムでPXEブートの準備をする

システムのBIOSで、PXEブートの準備をします。これには、BIOSのブート順でのPXEオプションの設定も含まれます。

警告
警告: BIOSブートオーダー

BIOSで、PXEオプションをハードディスクブートパラメータの前に指定しないでください。さもないと、システムはブートのたびに再インストールを行おうとします。

15.5 ターゲットシステムでWake on LANの準備をする

Wake on LAN (WOL)では、インストールの前に適切なBIOSオプションを有効にすることが必要です。また、ターゲットシステムのMACアドレスを記録しておいてください。このデータは、Wake on LANを開始するために必要です。

15.6 Wake on LAN

Wake on LANを使えば、コンピュータのMACアドレスを含む特別なネットワークパケットを使って、コンピュータの電源を入れることができます。世界中のすべてのコンピュータは固有のMAC識別子を持っているので、間違って別のコンピュータの電源を入れてしまう心配はありません。

重要
重要: 異なるネットワークセグメントにまたがるWake on LAN

制御用のマシンが、WOLコマンドの実行先と同じネットワークセグメント内にない場合には、WOL要求がマルチキャストとして送信されるように設定するか、またはそのネットワークセグメント内にあるマシンをリモートで制御して、要求の送信元として作動させてください。

SUSE Linux Enterprise Serverのユーザは、WOLと呼ばれるYaSTモジュールを使って、簡単にWake on LANを設定することができます。他のバージョンのSUSE LinuxベースのOSユーザは、コマンドラインツールを使用してください。

15.7 YaSTを使ったWake on LAN

次の手順で、YaSTのWake on LANを設定します。

  1. rootとしてログインします。

  2. YaST › ネットワークサービス › WOLの順に選択します。

  3. 追加をクリックして、ターゲットシステムのホスト名とMACアドレスを入力します。

  4. このコンピュータの電源を入れるには、適切な項目を選択して、起動をクリックします。

15.8 PXEではなくCDドライブまたはUSBドライブからブート

PXEでブートするのではなく、CDドライブ、DVDドライブ、またはUSBドライブと小容量のシステムイメージを使用することもできます。必要なファイルは、カーネルとinitrdがロードされるとNFSを介してフェッチされます。ブート可能なイメージはmksusecdで作成できます。これはターゲットマシンがPXEブートをサポートしていない場合に便利です。

sudo zypper in mksusecdを使用してイメージをインストールします。次のコマンドを使用して、ブート可能なISOイメージを作成します。

tux > mksusecd --create image.iso \
--net=nfs://192.168.1.1:/srv/install/ARCH/OS_VERSION/SP_VERSION/cd1  \
/srv/tftpboot/EFI/ARCH/boot

ARCHは、ターゲットのシステムアーキテクチャの対応するディレクトリに置き換えます。また、OS_versionSP_versionも、15.2項 「TFTPサーバのセットアップ」に記載されているパスに従って置き換えます。

--netオプションにNFSサーバを使用する代わりに、openSUSEリポジトリなどのHTTPリポジトリを使用することもできます。

tux > mksusecd --create image.iso \
--net=http://download.opensuse.org/tumbleweed/repo/oss/suse \
/srv/tftpboot/EFI/ARCH/boot

image.isoはDVDまたはCDに書き込むことも、ddを使用してUSBスティックに書き込むこともできます。

root # dd if=image.iso of=/dev/USB_DEVICE

USB_DEVICEは、USBスティックのデバイス名に置き換えます。デバイス名を十分に確認して、誤って別のドライブ上のデータを破壊することがないようにしてください。