9 ターゲットシステムのブートの準備 #
SUSE® Linux Enterprise Serverは複数の方法でインストールすることができます。第6章 「YaSTによるインストール」SUSE Linux Enterprise Serverをインストールするには、で説明されている通常のメディアによるインストール以外に、ネットワークベースのさまざまなアプローチや、完全自動のアプローチも選択できます。
以下の例では、インストールデータを扱うためにNFSを使用しています。FTP、SMB、またはHTTPを使用する場合は、第8章 「インストールソースを保持するサーバのセットアップ」を参照してください。
以降のセクションでは、SUSE Linux Enterprise Serverを新たにインストールするシステムのことを「ターゲットシステム」または「インストールターゲット」と呼びます。リポジトリ(以前は「インストールソース」と呼ぶ)という言葉は、インストールデータのすべてのソースを表すために使用されます。これには、CDやDVDなどの物理メディアや、ネットワーク内でインストールデータを配布するネットワークサーバが含まれます。
このセクションでは、複雑なブートシナリオで必要となる設定タスクについて説明します。DHCP、PXEブート、TFTP、およびWake on LAN用の、すぐに使用できる設定例も含まれています。
以下の例では、DHCPサーバ、TFTPサーバ、およびNFSサーバがIP 192.168.1.1
の同じマシンに存在することを想定しています。すべてのサービスが異なるマシンに存在していてもまったく問題ありません。必ず、必要に応じてIPアドレスを変更してください。
9.1 DHCPサーバのセットアップ #
ネットワーククライアントに自動アドレス割り当てを提供するほか、DHCPサーバはTFTPサーバのIPアドレスと、ターゲットマシン上でインストールルーチンをよってプルされる必要のあるファイルについて通知します。ロードする必要があるファイルは、ターゲットマシンのアーキテクチャと、レガシBIOSブートまたはUEFIブートのどちらを使用するかによって異なります。
DHCPサーバのホストとなるマシンに
root
としてログインします。systemctl enable dhcpd
コマンドを実行して、DHCPサーバを有効にします。/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
と、IP192.168.1.1
のサーバ上のDHCP、DNS、およびゲートウェイを使用しています。使用されているIPアドレスはすべて、ネットワークレイアウトに従って変更してください。dhcpd.conf
で利用可能なオプションの詳細については、dhcpd.conf
のマニュアルページを参照してください。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で接続することが可能になります。
9.2 TFTPサーバのセットアップ #
SUSEベースのインストールを使用している場合は、YaSTを使用してTFTPサーバをセットできます。また、手動でTFTPサーバをセットアップすることもできます。TFTPサーバは、ターゲットシステムがブートして要求を送ったときに、ブートイメージを提供します。
9.2.1 YaSTによるTFTPサーバのセットアップ #
root
としてログインします。/srv/tftpboot
が作成され、自動的に選択されます。
9.2.2 TFTPサーバの手動セットアップ #
root
としてログインして、tftp
およびxinetd
パッケージをインストールします。/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 }
このファイルを保存し、
systemctl restart xinetd
でxinetdをリスタートします。
9.3 TFTPサーバへのファイルのインストール #
以下の手順では、32ビットおよび64ビットのx86アーキテクチャでUEFIおよびBIOSを搭載したターゲットマシン用にサーバを準備する方法を説明します。ここで準備する構造は、AArch64システム用にも使用できます。
9.3.1 構造の準備 #
この手順では、OS_VERSIONおよびSP_VERSIONを、使用しているオペレーティングシステムとサービスパックのバージョンに置き換えてください。たとえば、sles12
とsp5
を使用します。
さまざまなオプションをサポートするため、
/srv/tftpboot
内に構造を作成します。root #
mkdir -p /srv/tftpboot/BIOS/x86root #
mkdir -p /srv/tftpboot/EFI/x86/bootroot #
mkdir -p /srv/tftpboot/EFI/aarch64/bootroot #
mkdir -p /srv/install/x86/OS_VERSION/SP_VERSION/cd1root #
mkdir -p /srv/install/aarch64/OS_VERSION/SP_VERSION/cd1SUSEのWebサイトから、必要なアーキテクチャすべてのSUSE Linux Enterprise Server 12 SP5 のDVD ISOイメージをダウンロードします。
8.6項 「サーバ上のインストールメディアのISOイメージの使用」の説明に従って、ISOファイルをマウントします。再起動後にこれらのファイルを利用できるようにするため、
/etc/fstab
にエントリを作成します。標準インストールの場合は、DVD 1のみが必要です。root #
mount -o loop PATH_TO_ISO /srv/install/ARCH/OS_VERSION/SP_VERSION/cd1/必要なすべてのアーキテクチャに対してこの手順を繰り返します。ARCHは
x86
またはaarch64
に置き換え、PATH_TO_ISOは対応するISOファイルのパスに置き換えてください。x86のBIOSおよびUEFIブートに必要なファイル
kernel
、initrd
、およびmessage
を適切な場所にコピーします。root #
cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/root #
cp -a linux initrd message /srv/tftpboot/BIOS/x86/NFSでパス
/srv/install
が利用できることを確認します。詳細については、8.2項 「NFSリポジトリの手動設定」を参照してください。
9.3.2 x86用BIOSファイル #
pxelinux.0
をTFTPフォルダにコピーして、設定ファイル用のサブフォルダを準備します。root #
cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/BIOS/x86/root #
mkdir /srv/tftpboot/BIOS/x86/pxelinux.cfg/srv/tftpboot/BIOS/x86/pxelinux.cfg/default
を作成して、次の行を追加します。default install # hard disk label harddisk localboot -2 # install label install kernel linux append initrd=initrd install=nfs://192.168.1.1:/srv/install/x86/OS_version/SP_version/cd1 display message implicit 0 prompt 1 timeout 5
上で編集した
default
ファイルが反映されるように、ファイル/srv/tftpboot/BIOS/x86/message
を編集します。Welcome to the Installer Environment! To start the installation enter 'install' and press <return>. Available boot options: harddisk - Boot from Hard Disk (this is default) install - Installation
9.3.3 x86用UEFIファイル #
この手順では、OS_versionおよびSP_versionを、使用しているオペレーティングシステムとサービスパックのバージョンに置き換えてください。たとえば、sles12
とsp5
を使用します。
UEFIブートに必要なすべての grub2 ファイルをコピーします。
root #
cd /srv/install/x86/OS_version/SP_version/cd1/EFI/BOOTroot #
cp -a bootx64.efi grub.efi MokManager.efi /srv/tftpboot/EFI/x86/カーネルおよびinitrdのファイルをディレクトリ構造にコピーします。
root #
cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/root #
cp -a linux initrd /srv/tftpboot/EFI/x86/bootファイル
/srv/tftpboot/EFI/x86/grub.cfg
を作成し、少なくとも次の内容を記述します。set timeout=5 menuentry 'Install OS_version SP_version for x86_64' { linuxefi /EFI/x86/boot/linux \ install=nfs://192.168.1.1/srv/install/x86/OS_version/SP_version/cd1 initrdefi /EFI/x86/boot/initrd }
9.3.4 AArch64用UEFIファイル #
この手順では、OS_versionおよびSP_versionを、使用しているオペレーティングシステムとサービスパックのバージョンに置き換えてください。たとえば、sles12
とsp5
を使用します。
方法はx86_64のUEFI環境の場合に非常によく似ています。最初に、grub2-efi環境のUEFIブートに必要なファイルをコピーします。
root #
cd /srv/install/aarch64/OS_version/SP_version/cd1/EFI/BOOTroot #
cp -a bootaa64.efi /srv/tftpboot/EFI/aarch64/カーネルとinitrdをディレクトリ構造にコピーします。
root #
cd /srv/install/aarch64/OS_version/SP_version/cd1/boot/aarch64root #
cp -a linux initrd /srv/tftpboot/EFI/aarch64/bootファイル
/srv/tftpboot/EFI/grub.cfg
を作成して、少なくとも次の内容を追加します。menuentry 'Install OS_version SP_version' { linux /EFI/aarch64/boot/linux network=1 usessh=1 sshpassword="suse" \ install=nfs://192.168.1.1:/srv/install/aarch64/OS_version/SP_version/cd1 \ console=ttyAMA0,115200n8 initrd /EFI/aarch64/boot/initrd }
設定ファイルにこれを追加する際、他にもオプションがいくつかあり、シリアルコンソールを有効にしたり、SSH経由でのインストールを許可したりすることができます。これは、標準のKVMコンソールインターフェイスを持たないシステムで便利です。これは特定のARMプラットフォーム用にセットアップされます。
9.4 PXELINUXの設定オプション #
ここに記されているのは、PXELINUX設定ファイルで利用可能なオプションの一部です。
APPEND OPTIONS
カーネルのコマンドラインに1つまたは複数のオプションを追加します。これらは、自動ブートと手動ブートのどちらの場合でも追加されます。オプションはカーネルコマンドラインの先頭に追加されるので、通常は、明示的に入力したカーネルオプションによって上書きすることができます。
APPEND -
何も追加しません。
LABEL
セクション内で、APPEND
に引数として1つのハイフンを付ければ、グローバルなAPPEND
を上書きすることができます。DEFAULT KERNEL_OPTIONS...
デフォルトのカーネルコマンドラインを設定します。PXELINUXが自動的にブートする場合には、DEFAULTの後のエントリがブートプロンプトに対して入力されたときのように動作します。加えて、自動ブートであることを示すautoオプションも自動的に追加されます。
設定ファイルが存在しない、または設定ファイル内でDEFAULTエントリが定義されていない場合には、オプションの付かないカーネル名「linux」がデフォルトとなります。
IFAPPEND FLAG
FLAG値に応じて、特定のオプションをカーネルコマンドラインに追加します。
IFAPPEND
オプションは、PXELINUXでのみ使用可能です。FLAGでは、表9.1「IFAPPEND
から生成され、追加されたカーネルコマンドラインオプション」で説明されている値が必要です:表 9.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をブートし、ファイルのグローバルセクション(最初の
LABEL
コマンドの前)で指定されたものの代わりに、指定されたAPPEND
オプションを使用します。IMAGEのデフォルトはLABELと同じです。また、APPEND
が指定されなかった場合には、グローバルエントリがデフォルトとして使用されます(存在する場合)。最大で128のLABEL
エントリが使用できます。PXELINUXは次の構文を使用します。
label MYLABEL kernel MYKERNEL append MYOPTIONS
ラベルは、ファイル名の場合のように切り詰められるので、切り詰められた後も固有性が保たれるように決める必要があります。たとえば、「v2.6.30」と「v2.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に設定すると、ShiftかAltキーが押された場合、またはCaps LockかScroll Lockキーがセットされている場合にのみ、ブートプロンプトを表示します(デフォルト)。flag_val
を1に設定すると、常にブートプロンプトを表示します。F2 FILENAME F1 FILENAME ..etc... F9 FILENAME F10 FILENAME
ブートプロンプトでファンクションキーを押したときに、指定されたファイルを表示します。これは、ブート前のオンラインヘルプ(おそらくはカーネルコマンドラインのオプション)を設定するために使用することができます。以前のリリースとの後方互換性のために、F10を
F0
として入力することもできます。現在のところ、F11とF12にファイル名を関連付けることはできないことに注意してください。
9.5 ターゲットシステムでPXEブートの準備をする #
システムのBIOSで、PXEブートの準備をします。これには、BIOSのブート順でのPXEオプションの設定も含まれます。
BIOSで、PXEオプションをハードディスクブートオプションの前に指定しないでください。さもないと、システムはブートのたびに再インストールを行おうとします。
9.6 ターゲットシステムでWake on LANの準備をする #
Wake on LAN (WOL)では、インストールの前に適切なBIOSオプションを有効にすることが必要です。また、ターゲットシステムのMACアドレスを記録しておいてください。このデータは、Wake on LANを開始するために必要です。
9.7 Wake on LAN #
Wake on LANを使えば、コンピュータのMACアドレスを含む特別なネットワークパケットを使って、コンピュータの電源を入れることができます。世界中のすべてのコンピュータは固有のMAC識別子を持っているので、間違って別のコンピュータの電源を入れてしまう心配はありません。
制御用のマシンが、起動すべきインストールターゲットと同じネットワークセグメント内にない場合には、WOL要求がマルチキャストとして送信されるように設定するか、またはそのネットワークセグメント内にあるマシンをリモートに制御して、要求の送信元として作動させてください。
SUSE Linux Enterprise Serverのユーザは、WOLと呼ばれるYaSTモジュールを使って、簡単にWake on LANを設定することができます。他のバージョンのSUSE LinuxベースのOSユーザは、コマンドラインツールを使用してください。
9.8 YaSTを使ったWake on LAN #
root
としてログインします。このコンピュータの電源を入れるには、適切な項目を選択して、
をクリックします。
9.9 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_versionとSP_versionも、9.3項 「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スティックのデバイス名に置き換えます。デバイス名を十分に確認して、誤って別のドライブ上のデータを破壊することがないようにしてください。