このセクションでは、複雑なブートシナリオで必要となる設定タスクについて説明します。DHCP、PXEブート、TFTP、およびWake on LAN用の、すぐに使用できる設定例も含まれています。
DHCPサーバを設定するには、2種類の方法があります。 SUSE Linux Enterprise Server 9以降のYaSTには、操作に使用するGUIが用意されています。 他のSUSE Linuxベースの製品のユーザ、およびSUSE Linux以外の製品のユーザは、設定ファイルを手動で編集するか、または該当するOSのベンダーが提供するフロントエンドを使用してください。
TFTPサーバの場所をネットワーククライアントにアナウンスし、インストールターゲットが使用するブートイメージファイルを指定するには、DHCPサーバの設定に2つの宣言を追加します。
DHCPサーバのホストとなるマシンにrootとしてログインします。
++の順に選択します。
基本的なDHCPサーバのセットアップウィザードを完了します。
を選択し、起動ダイアログ終了の警告メッセージが表示されたら、を選択します。
ダイアログで、新しいシステムを配置するサブネットを選択して、.をクリックします。
ダイアログで、を選択して、サブネットの設定に新しいオプションを追加します。
filenameを選択して、値にpxelinux.0を入力します。
他のオプション(next-server)を追加して、TFTPサーバのアドレスを値に設定します。
をクリックした後、を選択して、DHCPサーバの設定を完了します。
特定のホストに静的IPアドレスを提供するようにDHCPを設定するには、DHCPサーバ設定モジュールのステップ 4から、ホストタイプの新たな宣言を追加します。このホスト宣言には、hardwareおよびfixed-addressオプションを追加して、適切な値を指定してください。
すべての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" specifies 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アドレスを明示的に指定してください。IPアドレスを明示的に指定するには、上記のDHCP設定を次の例に従って変更します。
group {
# PXE related stuff
#
# "next server" defines the tftp server that will be used
next server ip_tftp_server:
#
# "filename" specifies 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で接続することが可能になります。
SUSE Linux Enterprise ServerおよびSUSE Linux EnterpriseでYaSTを使用するか、またはxinetdとtftpをサポートしているLinuxオペレーティングシステム上で、手動でTFTPサーバを設定します。 TFTPサーバは、ターゲットシステムがブートして要求を送ったときに、ブートイメージを提供します。
rootとしてログインします。
++の順に選択して、要求されたパッケージをインストールします。
をクリックして、サーバが起動し、ブートルーチンに含まれるようにします。この. xinetdがブート時にtftpdを起動するようにするために必要なユーザ操作はありません。
をクリックして、マシンで動作しているファイアウォールで適切なポートを開きます。サーバでファイアウォールが動作していない場合には、このオプションは利用できません。
をクリックして、ブートイメージのディレクトリを参照します。デフォルトのディレクトリ/tftpbootが作成され、自動的に選択されます。
をクリックして、設定内容を適用し、サーバを起動します。
rootとしてログインして、tftpおよびxinetdパッケージをインストールします。
もしまだ存在していなければ、/srv/tftpbootおよび/srv/tftpboot/pxelinux.cfgディレクトリを作成します。
4.3.3項 「PXEブートの使用」で説明されているように、ブートイメージに必要な、適切なファイルを追加します。
/etc/xinetd.d/にあるxinetdの設定ファイルを変更して、ブート時にTFTPサーバが起動するようにします。
もしまだ存在していなければ、touch tftpコマンドで、このディレクトリにtftpというファイルを作成します。それからchmod 755 tftpを実行します。
tftpファイルを開いて、次の行を入力します。
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /srv/tftpboot
disable = no
}
このファイルを保存し、rcxinetd restartでxinetdをリスタートします。
PXE (Preboot Execution Environment)の仕様書(http://www.pix.net/software/pxeboot/archive/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=kernel module
このエントリを使って、PXEクライアントにネットワークインストールを行うために必要なネットワークカーネルモジュールを指定します。kernel moduleには、ネットワークデバイスの適切なモジュール名を指定してください。
netdevice=interface
このエントリは、ネットワークインストールで使用する、クライアントのネットワークインタフェースを定義します。これは、クライアントに複数のネットワークカードが装着されている場合にのみ必要です。適切に調整してください。ネットワークカードが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またはusesshとsshpasswordオプションを追加してください。\で区切られている行は、改行や\なしに、連続する1行として入力する必要があります。
default linux
# default
label linux
kernel linux
append initrd=initrd ramdisk_size=65536 insmod=e100 \
install=nfs://ip_instserver/path_instsource/product/CD1
# 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/CD1
# apic
label apic
kernel linux
append initrd=initrd ramdisk_size=65536 apic insmod=e100 \
install=nfs://ip_instserver/path_instsource/product/CD1
# 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
localboot 0
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ファイルも使用できます。
APPEND -何も追加しません。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に設定すると、ShiftShiftAltAltCaps LockかScroll Lockキーがセットされている場合にのみ、ブートプロンプトを表示します(デフォルト)。 flag_valを1に設定すると、常にブートプロンプトを表示します。
F2filenameF1filename..etc... F9filenameF10filename
ブートプロンプトでファンクションキーを押したときに、指定されたファイルを表示します。これは、ブート前のオンラインヘルプ(おそらくはカーネルコマンドラインのオプション)を設定するために使用することができます。以前のリリースとの後方互換性のために、F10をF0として指定することもできます。現在のところ、F11とF12にファイル名を関連付けることはできないことに注意してください。
システムのBIOSで、PXEブートの準備をします。これには、BIOSのブート順でのPXEオプションの設定も含まれます。
![]() | BIOSブートオーダー |
|---|---|
BIOSで、PXEオプションをハードディスクブートオプションの前に指定しないでください。さもないと、システムはブートのたびに再インストールを行おうとします。 | |
Wake on LAN (WOL)では、インストールの前に適切なBIOSオプションを有効にすることが必要です。また、ターゲットシステムのMACアドレスを記録しておいてください。このデータは、Wake on LANを開始するために必要です。
Wake on LANを使えば、コンピュータのMACアドレスを含む特別なネットワークパケットを使って、コンピュータの電源を入れることができます。世界中のすべてのコンピュータは一意のMAC識別子を持っているので、間違って別のコンピュータの電源を入れてしまう心配はありません。
![]() | 異なるネットワークセグメントにまたがるWake on LAN |
|---|---|
制御用のマシンが、起動すべきインストールターゲットと同じネットワークセグメント内にない場合には、WOL要求がマルチキャストとして送信されるように設定するか、またはそのネットワークセグメント内にあるマシンをリモートに制御して、要求の送信元として作動させてください。 | |
SUSE Linux Enterprise Server 9以降のユーザは、WOLと呼ばれるYaSTモジュールを使って、簡単にWake on LANを設定することができます。 他のバージョンのSUSE LinuxベースのOSユーザは、コマンドラインツールを使用してください。