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

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ブートのどちらを使用するかによって異なります。

  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で接続することが可能になります。

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

SUSEベースのインストールを使用している場合は、YaSTを使用してTFTPサーバをセットできます。また、手動でTFTPサーバをセットアップすることもできます。TFTPサーバは、ターゲットシステムがブートして要求を送ったときに、ブートイメージを提供します。

9.2.1 YaSTによるTFTPサーバのセットアップ

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

  2. YaST › ネットワークサービス › TFTPサーバの順に選択して、要求されたパッケージをインストールします。

  3. 有効にするをクリックして、サーバが起動し、ブートルーチンに含まれるようにします。この. xinetdがブート時にtftpdを起動するようにするために必要なユーザ操作はありません。

  4. ファイアウォール内でポートを開くをクリックして、マシンで動作しているファイアウォールで適切なポートを開きます。サーバでファイアウォールが動作していない場合には、このオプションは利用できません。

  5. 参照をクリックして、ブートイメージのディレクトリを参照します。デフォルトのディレクトリ/srv/tftpbootが作成され、自動的に選択されます。

  6. 完了をクリックして、設定内容を適用し、サーバを起動します。

9.2.2 TFTPサーバの手動セットアップ

  1. rootとしてログインして、tftpおよびxinetdパッケージをインストールします。

  2. /etc/xinetd.d/にあるxinetdの設定ファイルを変更して、ブート時にTFTPサーバが起動するようにします。

    1. もしまだ存在していなければ、touch tftpコマンドで、このディレクトリにtftpというファイルを作成します。それからchmod 755 tftpを実行します。

    2. tftpファイルを開いて、次の行を入力します。

      service tftp
      {
              socket_type            = dgram
              protocol               = udp
              wait                   = yes
              user                   = root
              server                 = /usr/sbin/in.tftpd
              server_args            = -s /srv/tftpboot
              disable                = no
      }
    3. このファイルを保存し、systemctl restart xinetdでxinetdをリスタートします。

9.3 TFTPサーバへのファイルのインストール

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

9.3.1 構造の準備

この手順では、OS_VERSIONおよびSP_VERSIONを、使用しているオペレーティングシステムとサービスパックのバージョンに置き換えてください。たとえば、sles12sp5を使用します。

  1. さまざまなオプションをサポートするため、/srv/tftpboot内に構造を作成します。

    root # mkdir -p /srv/tftpboot/BIOS/x86
    root # mkdir -p /srv/tftpboot/EFI/x86/boot
    root # mkdir -p /srv/tftpboot/EFI/aarch64/boot
    root # mkdir -p /srv/install/x86/OS_VERSION/SP_VERSION/cd1
    root # mkdir -p /srv/install/aarch64/OS_VERSION/SP_VERSION/cd1
  2. SUSEのWebサイトから、必要なアーキテクチャすべてのSUSE Linux Enterprise Server 12 SP5 のDVD ISOイメージをダウンロードします。

  3. 8.6項 「サーバ上のインストールメディアのISOイメージの使用」の説明に従って、ISOファイルをマウントします。再起動後にこれらのファイルを利用できるようにするため、/etc/fstabにエントリを作成します。標準インストールの場合は、DVD 1のみが必要です。

    root # mount -o loop PATH_TO_ISO /srv/install/ARCH/OS_VERSION/SP_VERSION/cd1/

    必要なすべてのアーキテクチャに対してこの手順を繰り返します。ARCHx86またはaarch64に置き換え、PATH_TO_ISOは対応するISOファイルのパスに置き換えてください。

  4. x86のBIOSおよびUEFIブートに必要なファイルkernelinitrd、および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/
  5. NFSでパス/srv/installが利用できることを確認します。詳細については、8.2項 「NFSリポジトリの手動設定」を参照してください。

9.3.2 x86用BIOSファイル

  1. pxelinux.0をTFTPフォルダにコピーして、設定ファイル用のサブフォルダを準備します。

    root # cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/BIOS/x86/
    root # mkdir /srv/tftpboot/BIOS/x86/pxelinux.cfg
  2. /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
  3. 上で編集した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を、使用しているオペレーティングシステムとサービスパックのバージョンに置き換えてください。たとえば、sles12sp5を使用します。

  1. UEFIブートに必要なすべての grub2 ファイルをコピーします。

    root # cd /srv/install/x86/OS_version/SP_version/cd1/EFI/BOOT
    root # cp -a bootx64.efi grub.efi MokManager.efi /srv/tftpboot/EFI/x86/
  2. カーネルおよび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
  3. ファイル/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を、使用しているオペレーティングシステムとサービスパックのバージョンに置き換えてください。たとえば、sles12sp5を使用します。

  1. 方法はx86_64のUEFI環境の場合に非常によく似ています。最初に、grub2-efi環境のUEFIブートに必要なファイルをコピーします。

    root # cd /srv/install/aarch64/OS_version/SP_version/cd1/EFI/BOOT
    root # cp -a bootaa64.efi /srv/tftpboot/EFI/aarch64/
  2. カーネルとinitrdをディレクトリ構造にコピーします。

    root # cd /srv/install/aarch64/OS_version/SP_version/cd1/boot/aarch64
    root # cp -a linux initrd /srv/tftpboot/EFI/aarch64/boot
  3. ファイル/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.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にファイル名を関連付けることはできないことに注意してください。

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

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

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

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識別子を持っているので、間違って別のコンピュータの電源を入れてしまう心配はありません。

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

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

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

9.8 YaSTを使ったWake on LAN

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

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

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

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

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