このセクションでは、複雑なブートシナリオで必要となる設定タスクについて説明します。 DHCP、PXEブート、TFTP、およびWake on LAN用の、すぐに使用できる設定例も含まれています。
SUSE Linuxでは、DHCPサーバのセットアップは、適切な設定ファイルを手動で編集することによって行います。 このセクションでは、既存のDHCPサーバの構成を拡張して、TFTP、PXE、およびWOL環境でサービスを行うのに必要なデータを提供する方法について説明します。
すべてのDHCPサーバが行う必要があるのは、ネットワーククライアントへのアドレスの自動割り当てのほかに、TFTPサーバ、およびターゲットマシンがインストールルーチンで取得するファイルのIPアドレスをアナウンスすることです。
DHCPサーバのホストとなるマシンにrootとしてログインします。
/etc/dhcpd.confというDHCPサーバの設定ファイルに、以下の行を追加します。
group {
# PXE related stuff
#
# "next server" defines the tftp server that will be used
next server ip_tftp_server:
#
# "filename" specifiies the pxelinux image on the tftp server
# the server runs in chroot under /srv/tftpboot
filename "pxelinux.0";
}ip_of_the_tftp_serverは、TFTPサーバの実際のIPアドレスで置き換えてください。
dhcpd.confで利用可能なオプションの詳細については、dhcpd.confのmanページを参照してください。
rcdhcpd restartを実行して、DHCPサーバをリスタートします。
PXEおよびWake on LANインストールのリモート制御にSSHを使う場合には、DHCPがインストールターゲットに提供するIPアドレスを明示的に指定してください。 そのためには、上記のDHCP設定を、以下の例に従って修正します。
group {
# PXE related stuff
#
# "next server" defines the tftp server that will be used
next server ip_tftp_server:
#
# "filename" specifiies the pxelinux image on the tftp server
# the server runs in chroot under /srv/tftpboot
filename "pxelinux.0";
host test { hardware ethernet mac_address;
fixed-address some_ip_address; }
}
host文は、インストールターゲットのホスト名になります。 ホスト名とIPアドレスを特定のホストにバインドするには、そのシステムのハードウェア(MAC)アドレスを調べて、それを指定する必要があります。 この例で使用されているすべての変数を、使用する環境にマッチする実際の値で置き換えてください。
DHCPサーバをリスタートすると、サーバは指定されたホストに静的なIPを提供するので、そのシステムにSSHで接続することが可能になります。
TFTPサーバの設定は、YaSTで行えます。または、xinetdとtftpをサポートしているLinuxオペレーティングシステムであれば手動で行えます。 TFTPサーバは、ターゲットシステムがブートして要求を送ったときに、ブートイメージを提供します。
rootとしてログインします。
++の順に選択して、要求されたパッケージをインストールします。
[]をクリックして、サーバが起動し、ブートルーチンに含まれるようにします。 この点についてはこれ以上の操作は必要ありません。 xinetdはブート時にtftpdを起動します。
[]をクリックして、マシンで動作しているファイアウォールで適切なポートを開きます。 サーバでファイアウォールが動作していない場合には、このオプションは利用できません。
[]をクリックして、ブートイメージのディレクトリをブラウズします。
デフォルトのディレクトリ/tftpbootが作成され、自動的に選択されます。
[]をクリックして、設定内容を適用し、サーバを起動します。
rootとしてログインして、tftpおよびxinetdパッケージをインストールします。
もしまだ存在していなければ、/srv/tftpbootおよび/srv/tftpboot/pxelinux.cfgディレクトリを作成します。
項1.3.3. 「PXEブート」で説明されているように、ブートイメージに必要な、適切なファイルを追加します。
/etc/xinetd.d/にあるxinetdの設定ファイルを修正して、ブート時にftfpサーバが起動するようにします。
PXE (Preboot Execution Environment)の仕様書(ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf)では、いくらかの技術的な背景情報と、PXEの完全な仕様について知ることができます。
インストールレポジトリのディレクトリに移動し、次のコマンドを入力して、linux、initrd、message、およびmemtestファイルを/srv/tftpbootディレクトリにコピーします。
cp -a boot/loader/linux boot/loader/initrd
boot/loader/message boot/loader/memtest /srv/tftpbootYaSTを使い、インストールCDまたはDVDから直接syslinuxパッケージをインストールします。
次のコマンドを入力して、/usr/share/syslinux/pxelinux.0ファイルを/srv/tftpbootディレクトリにコピーします。
cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot
インストールレポジトリにディレクトリに移動し、次のコマンドを入力して、isolinux.cfgファイルを/srv/tftpboot/pxelinux.cfg/defaultにコピーします。
cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
/srv/tftpboot/pxelinux.cfg/defaultファイルを編集して、gfxboot、readinfo、およびframebufferで始まる行を削除します。
デフォルトのfailsafeおよびapicラベルのappend行に、以下のエントリを挿入します。
insmod=e100
このエントリにより、Intel 100MBit/sネットワークカード用のカーネルモジュールがPXEクライアントにロードされます。 このエントリはクライアントのハードウェアに依存するので、それに応じて調整してください。 Broadcom GigaBitネットワークカードの場合には、このエントリをinsmod=bcm5700にします。
netdevice=eth0
このエントリは、ネットワークインストールで使用する、クライアントのネットワークインタフェースを定義します。 これは、クライアントに複数のネットワークカードが装着されている場合にのみ必要です。適切に調整してください。 ネットワークカードが1枚の場合には、このエントリは省略できます。
install=nfs://ip_instserver/path_instsource/CD1
このエントリは、NFSサーバとクライアントインストールのインストールソースを定義します。 ip_instserverは、インストールサーバの実際のIPアドレスで置き換えてください。 path_instsourceは、インストールソースの実際のパスで置き換えてください。 HTTP、FTP、またはSMBソースも同様の仕方で指定できます。プロトコルのプレフィックスはhttp、ftp、またはsmbになります。
![]() | 重要項目 |
|---|---|
SSHまたはVNCブートパラメータなどの、他のブートオプションをインストールルーチンに渡す必要がある場合には、それらを | |
/srv/tftpboot/pxelinux.cfg/defaultファイルの例は、次のようなものです。 インストールソースのプロトコルプレフィックスは、ネットワークのセットアップにマッチするように調整してください。そして、使用する接続方法を指定するために、installエントリにvncとvncpasswordまたはsshとsshpasswordオプションを追加してください。 \で区切られている行は、改行や\なしに、連続する1行として入力する必要があります。
default linux
# default
label linux
kernel linux
append initrd=initrd ramdisk_size=65536 insmod=e100 \
install=nfs://ip_instserver/path_instsource/product
# failsafe
label failsafe
kernel linux
append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \
insmod=e100 install=nfs://ip_instserver/path_instsource/product
# apic
label apic
kernel linux
append initrd=initrd ramdisk_size=65536 apic insmod=e100 \
install=nfs://ip_instserver/path_instsource/product
# manual
label manual
kernel linux
append initrd=initrd ramdisk_size=65536 manual=1
# rescue
label rescue
kernel linux
append initrd=initrd ramdisk_size=65536 rescue=1
# memory test
label memtest
kernel memtest
# hard disk
label harddisk
kernel linux
append SLX=0x202
implicit 0
display message
prompt 1
timeout 100 ip_instserverとpath_instsourceは、セットアップで使用した値で置き換えてください。
以下のセクションは、このセットアップで使用するPXELINUXオプションの簡単なリファレンスとなっています。 使用可能なオプションについての詳細は、/usr/share/doc/packages/syslinux/にある、syslinuxパッケージのドキュメントを参照してください。
ここに記されているのは、PXELINUX設定ファイルで利用可能なオプションの一部です。
DEFAULT kernel options...
デフォルトのカーネルコマンドラインを設定します。 PXELINUXが自動的にブートする場合には、DEFAULTの後のエントリがブートプロンプトに対して入力されたときのように動作します。加えて、自動ブートであることを示すautoオプションも自動的に追加されます。
設定ファイルが存在しない、または設定ファイル内にDEFAULTエントリが存在しない場合には、オプションの付かないカーネル名「linux」がデフォルトとなります。
APPEND options...
カーネルのコマンドラインに1つまたは複数のオプションを追加します。 これらは、自動ブートと手動ブートのどちらの場合でも追加されます。 オプションはカーネルコマンドラインの先頭に追加されるので、通常は、明示的に入力したカーネルオプションによって上書きすることができます。
LABEL label KERNEL image APPEND options...
ブートするカーネルとしてlabelが入力された場合、PXELINUXは代わりにimageをブートし、ファイルのグローバルセクション(最初のLABELコマンドの前)で指定されたものの代わりに、指定されたAPPENDオプションを使用します。 imageのデフォルトはlabelと同じです。また、APPENDが指定されなかった場合には、グローバルエントリがデフォルトとして使用されます(あれば)。 最大で128のLABELエントリが使用できます。
GRUBは次の構文を使用することに注意してください。
title mytitle kernelmy_kernelmy_kernel_optionsinitrdmyinitrd
一方、PXELINUXは次の構文を使用します。
labelmylabelkernelmykernelappendmyoptions
ラベルは、ファイル名の場合のように切り詰められるので、切り詰められた後も一意性が保たれるように決める必要があります。 たとえば、「v2.1.30」と「v2.1.31」という2つのラベルは、PXELINUXでは区別できません。これらは切り詰められるとどちらも同じDOSファイル名になるからです。
カーネルは、Linuxのカーネルである必要はありません。ブートセクタやCOMBOOTファイルも使用できます。
何も追加しません。 LABELセクション内で、APPENDに引数として1つのハイフンを付ければ、グローバルなAPPENDを上書きすることができます。
LOCALBOOT type
PXELINUXでは、KERNELオプションの代わりにLOCALBOOT 0を指定すると、 この特定のラベルが呼び出されて、カーネルブートの代わりにローカルディスクのブートが行われます。
|
引数 |
説明 |
|---|---|
|
|
通常のブートを行う |
|
|
まだメモリ上に常駐しているUNDI (Universal Network Driver Interface)ドライバを使用して、ローカルブートを行う |
|
|
まだメモリ上に常駐しているUNDIドライバを含め、PXEスタック全体でローカルブートを行う |
他の値は定義されていません。 UNDIやPXEスタックについて知らない場合は、0を指定してください。
TIMEOUT time-out
自動的にブートする前に、ブートプロンプトをどれくらいの時間表示するかを指定します。単位は1/10秒です。 タイムアウトは、ユーザがキーボードで何か入力するとキャンセルされます。この場合、ユーザがコマンドを入力するものとみなされます。 タイムアウトの値を0に設定すると、タイムアウトは無効になります(これがデフォルトです)。
タイムアウトの最大値は35996です(1時間よりほんの少しだけ短い時間です)。
PROMPT flag_val
flag_valを0に設定すると、ShiftかAltが押された場合、またはCaps LockかScroll lockがセットされている場合にのみ、ブートプロンプトを表示します(これがデフォルトです)。 flag_valを1に設定すると、常にブートプロンプトを表示します。
F2filenameF1filename..etc... F9filenameF10filename
ブートプロンプトでファンクションキーを押したときに、指定されたファイルを表示します。 これは、ブート前のオンラインヘルプ(おそらくはカーネルコマンドラインのオプション)を設定するために使用することができます。 以前のリリースとの後方互換性のために、F10をF0として指定することもできます。 現在のところ、F11とF12にファイル名を関連付けることはできないことに注意してください。
システムのBIOSで、PXEブートの準備をします。これには、BIOSのブート順でのPXEオプションの設定も含まれます。
![]() | 警告 |
|---|---|
BIOSで、PXEオプションをハードディスクブートオプションの前に指定しないでください。 さもないと、システムはブートのたびに再インストールを行おうとします。 | |
Wake on LAN (WOL)では、インストールの前に適切なBIOSオプションを有効にすることが必要です。 また、ターゲットシステムのMACアドレスを記録しておいてください。 このデータは、Wake on LANを開始するために必要です。
Wake on LANを使えば、マシンのMACアドレスを含む特別なネットワークパケットが送られたときに、マシンの電源を入れることができます。 世界中のすべてのマシンは一意のMAC識別子を持っているので、間違って別なマシンの電源を入れてしまう心配はありません。
![]() | 重要項目 |
|---|---|
制御用のマシンが、起動すべきインストールターゲットと同じネットワークセグメント内にない場合には、WOL要求がマルチキャストとして送信されるように設定するか、またはそのネットワークセグメント内にあるマシンをリモートに制御して、要求を送信元させてください。 | |