このセクションでは、複雑なブートシナリオで必要となる設定タスクについて説明します。DHCP、PXEブート、TFTP、およびWake on LAN用の、すぐに使用できる設定例も含まれています。
DHCPサーバを設定するには、2種類の方法があります。YaST には、SUSE Linux Enterprise Serverの操作に使用するGUIが用意されています。設定ファイルは、手動で編集することもできます。DHCPサーバの詳細については、第22章 DHCPも参照してください。
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サーバの設定ファイルのサブネット設定に、次の行を追加します。
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.200 192.168.1.228;
# 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で接続することが可能になります。
TFTPサーバの設定では、SUSE Linux Enterprise ServerおよびSUSE Linux Enterprise ServerでYaSTを使用するか、またはxinetdとtftpをサポートしている他のLinuxオペレーティングシステム上で手動で行います。TFTPサーバは、ターゲットシステムがブートして要求を送ったときに、ブートイメージを提供します。
rootとしてログインします。
の順に選択して、要求されたパッケージをインストールします。
をクリックして、サーバが起動し、ブートルーチンに含まれるようにします。この. xinetdがブート時にtftpdを起動するようにするために必要なユーザ操作はありません。
をクリックして、マシンで動作しているファイアウォールで適切なポートを開きます。サーバでファイアウォールが動作していない場合には、このオプションは利用できません。
/tftpbootが作成され、自動的に選択されます。
をクリックして、ブートイメージのディレクトリを参照します。デフォルトのディレクトリをクリックして、設定内容を適用し、サーバを起動します。
rootとしてログインして、tftpおよびxinetdパッケージをインストールします。
もしまだ存在していなければ、/srv/tftpbootおよび/srv/tftpboot/pxelinux.cfgディレクトリを作成します。
セクション 14.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の完全な仕様について知ることができます。
インストールリポジトリのディレクトリboot/<architecture>/loaderに移動し、次のコマンドの入力により、linux、initrd、message、biostest、およびmemtestの各ファイルを/srv/tftpbootディレクトリにコピーします。
cp -a linux initrd message biostest memtest /srv/tftpboot
YaSTを使い、インストール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/<architecture>/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
/srv/tftpboot/pxelinux.cfg/defaultファイルを編集して、gfxboot、readinfo、およびframebufferで始まる行を削除します。
デフォルトのfailsafeおよびapicラベルのappend行に、以下のエントリを挿入します。
このエントリを使って、PXEクライアントにネットワークインストールを行うために必要なネットワークカーネルモジュールを指定します。kernel moduleには、ネットワークデバイスの適切なモジュール名を指定してください。
このエントリは、ネットワークインストールで使用する、クライアントのネットワークインタフェースを定義します。これは、クライアントに複数のネットワークカードが装着されている場合にのみ必要です。適切に調整してください。ネットワークカードが1枚の場合には、このエントリは省略できます。
このエントリは、NFSサーバとクライアントインストールのインストールソースを定義します。ip_instserverをインストールサーバの実際のIPアドレスと置き換えます。path_instsourceは、インストールソースの実際のパスと置き換えます。HTTP、FTP、またはSMBソースも同様の仕方で指定できます。プロトコルのプレフィックスはhttp、ftp、またはsmbになります。
重要: SSHまたはVNCブートパラメータなどの、他のブートオプションをインストールルーチンに渡す必要がある場合には、それらをinstallエントリに追加します。パラメータの概要といくつかの例は、セクション 14.4, ターゲットシステムをインストールのためにブートするを参照してください。
ヒント: カーネルとInitrdのファイル名の変更
カーネルとinitrdのイメージに異なるファイル名を使用することは可能です。これは、同じブートサーバから異なるオペレーティングシステムを提供する場合に便利です。ただし、PXE Boot用にtftpで設定されるファイル名では、ドットは1つしか許可されないので注意してください。
/srv/tftpboot/pxelinux.cfg/defaultファイルの例は、次のようなものです。インストールソースのプロトコルプレフィックスは、ネットワークのセットアップにマッチするように調整してください。そして、使用する接続方法を指定するために、installエントリにvncとvncpasswordまたはusesshとsshpasswordオプションを追加してください。\で区切られている行は、改行や\なしに、連続する1行として入力する必要があります。
default harddisk # default label linux kernel linux append initrd=initrd ramdisk_size=65536 \ install=nfs://ip_instserver/path_instsource/product/DVD1 # repair label repair kernel linux append initrd=initrd splash=silent repair=1 showopts # rescue label rescue kernel linux append initrd=initrd ramdisk_size=65536 rescue=1 # bios test label firmware kernel linux append initrd=biostest,initrd splash=silent install=exec:/bin/run_biostest showopts # 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設定ファイルで利用可能なオプションの一部です。
デフォルトのカーネルコマンドラインを設定します。PXELINUXが自動的にブートする場合には、DEFAULTの後のエントリがブートプロンプトに対して入力されたときのように動作します。加えて、自動ブートであることを示すautoオプションも自動的に追加されます。
設定ファイルが存在しない、または設定ファイル内にDEFAULTエントリが存在しない場合には、オプションの付かないカーネル名linux
がデフォルトとなります。
カーネルのコマンドラインに1つまたは複数のオプションを追加します。これらは、自動ブートと手動ブートのどちらの場合でも追加されます。オプションはカーネルコマンドラインの先頭に追加されるので、通常は、明示的に入力したカーネルオプションによって上書きすることができます。
ブートするカーネルとしてlabelが入力された場合、PXELINUXは代わりにimageをブートし、ファイルのグローバルセクション(最初のLABELコマンドの前)で指定されたものの代わりに、指定されたAPPENDオプションを使用します。imageのデフォルトはlabelと同じです。また、APPENDが指定されなかった場合には、グローバルエントリがデフォルトとして使用されます(あれば)。最大で128のLABELエントリが使用できます。
GRUBは次の構文を使用することに注意してください。
title mytitle kernel my_kernel my_kernel_options initrd myinitrd
PXELINUXは次の構文を使用します。
label mylabel kernel mykernel append myoptions
ラベルは、ファイル名の場合のように切り詰められるので、切り詰められた後も一意性が保たれるように決める必要があります。たとえば、v2.1.30
とv2.1.31
という2つのラベルは、PXELINUXでは区別できません。これらは切り詰められるとどちらも同じDOSファイル名になるからです。
カーネルは、Linuxのカーネルである必要はありません。ブートセクタやCOMBOOTファイルも使用できます。
何も追加しません。LABELセクション内で、APPENDに引数として1つのハイフンを付ければ、グローバルなAPPENDを上書きすることができます。
PXELINUXでは、KERNELオプションの代わりにLOCALBOOT 0を指定すると、 この特定のラベルが呼び出されて、カーネルブートの代わりにローカルディスクのブートが行われます。
引数 |
説明 |
---|---|
0 |
通常のブートを行う |
4 |
まだメモリ上に常駐しているUNDI (Universal Network Driver Interface)ドライバを使用して、ローカルブートを行う |
5 |
まだメモリ上に常駐しているUNDIドライバを含め、PXEスタック全体でローカルブートを行う |
他の値は定義されていません。UNDIやPXEスタックについて知らない場合は、0を指定してください。
自動的にブートする前に、ブートプロンプトをどれくらいの時間表示するかを指定します。単位は1/10秒です。タイムアウトは、ユーザがキーボードで何か入力するとキャンセルされます。この場合、ユーザがコマンドを入力するものとみなされます。タイムアウトの値を0に設定すると、タイムアウトは無効になります(これがデフォルトです)。タイムアウトの最大値は35996です(1時間よりほんの少しだけ短い時間です)。
flag_valを 0に設定すると、ShiftかAltキーが押された場合、またはCaps LockかScroll Lockキーがセットされている場合にのみ、ブートプロンプトを表示します(デフォルト)。flag_valを1に設定すると、常にブートプロンプトを表示します。
F2 filename F1 filename ..etc... F9 filename F10 filename
ブートプロンプトでファンクションキーを押したときに、指定されたファイルを表示します。これは、ブート前のオンラインヘルプ(おそらくはカーネルコマンドラインのオプション)を設定するために使用することができます。以前のリリースとの後方互換性のために、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のユーザは、WOLと呼ばれるYaSTモジュールを使って、簡単にWake on LANを設定することができます。他のバージョンのSUSE LinuxベースのOSユーザは、コマンドラインツールを使用してください。
rootとしてログインします。
の順に選択します。
をクリックして、ターゲットシステムのホスト名とMACアドレスを入力します。
このコンピュータの電源を入れるには、適切な項目を選択して、
をクリックします。