1 インストール前の構成

この章では、Oracle Linux 7のシステム要件、ソフトウェアの取得方法、ネットワーク・インストール・サーバーの設定方法、およびインストールの準備に役立つ一般的なガイドラインについて説明します。

システム要件

Oracle Linux 7には、Unbreakable Enterprise Kernel (UEK)とRed Hat Compatible Kernel (RHCK)の両方が含まれています。最大2048個の論理CPUおよび64TBのメモリーを持つx86-64システムにOracle Linux 7をインストールできます。理論上の上限は5120個の論理CPUと64TBのメモリーですが、Oracleではこの構成をまだテストしていません。推奨される最小構成は、2個の論理CPUと論理CPUごとに1GBのメモリーです。インストールに必要な最小ディスク領域は1GBですが、5GB以上をお薦めします。

システムがUEFIモードをサポートしており、このモードでOracle Linux 7をブートしてインストールする場合は、UEFIファームウェアによってはUEFI/MBRのブートが許可されないため、ターゲット・ディスクがGPT (GUIDパーティション・テーブル)を使用していることを確認してください。

システム要件とインストールに関する既知の問題の詳細は、Oracle Linux 7リリースおよび更新レベルのリリース・ノートを参照してください(Oracle® Linux 7ドキュメント)

UEKを使用したOracle Linuxが動作保証されているx86ベースのサーバーについては、https://linux.oracle.com/hardware-certificationsでOracle LinuxおよびOracle VMのハードウェア動作保証リストを参照してください。

UEKシステム要件および既知の問題については、Unbreakable Enterprise KernelドキュメントにあるUEKリリースのドキュメントを参照してください。

 インストール・メディアの取得および準備

Oracle Linuxディストリビューションは、無償でダウンロード、使用および配布できます。

Oracle Linuxインストール・メディアは、Oracle Software Delivery Cloud (https://edelivery.oracle.com/linux)からダウンロードできます。ログインすると、製品のリストを含む人気ダウンロード・ウィンドウが表示されます。

Oracle Linux 7インストール・メディアをダウンロードするには、次の手順を実行します。

  1. 製品を取得するには、次のいずれかの方法を選択します。

    • 製品が人気ダウンロード・ウィンドウに含まれている場合は、その製品を選択してカートに追加します。

    • 製品が人気ダウンロード・ウィンドウに含まれていない場合は、次の手順を実行します。

      1. 検索ボックスに「Oracle Linux 7」と入力し、「検索」をクリックします。

      2. 検索結果リストから、ダウンロードしてカートに追加する製品を選択します。

  2. カート・アイコンをクリックします。

  3. プラットフォーム/言語ドロップダウン・リストから、使用しているシステムのプラットフォームを選択して続行します。

  4. 次のページで、ライセンス条項に同意してから続行します。

  5. 選択したOracle Linuxパッケージの内容をリストにした最後のページで、「ダウンロード」をクリックします。

メディア・パックには、次のISOイメージが含まれています。

  • Oracle Linux 7 for x86_64 (64ビット)

    このISOイメージには、システムをブートし、Oracle Linuxをインストールするために必要なものすべてが含まれています。

  • Oracle Linux 7 Boot ISO image for x86_64 (64 bit)

    このISOイメージには、システムをブートし、インストールを開始するために必要なものすべてが含まれています。ただし、インストールを完了するには、ローカル・ディスクやNFS共有などのパッケージの場所を指定する必要があります。RHCKはインストール中に使用され、UEKカーネルとRHCKカーネルの両方がインストールされます。インストール後、システムではUEKカーネルがデフォルトでブートされます。

    ノート:

    Oracle Linux 7.3より前のリリースをインストールする場合は、Unbreakable Enterprise Kernelリリース3が使用されます。Oracle Linux 7.3以降の場合、デフォルトのカーネルはUnbreakable Enterprise Kernelリリース4です。

  • Oracle Linux 7 UEK Boot ISO image for x86_64 (64 bit)

    このISOイメージには、システムをブートし、インストールを開始するために必要なものすべてが含まれています。ただし、インストールを完了するには、たとえば、ローカル・ディスク、NFS共有、Oracle Linux Yum Server上のOracle Linuxリリースのベース・リポジトリなどのHTTPリソースで、パッケージの場所を指定する必要があります。UEKはインストール中に使用され、インストール後にブートされるデフォルトのカーネルです。このブート・イメージは、UEKでのみサポートされているハードウェアがある場合、またはRHCKブート・イメージの使用時にインストーラで問題が発生している場合に使用します。このISOイメージは、Oracle Linux 7.2以降用のメディア・パックで使用できます。

  • Oracle Linux 7ソースDVD 1および2

    これらのISOイメージには、リリースに同梱されているソフトウェア・パッケージのソース・コードが含まれています。

完全インストールISOイメージまたはブートISOイメージを使用して次のことを行うことができます。

ISOイメージを仮想DVD-ROMドライブで使用して、Oracle VMまたはOracle VM VirtualBox仮想マシン(ゲスト)をブートおよびインストールできます。

完全インストールISOイメージを使用すると、インストール中に使用するために、NFS共有やHTTPサーバー・ディレクトリなどのネットワークの場所を準備できます。一般的に、ブート・イメージを使用してインストールを開始する場合にこのようにします。「ネットワーク・インストール・サーバーの構成」を参照してください。

メディア・パックには、Oracle Linuxの特定のリリース更新に関連する追加コンテンツが含まれている場合があります。ドライバ更新ディスクなどの項目も含まれている場合があります。これらの項目は、特定の更新リリースのリリース・ノートで詳しく説明されています。

インストール後に、Oracle LinuxパッケージをUnbreakable Linux Network (ULN)およびOracle Linux Yum Serverから取得できます。詳細は、「インストール後の構成」を参照してください。

 CDまたはDVDインストール・メディアの準備

完全インストールISOイメージを格納できるだけの十分な記憶容量があるのは追記型DVDのみです。

追記型CDの記憶容量はブートISOイメージには十分ですが、完全インストールISOイメージには不十分です。

ISOイメージ・ファイルをCDまたはDVDに書き込むには、cdrecordなどのコマンドを使用します。たとえば:

sudo cdrecord -v -eject speed=16 dev=ATA:0,2,0 file_name.iso

cdrecord -scanbusコマンドを使用して、CDまたはDVDに対応するSCSIサブシステムおよびデバイスを表示できます。

 USBインストール・メディアの準備

システムのファームウェアでUSBドライブからのブートがサポートされている場合は、USBドライブ上にブート・イメージを作成し、これを使用してOracle Linuxをインストールできます。USBドライブの容量によっては、完全インストールISOイメージまたはブートISOイメージを使用して、ブート可能USBドライブを作成できます。

ブート可能USBドライブを作成するには、ddコマンドを使用するか、USBドライブへのISOイメージの書込みに対応した別のユーティリティを使用します。次のステップでは、ddコマンドの使用方法について説明しています。

注意:

この手順を実行すると、ドライブ上の既存データがすべて破棄されます。既存のハード・ディスク・パーティションを上書きしてしまわないように、USBドライブのデバイス名を正しく指定してください。次の手順では、USBドライブが/dev/sdb1デバイスであると仮定していますが、このことはシステムによっては該当しない場合があります。

  1. USBドライブをOracle Linuxシステムに挿入します。

    オペレーティング・システムがデバイス上に任意のファイル・システムをマウントしている場合、そのファイル・システムをアンマウントします。たとえば:

    sudo df /media/USB
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/sdb1                35346     35346         0 100% /media/USB
    sudo umount /dev/sdb1
  2. ddコマンドを使用して、ISOイメージ・ファイルの内容をUSBデバイスに書き込みます。

    sudo dd if=iso_file_name of=usb_device bs=bytes

    次に例を示します。

    sudo dd if=./full_image.iso of=/dev/sdb bs=512k

    USBデバイス上のパーティションではなく、USBデバイス・ノードにISOの内容を直接書き込む必要があることに注意してください。これは、デバイスがブート可能であり、内容が適切な場所にあることを確認するのに役立ちます。

これで、USBドライブを取り外し、それを使用してシステムをブートできるようになります。

 完全インストールISOイメージの内容の抽出

Oracle Linux 7の完全インストールISOイメージの内容を抽出するには:
  1. /mntなどの適切なマウント・ポイントに、完全インストールISOイメージをマウントします。
    sudo mount -t iso9660 -o loop full_image.iso /mnt
  2. 完全インストールISOイメージの内容を抽出します。

    使用するコマンドで、ISOイメージのルートにある.treeinfoファイルが必ず抽出されるようにします。たとえば:

    cp -a -T mount_dir output_dir
    たとえば、/mntにマウントされているISOイメージを/var/OSimage/OL7のNFS共有に抽出しています:
    cp -a -T /mnt /var/OSimage/OL7
    たとえば、/mntにマウントされているISOイメージを/var/www/html/OSimage/OL7のWebサーバー・ディレクトリに抽出しています:
    cp -a -T /mnt /var/www/html/OSimage/OL7
  3. DVDイメージをアンマウントします。
    sudo umount mount_dir

 ネットワーク・インストール・サーバーの構成

ブートISOまたはPreboot eXecution Environment (PXE)を使用してシステムをインストールする場合、RPMパッケージをホストするようにネットワーク・インストール・サーバーを設定できます。このサーバーには、Oracle Linux 7の完全インストールDVDイメージ(約4.5GB)をホストできるだけの十分なストレージ・スペースが必要であり、かつ、NFSまたはHTTPのいずれかを使用してイメージ・ファイルをOracle Linux 7のインストール先システムに提供するように、サーバーを構成する必要があります。

ネットワーク・インストール・サーバーを構成するには:

  1. NFSサーバーまたはHTTPサーバーを設定します。

    手順は、使用しているOracle Linuxリリースの管理者ガイドを参照してください。

  2. Oracle Linux 7の完全インストールISOイメージをダウンロードします。

    「インストール・メディアの取得および準備」を参照してください。

  3. NFSサーバーまたはHTTPサーバーがネットワーク・インストール・サーバーとして動作するように構成します。

  4. (オプション) PXEクライアントへのインストールのサポートを構成します。

    複数のシステムがインストールされているデプロイメントでは、同じネットワーク上に構成されているTrivial File Transfer Protocol (TFTP)サーバーからPXEブート・イメージをロードするようにシステムを構成することにより、ネットワークベースのインストールを実行するのが一般的です。Dynamic Host Configuration Protocol (DHCP)を使用して、FTPサーバー上のブート・ファイルの場所をクライアントに提示します。

    PXEクライアント・インストールをサポートする場合は、Dynamic Host Configuration Protocol (DHCP)およびTrivial File Transfer Protocol (TFTP)サービスを構成します。「PXEクライアントをサポートするためのDHCPおよびTFTPサービスの構成」または「PXEクライアントをサポートするためのdnsmasqの構成」を参照してください。

 既存のNFSサーバーの構成

次の手順は、Oracle Linux 7システムでのNFS共有の構成に適用されます。Oracle Linux 6でNFS共有を構成する手順については、Oracle® Linux 6: 管理者ガイドを参照してください

既存のNFSサーバーを構成するには:

  1. NFS共有としてエクスポートするディレクトリ(/var/OSimage/OL7など)を作成します。

    mkdir -p /var/OSimage/OL7
  2. Oracle Linux 7のインストール・ファイルをNFS共有にコピーします。

    完全インストールISOイメージをNFS共有にコピーすると、インストール・プログラムでは、インストール・ソースが完全インストールISOイメージであることを検出し、そのファイルからインストールを実行できます。

    必要に応じて、完全インストールISOイメージの内容をNFS共有に抽出できます。「完全インストールISOイメージの内容の抽出」を参照してください。

  3. exportfsコマンドを使用して、ディレクトリをエクスポートします。

    sudo exportfs -i -o options client:export_dir

    たとえば、192.168.1サブネット上のNFSクライアントに対してディレクトリ/var/OSimage/OL7に対する読取り専用アクセスを許可するには、次のようにします。

    sudo exportfs -i -o ro 192.168.1.0/24:/var/OSimage/OL7

    または、/etc/exports構成ファイルを編集してディレクトリのエントリを追加します。たとえば:

    /var/OSimage/OL7 192.168.1.0/24(ro)

    その後、exportfs -raコマンドを使用して、/etc/exportsファイルに定義されているNFS共有をリロードします。

 既存のApache HTTPサーバーの構成

この項では、Oracle Linux 7システム上でHTTPディレクトリを構成する手順について説明します。Oracle Linux 6システムでHTTPディレクトリを構成する手順については、Oracle® Linux 6: 管理者ガイドを参照してください。

既存のApache HTTPサーバーを構成するには:

  1. 完全インストールISOイメージの内容を格納するために使用するディレクトリを作成します。

    HTTPサーバー構成ファイル(/etc/httpd/conf/httpd.conf)に定義されているDocumentRoot階層にディレクトリ(/var/www/html/OSimage/OL7など)を作成します。

    mkdir -p /var/www/html/OSimage/OL7
  2. 完全インストールISOイメージの内容をHTTPディレクトリに抽出します。

    「完全インストールISOイメージの内容の抽出」を参照してください。

  3. HTTPサーバー構成ファイル/etc/httpd/conf/httpd.confを編集し、<Directory>セクションを追加します。

    次に例を示します。
    <Directory "/var/www/html/OSimage/OL7">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    <Directory DocumentRoot>セクションの終了</Directory>文の後にこのセクションを配置します。

    Indexesオプションは、ディレクトリ階層を参照できるようにする場合にのみ必要となり、インストールには必要ありません。

  4. SELinuxがenforcingモードで有効になっているときに、/var/www/html以外のディレクトリにISOイメージを抽出した場合は、semanageおよびrestoreconコマンドを使用して、抽出後のファイルに対してSELinuxセキュリティ・コンテキストをリストアしてください。

    semanageおよびrestoreconコマンドは、policycoreutils-pythonおよびpolicycoreutilsパッケージにより提供されます。

    1. semanageコマンドを使用して、ディレクトリ階層のデフォルト・ファイル・タイプをhttpd_sys_content_tとして定義します。
      sudo /usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/var/OSimage(/.*)?"
    2. restoreconコマンドを使用して、ディレクトリ階層全体にファイル・タイプを適用します。
      sudo /sbin/restorecon -R -v /var/OSimage

    詳細は、httpd_selinux(8)マニュアル・ページを参照してください。

 PXEクライアントをサポートするためのDHCPおよびTFTPサービスの構成

PXEクライアントにOracle Linux 7をインストールするために必要なDHCPサービスとTFTPサービスは、同じホスト上で実行する必要はありません。DHCPサーバーとTFTPサーバーを個別に構成する場合は、DHCPサーバーでTFTPサーバーを定義し、クライアントがそのTFTPサーバーからブート・ローダー、インストール・カーネルおよび初期RAMディスク・ファイルをダウンロードできるようにする必要があります。

DHCPサーバーおよびTFTPサーバーでインストール・パッケージをホストする必要はなく、個別のネットワーク・インストール・ソースを使用できます。TFTPサーバーでは、クライアントがインストール・パッケージを取得できるようにネットワーク・インストール・ソースを定義できます。

PXEクライアント・インストール・リクエストに対してDHCPサービスを構成するには:

  1. dhcpパッケージをインストールします。

    sudo yum install dhcp
  2. /etc/dhcp/dhcpd.confを編集し、PXEクライアントに対するエントリを構成します。たとえば:

    set vendorclass = option vendor-class-identifier;
    option pxe-system-type code 93 = unsigned integer 16;
    set pxetype = option pxe-system-type;
    
    option domain-name "example.com";
    
    subnet 10.0.0.0 netmask 255.255.255.0 {
      option domain-name-servers 10.0.0.1;
      option broadcast-address 10.0.0.255;
      option routers 10.0.0.1;
      default-lease-time 14400;
      max-lease-time 28800;
      if substring(vendorclass, 0, 9)="PXEClient" {
        if pxetype=00:06 or pxetype=00:07 {
            filename "efi/grubx64.efi";
        } else {
            filename "pxelinux/pxelinux.0";
        }
      }
      pool {
        range 10.0.0.101 10.0.0.200;
      }
      next-server 10.0.0.6;
    }
    
    host svr1 {
    hardware ethernet 08:00:27:c6:a1:16;
    fixed-address 10.0.0.253;
    option host-name "svr1";
    } 
    
    host svr2 {
    hardware ethernet 08:00:27:24:0a:56;
    fixed-address 10.0.0.254;
    option host-name "svr2";
    } 

    この例では、10.0.0/24サブネット上に10.0.0.101から10.0.0.200までの範囲で、一般に使用可能なIPアドレスのプールを構成しています。サブネット上のPXEブート・システムはいずれも、filenameパラメータでそのPXEタイプに対して指定されているブート・ローダーを使用します。UEFIベースのクライアント用のブート・ローダー・ファイルgrubx64.efiは、TFTPサーバー・ディレクトリのefiサブディレクトリ内にあります。BIOSベースのクライアント用のブート・ローダー・ファイルpxelinux.0は、pxelinuxサブディレクトリ内にあります。

    next-server文は、クライアントがブート・ローダー・ファイルをダウンロードできるTFTPサーバーのIPアドレスを指定します。

    ノート:

    DHCPサービスとTFTPサービスのホストとして同じサーバーを使用している場合でも、next-server文を含める必要があります。そうしない場合、一部のブート・ローダーは構成ファイルの取得方法を判断できないため、クライアントをリブートしたり、ハングしたり、boot:grub>などのプロンプトを表示します。

    静的IPアドレス10.0.0.253および10.0.0.254は、svr1およびsvr2用に予約されています(これらは各自のMACアドレスで識別されます)。

    サーバーに複数のネットワーク・インタフェースが存在する場合、DHCPサービスでは/etc/dhcp/dhcpd.confファイルに基づいてリスニング対象インタフェースが決定されます。

  3. DHCPサービスを起動して、リブート後に起動するように構成します。

    sudo systemctl start dhcpd
    sudo systemctl enable dhcpd

    /etc/dhcp/dhcpd.confに変更を加えた場合は、dhcpdサービスを再起動してください。

  4. DHCPリクエストを受け入れるようにファイアウォールを構成します。たとえば:

    sudo firewall-cmd --zone=zone --add-port=67-68/udp
    sudo firewall-cmd --zone=zone --add-port=67-68/udp --permanent

PXEクライアント・インストール・リクエストに対してTFTPサービスを構成するには:

  1. tftp-serverパッケージをインストールします。

    sudo yum install tftp-server
  2. /etc/xinetd.d/tftpを編集し、xinetdがTFTPサービス(in.tftpd)を起動できるようにdisable属性とserver_args属性を変更し、TFTPサーバー・ディレクトリを定義します。たとえば:

    service tftp
    {
        socket_type = dgram
        protocol    = udp
        wait        = yes
        user        = root
        server      = /usr/sbin/in.tftpd
        server_args = -s /var/lib/tftpboot
        disable     = no
        per_source  = 11
        cps         = 100 2
        flags       = IPv4
    }

    この例では、TFTPサーバー・ディレクトリを/var/lib/tftpbootとして定義しており、これがデフォルトです。

    xinetdはTFTPリクエストを受信すると、in.tftpdを起動し、リクエストをそれに転送します。

    構成属性の詳細は、xinetd.conf(5)マニュアル・ページを参照してください。

  3. ブート・ローダー・ファイルを取得します。

    PXEクライアントでは、Linuxインストール・カーネル(vmlinuz)をロードするためにブート・ローダーが必要になります。

    BIOSベースのPXEクライアントの場合は、syslinuxパッケージにあるpxelinux.0ブート・ローダーを使用できます。このパッケージをインストールするには:

    sudo yum install syslinux

    UEFIベースのPXEクライアントの場合は、grub2‑efiパッケージにあるgrubx64.efiブート・ローダーを使用できます。ブート・ローダーおよびカーネルを検証できるように、shimパッケージにある最初のステージのブート・ローダーshim.efiも必要です。これらのパッケージを一時的な場所にダウンロードするか、完全インストールISOイメージからコピーします。その後、パッケージの内容を抽出します。

    cd /tempdir
    sudo rpm2cpio grub2-efi-version.rpm | cpio -idmv 
    sudo rpm2cpio shim-version.rpm | cpio -idmv

    ノート:

    /etc/dhcp/dhcpd.conf内のDHCP構成でブート・ローダーとしてshim.efiを指定してください。セキュア・ブートにはshimブート・ローダーが必要ですが、それを使用していない場合は、署名を検証せずにGrubを初期化します。

  4. ブート・ローダーとその構成ファイルを格納するためのディレクトリをTFTPサーバー・ディレクトリのサブディレクトリとして作成します。

    BIOSベースのクライアントの場合、pxelinux/pxelinux.cfgディレクトリを作成します。たとえば:

    mkdir -p /var/lib/tftpboot/pxelinux/pxelinux.cfg

    UEFIベースのクライアントの場合、efiディレクトリを作成します。たとえば:

    mkdir -p /var/lib/tftpboot/efi
  5. ブート・ローダー・ファイル、インストール・カーネル(vmlinuz)およびRAMディスク・イメージ・ファイル(initrd.img)をTFTPサーバーのサブディレクトリにコピーします。

    BIOSベースのクライアントの場合、BIOSブート・ローダー・ファイル、インストール・カーネルおよびRAMディスク・イメージ・ファイルをpxelinuxディレクトリにコピーします。

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
    wget http://10.0.0.11/OSimage/OL7/isolinux/vmlinuz -O /var/lib/tftpboot/pxelinux/vmlinuz
    wget http://10.0.0.11/OSimage/OL7/isolinux/initrd.img -O /var/lib/tftpboot/pxelinux/initrd.img

    UEFIベースのクライアントの場合、BIOSブート・ローダー・ファイル、インストール・カーネルおよびRAMディスク・イメージ・ファイルをefiディレクトリにコピーします。

    cp /tempdir/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/efi
    cp /tempdir/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/efi
    cp /tempdir/boot/efi/EFI/redhat/MokManager.efi /var/lib/tftpboot/efi
    wget http://10.0.0.11/OSimage/OL7/isolinux/vmlinuz -O /var/lib/tftpboot/efi/vmlinuz
    wget http://10.0.0.11/OSimage/OL7/isolinux/initrd.img /var/lib/tftpboot/efi/initrd.img

    ノート:

    shim.efiおよびMokManager.efiファイルをコピーして、クライアントでのセキュア・ブートをサポートします。MokManager.efiには、EFIバイナリへの署名に使用するキーを管理するためのユーティリティが備えられています。

    前述の例では、HTTPを使用して、別のネットワーク・インストール・サーバーからインストール・カーネルおよびRAMディスク・イメージ・ファイルを取得しています。インストール・パッケージがTFTPサーバーでもホストされている場合は、ファイルのローカル・コピーを使用できます。

    PXEクライアントに別のオペレーティング・システム・バージョンをインストールできるようにするには、カーネルおよびRAMディスク・イメージ・ファイルの名前をvmlinuz-ol7およびinitrd-ol7.imgなどに変更します。または、カーネルおよびRAMディスク・イメージ・ファイルをefi/ol7pxelinux/ol7などのサブディレクトリにコピーします。

  6. ブート・ローダー構成ファイルを作成します。

    少なくとも、次に示すデフォルトのブート・ローダー構成ファイルを作成してください。

    pxelinux/pxelinux.cfg/default

    BIOSベースのPXEクライアント用のデフォルトのブート・ローダー構成ファイル。

    efi/grub.cfg

    UEFIベースのPXEクライアント用のデフォルトのブート・ローダー構成ファイル。

    クライアントがBIOSベースかUEFIベースかに応じて、pxelinux/pxelinux.cfgまたはefiにそのクライアントに固有のブート・ローダー構成ファイルを追加で作成できます。詳細は、次を参照してください。
  7. システムでSELinuxがenforcingモードで有効になっているときに、/var/lib/tftpboot以外のTFTPサーバー・ディレクトリを構成した場合は、semanageコマンドを使用してTFTPサーバー・ディレクトリ階層のデフォルト・ファイル・タイプをtftpdir_tとして定義してから、restoreconコマンドを使用してファイル・タイプをディレクトリ階層全体に適用します。たとえば:

    sudo /usr/sbin/semanage fcontext -a -t tftpdir_t "/var/tftpboot(/.*)?"
    sudo /sbin/restorecon -R -v /var/tftpboot

    詳細は、tftpd_selinux(8)マニュアル・ページを参照してください。

    ノート:

    semanageおよびrestoreconコマンドは、policycoreutils-pythonおよびpolicycoreutilsパッケージにより提供されます。

  8. TFTPネットワーク・ソケットを有効にし、リブート後に起動するように構成します。

    sudo systemctl start tftp.socket
    sudo systemctl enable tftp.socket

    ブート・ローダー構成ファイルの内容を変更した場合、TFTPサービスを再起動する必要はありません。

  9. TFTPリクエストを受け入れるようにファイアウォールを構成します。たとえば:

    sudo firewall-cmd --zone=zone --add-service=tftp
    sudo firewall-cmd --zone=zone --add-service=tftp --permanent

 PXEクライアントをサポートするためのdnsmasqの構成

dnsmasqは、小規模なネットワークでDNSフォワーダ、DHCPサーバーおよびTFTPサーバーとして機能するように設計されています。dnsmasqを使用すると、DHCPサービスとTFTPサービスを個別に構成する必要がありません。dnsmasqの詳細は、dnsmasq(8)マニュアル・ページ、/usr/share/doc/dnsmasq-versionおよびhttp://www.thekelleys.org.uk/dnsmasq/doc.htmlを参照してください。

dnsmasqサーバーでインストール・パッケージをホストする必要はなく、個別のネットワーク・インストール・ソースを使用できます。

PXEクライアント・インストール・リクエストに対してdnsmasqを構成するには:

  1. dnsmasqパッケージをインストールします。

    sudo yum install dnsmasq
  2. /etc/dnsmasq.confを編集し、ネットワーク上のPXEクライアントおよび他のシステムに対するエントリを構成します。たとえば:

    interface=em1
    dhcp-range=10.0.0.101,10.0.0.200,6h
    dhcp-host=80:00:27:c6:a1:16,10.0.0.253,svr1,infinite
    dhcp-boot=pxelinux/pxelinux.0
    dhcp-match=set:efi-x86_64,option:client-arch,7
    dhcp-boot=tag:efi-x86_64,grubx64.efi
    enable-tftp
    tftp-root=/var/lib/tftpboot

    サンプルの構成ファイル内の行により、次の処理が行われます。

    interface=em1

    インタフェースem1のみの受信クライアント・リクエストをリスニングします。

    dhcp-range=10.0.0.101,10.0.0.200,6h

    6時間のリースで、10.0.0/24サブネット上に10.0.0.101から10.0.0.200までの範囲で、一般に使用可能なIPアドレスのプールを予約します。

    ノート:

    dhcp-rangeの設定は、dnsmasqが提供するDHCPサービスを有効にするために必要です。静的アドレスは構成するがアドレス・プールは構成しない場合、静的ネットワーク・アドレスとキーワードstaticおよびinfiniteを指定してください。たとえば:

    dhcp-range=10.0.0.253,static,infinite
    dhcp-host=80:00:27:c6:a1:16,10.0.0.253,svr1,infinite

    svr1に対して無期限のリース時間でIPアドレス10.0.0.253を予約します(これはMACアドレス08:00:27:c6:a1:16で識別されます)。

    dhcp-boot=pxelinux/pxelinux.0

    ブート・ローダー・ファイル(この例ではBIOSベースのPXEクライアント用のもの)の場所を指定します。

    dnsmasqではなく個別のTFTPサーバーを使用する場合は、ブート・ローダー・パスの後にそのIPアドレスを指定します。たとえば:

    dhcp-boot=pxelinux/pxelinux.0,10.0.0.11
    dhcp-boot=tag:efi-x86_64,grubx64.efi

    タグefi‑x86_64により識別されたPXEクライアント(この例ではUEFIベースのPXEクライアント)で必要になるブート・ローダー・ファイルの場所を指定します。efi‑x86_64タグはdhcp‑match=set:efi‑x86_64行に定義されており、UEFIベースのx86_64クライアントに適用されます(アーキテクチャ・コード7)。

    この例では、grubx64.efiブート・ローダーを指定しています。UEFIクライアントの場合、ブート・ローダーとしてshim.efiを指定します。

    dnsmasqではなく個別のTFTPサーバーを使用する場合は、ブート・ローダー・パスの後にそのIPアドレスを指定します。たとえば:

    dhcp-boot=tag:efi-x86_64,grubx64.efi,10.0.0.11
    enable-tftp

    dnsmasqが提供するTFTPサービスを有効にします。

    tftp-root=/var/lib/tftpboot

    TFTPが提供するファイルのルート・ディレクトリを指定します。クライアントがホスト上のファイルにアクセスできないように、dnsmasqは、パス要素として..を指定するリクエストを拒否します。

    個別のTFTPサーバーの構成方法の詳細は、「PXEクライアントをサポートするためのDHCPおよびTFTPサービスの構成」を参照してください。

  3. dnsmasqをキャッシング専用のネーム・サーバーとして設定する場合は、他のネーム・サーバー・エントリより前に、127.0.0.1のネーム・サーバー・エントリを構成してください。

    dnsmasqは、127.0.0.1エントリを無視して、DNS問合せをリスト内の他のネーム・サーバーに転送します。NetworkManagerサービスが有効になっている場合、グラフィカル・アプレット、nm-connection-editorユーティリティまたはnm-tuiユーティリティを使用して、ネーム・サービス・エントリを構成できます。あるいは、/etc/resolv.conf内に直接ネーム・サーバー・エントリを構成することもできます。たとえば:
    nameserver 127.0.0.1
    nameserver 10.0.0.8
    nameserver 10.0.0.4
  4. dnsmasqサービスを起動して、リブート後に起動するように構成します。

    sudo systemctl start dnsmasq
    sudo systemctl enable dnsmasq

    /etc/dnsmasq.confに変更を加えた場合は、dnsmasqサービスを再起動してください。ブート・ローダー構成ファイルの内容を変更した場合、サービスを再起動する必要はありません。

  5. ファイアウォールを構成します。

    • DHCPリクエストを受け入れるようにファイアウォールを構成します。たとえば:

      sudo firewall-cmd --zone=zone --add-port=67-68/udp
      sudo firewall-cmd --zone=zone --add-port=67-68/udp --permanent
    • dnsmasqでTFTPサービスを有効にする場合は、TFTPリクエストを受け入れるようにファイアウォールを構成します。たとえば:

      sudo firewall-cmd --zone=zone --add-service=tftp
      sudo firewall-cmd --zone=zone --add-service=tftp --permanent
    • dnsmasqをキャッシング専用のネーム・サーバーとして設定する場合は、DNSリクエストを受け入れるようにファイアウォールを構成します。

      sudo firewall-cmd --zone=zone --add-service=dns
      sudo firewall-cmd --zone=zone --add-service=dns --permanent

PXEクライアント・インストール・リクエストに対してdnsmasq TFTPサービスを構成するには:

  1. ブート・ローダー・ファイルを取得します。

    PXEクライアントでは、Linuxインストール・カーネル(vmlinuz)をロードするためにブート・ローダーが必要になります。

    BIOSベースのPXEクライアントの場合は、syslinuxパッケージにあるpxelinux.0ブート・ローダーを使用できます。このパッケージをインストールするには:

    sudo yum install syslinux

    UEFIベースのPXEクライアントの場合は、grub2‑efiパッケージにあるgrubx64.efiブート・ローダーを使用できます。ブート・ローダーおよびカーネルを検証できるように、shimパッケージにある最初のステージのブート・ローダーshim.efiも必要です。これらのパッケージを一時的な場所にダウンロードするか、完全インストールISOイメージからコピーします。その後、パッケージの内容を抽出します。

    sudo cd /tempdir
    sudo rpm2cpio grub2-efi-version.rpm | cpio -idmv 
    sudo rpm2cpio shim-version.rpm | cpio -idmv

    ノート:

    /etc/dnsmasq.conf内のDHCP構成でブート・ローダーとしてshim.efiを指定してください。セキュア・ブートにはshimブート・ローダーが必要ですが、それを使用していない場合は、署名を検証せずにGrubを初期化します。

  2. ブート・ローダーとその構成ファイルを格納するためのディレクトリをTFTPサーバー・ディレクトリのサブディレクトリとして作成します。

    BIOSベースのクライアントの場合、pxelinux/pxelinux.cfgディレクトリを作成します。たとえば:

    sudo mkdir -p /var/lib/tftpboot/pxelinux/pxelinux.cfg

    UEFIベースのクライアントの場合、dnsmasq TFTPサーバーでは、ブート・ローダーと構成ファイルが、/var/lib/tftpbootのようなルート・ディレクトリに含まれていることを想定します。このディレクトリが存在することを確認してください。

  3. ブート・ローダー・ファイル、インストール・カーネル(vmlinuz)およびRAMディスク・イメージ・ファイル(initrd.img)をTFTPサーバーのサブディレクトリにコピーします。

    BIOSベースのクライアントの場合、BIOSブート・ローダー・ファイル、インストール・カーネルおよびRAMディスク・イメージ・ファイルをpxelinuxディレクトリにコピーします。

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
    wget http://10.0.0.11/OSimage/OL7/isolinux/vmlinuz -O /var/lib/tftpboot/pxelinux/vmlinuz
    wget http://10.0.0.11/OSimage/OL7/isolinux/initrd.img -O /var/lib/tftpboot/pxelinux/initrd.img

    UEFIベースのクライアントの場合、UEFIブート・ローダー・ファイル、インストール・カーネルおよびRAMディスク・イメージ・ファイルをTFTPサーバーのルート・ディレクトリにコピーします。

    cp /tempdir/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot
    cp /tempdir/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot
    cp /tempdir/boot/efi/EFI/redhat/MokManager.efi /var/lib/tftpboot
    wget http://10.0.0.11/OSimage/OL7/isolinux/vmlinuz -O /var/lib/tftpboot/vmlinuz
    wget http://10.0.0.11/OSimage/OL7/isolinux/initrd.img /var/lib/tftpboot/initrd.img

    ノート:

    shim.efiおよびMokManager.efiファイルをコピーします。MokManager.efiには、EFIバイナリの署名に使用するキーを管理するためのユーティリティが用意されており、セキュア・ブートが有効になっている場合はshim.efiが署名を検証します。Grub 2構成によっては、インストール・カーネルとRAMディスク・イメージ・ファイルをサブディレクトリにコピーすることもできます。

    前述の例では、HTTPを使用して、別のネットワーク・インストール・サーバーからインストール・カーネルおよびRAMディスク・イメージ・ファイルを取得しています。インストール・パッケージがdnsmasqサーバーでもホストされている場合は、ファイルのローカル・コピーを使用できます。

    PXEクライアントに別のオペレーティング・システム・バージョンをインストールできるようにするには、カーネルおよびRAMディスク・イメージ・ファイルの名前をvmlinuz-ol7およびinitrd-ol7.imgなどに変更します。または、カーネルおよびRAMディスク・イメージ・ファイルをefi/ol7pxelinux/ol7などのサブディレクトリにコピーします。

  4. ブート・ローダー構成ファイルを作成します。

    少なくとも、次に示すデフォルトのブート・ローダー構成ファイルを作成してください。

    pxelinux/pxelinux.cfg/default

    BIOSベースのPXEクライアント用のデフォルトのブート・ローダー構成ファイル。

    grub.cfg

    UEFIベースのPXEクライアント用のデフォルトのブート・ローダー構成ファイル。

    クライアントがBIOSベースかUEFIベースかに応じて、pxelinux/pxelinux.cfgまたはTFTPサーバーのルート・ディレクトリにそのクライアントに固有のブート・ローダー構成ファイルを追加で作成できます。詳細は、次を参照してください。
  5. システムでSELinuxがenforcingモードで有効になっているときに、/var/lib/tftpboot以外のTFTPサーバー・ディレクトリを構成した場合は、semanageコマンドを使用してTFTPサーバー・ディレクトリ階層のデフォルト・ファイル・タイプをtftpdir_tとして定義してから、restoreconコマンドを使用してファイル・タイプをディレクトリ階層全体に適用します。たとえば:

    sudo /usr/sbin/semanage fcontext -a -t tftpdir_t "/var/tftpboot(/.*)?"
    sudo /sbin/restorecon -R -v /var/tftpboot

    ノート:

    semanageおよびrestoreconコマンドは、policycoreutils-pythonおよびpolicycoreutilsパッケージにより提供されます。

 BIOSベースのPXEクライアントのブート・ローダー構成

defaultファイルは、BIOSベースのPXEクライアント用のデフォルトのブート・ローダー構成ファイルであり、pxelinux構成設定を使用します。たとえば:

prompt 0
default ol7
timeout 0

label ol7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://10.0.0.11/OSimage/OL7 inst.ks.sendmac \
inst.ks=http://10.0.0.11/ksfiles/ol7_cfg.ks

boot:プロンプトが表示されるようにするには、promptの値を1に変更します。このプロンプトを表示するには、コンソールで[Shift]または[Alt]を押します。

defaultディレクティブは、デフォルトのブート・エントリをそのlabel値、ol7によって識別します。

pxelinuxは、timeout/10秒後に、デフォルトのブート・エントリを使用してクライアントをブートします。

kernelディレクティブはカーネル実行可能ファイルの名前を定義し、appendディレクティブは、カーネルのロード時に追加する必要のあるパラメータ(RAMディスク・イメージの名前やKickstartファイルの場所など)を定義します。

カーネルとRAMディスク・イメージのファイルのパスは、ブート・ローダーが含まれるサブディレクトリ(pxelinuxなど)からの相対パスであるとみなされます。pxelinux/OL7などのサブディレクトリにvmlinuzおよびinitrd.imgファイルを配置する場合は、正しい相対パスを指定するようにしてください。

ブート・ローダー構成を画面にメニューとして表示する場合は、menu.c32モジュールを使用します。これを実行するには:

  1. ブート・ローダー・ディレクトリにmenu.c32モジュールをコピーします。

    cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/pxelinux
  2. モジュールを使用するようにブート・ローダー構成を編集します。たとえば:

    default menu.c32
    timeout 0
    
    menu title Install Oracle Linux
    label Install Oracle Linux 7
    kernel vmlinuz
    append initrd=initrd.img inst.repo=http://10.0.0.11/OSimage/OL7 inst.ks.sendmac \
    inst.ks=http://10.0.0.11/ksfiles/ol7_cfg.ks

異なるタイプのクライアントをサポートするために、次の要素に基づく名前の構成ファイルを作成できます。

  • クライアントのUUID (たとえば、a8943708-c6f6-51b9-611e-74e6ac80b93d)

  • イーサネットのARPハードウェア・タイプを表す01-の後にクライアントのMACアドレスを付けて、コロンではなくダッシュを使用して各バイト値を区切った名前(たとえば、01-80-00-27-c6-a1-16)

    ノート:

    ファイル名ではMACアドレスを小文字にする必要があります。

  • 16進表記で、先頭に0xのないクライアントのIPアドレス(たとえば、0A0000FDはIPアドレス10.0.0.253を表す)

    構成ファイルの数を減らすには、クライアントをIPアドレス範囲別にグループ化します。たとえば、0A0000Eは、10.0.0.224から10.0.0.239までのIPアドレス範囲を表します。

構成ファイルをpxelinux/pxelinux.cfgに配置します。

ブート・ローダーは、一致するファイル名が見つかるまで、次の順序で構成ファイルを検索します。
  • UUID (たとえば、a8943708-c6f6-51b9-611e-74e6ac80b93d)

  • 01-MAC_address (たとえば、01-80-00-27-c6-a1-16)

  • IPアドレスの完全32ビット(たとえば、0A0000FD)

  • IPアドレスの最上位28ビット(たとえば、0A0000F)

  • IPアドレスの最上位24ビット(たとえば、0A0000)

  • IPアドレスの最上位20ビット(たとえば、0A000)

  • IPアドレスの最上位16ビット(たとえば、0A00)

  • IPアドレスの最上位12ビット(たとえば、0A0)

  • IPアドレスの最上位8ビット(たとえば、0A)

  • IPアドレスの最上位4ビット(たとえば、0)

  • default (デフォルト構成ファイル)

複数の構成ファイルに同一の内容が含まれている場合は、次の例のように、lnコマンドを使用してそれらのファイルをプライマリ・コピーにリンクできます。
sudo ln primary-ol7 0A0000FC
sudo ln primary-ol7 0A0000FD
sudo ln primary-ol7 0A0000FE

pxelinuxの詳細は、http://www.syslinux.org/wiki/index.php/PXELINUXを参照してください。

自動インストールを実行するためのKickstartの構成と使用の詳細は、「Kickstartを使用した自動インストール」を参照してください。

 UEFIベースのPXEクライアントのブート・ローダー構成

grub.cfgファイルは、UEFIベースのPXEクライアント用のデフォルトのブート・ローダー構成ファイルであり、次のようなGRUB 2構成設定を使用します。

set default 0
set timeout=10

menuentry 'ol7' {
  echo "Loading efi/vmlinuz"
  linuxefi efi/vmlinuz inst.repo=http://10.0.0.11/OSimage/OL7 inst.ks.sendmac \
  inst.ks=http://10.0.0.11/ksfiles/ol7_cfg.ks
  echo "Loading efi/initrd.img"
  initrdefi efi/initrd.img
  echo "Booting installation kernel"
}

linuxefiディレクティブはカーネル実行可能ファイルの名前を定義し、カーネルのロード時に追加する必要のあるパラメータ(インストール・パッケージの場所やこれらのパッケージへのアクセス方法など)を定義します。この例では、HTTPを使用して、指定したURLからパッケージをインストールしています。initrdefiディレクティブはRAMディスク・イメージの名前を定義します。

カーネルとRAMディスク・イメージのファイルのパスは、ブート・ローダーが含まれるサブディレクトリ(efiなど)からの相対パスであるとみなされます。efi/OL7などのサブディレクトリにvmlinuzおよびinitrd.imgファイルを配置する場合は、正しい相対パスを指定するようにしてください。

デフォルトでは、カーネルとRAMディスク・イメージのファイルが転送中であっても、GRUB 2によってその状況が示されることはありません。前述の例では、echo文を使用して簡単な進行状況を表示しています。

様々なタイプのクライアントをサポートするために、grub2.cfg-client-IDという名前の構成ファイルを作成できます。ここで、client-IDは次のいずれかです。
  • イーサネットのARPハードウェア・タイプを表す01-の後にクライアントのMACアドレスを付けて、コロンではなくダッシュを使用して各バイト値を区切った名前(たとえば、01-80-00-27-c6-a1-16)

    ノート:

    ファイル名ではMACアドレスを小文字にする必要があります。

  • 16進表記で、先頭に0xのないクライアントのIPアドレス(たとえば、0A0000FDはIPアドレス10.0.0.253を表す)

    構成ファイルの数を減らすには、クライアントをIPアドレス範囲別にグループ化します。たとえば、0A0000Eは、10.0.0.224から10.0.0.239までのIPアドレス範囲を表します。

構成ファイルをブート・ローダー・ファイルと同じディレクトリ(efiなど)に配置します。

ブート・ローダーは、一致するファイル名が見つかるまで、次の順序で構成ファイルを検索します。
  • 01-MAC_address (たとえば、grub.cfg-01-80-00-27-c6-a1-16)

  • IPアドレスの完全32ビット(たとえば、grub.cfg-0A0000FD)

  • IPアドレスの最上位28ビット(たとえば、grub.cfg-0A0000F)

  • IPアドレスの最上位24ビット(たとえば、grub.cfg-0A0000)

  • IPアドレスの最上位20ビット(たとえば、grub.cfg-0A000)

  • IPアドレスの最上位16ビット(たとえば、grub.cfg-0A00)

  • IPアドレスの最上位12ビット(たとえば、grub.cfg-0A0)

  • IPアドレスの最上位8ビット(たとえば、grub.cfg-0A)

  • IPアドレスの最上位4ビット(たとえば、grub.cfg-0)

  • grub.cfg (デフォルト構成ファイル)

複数の構成ファイルに同一の内容が含まれている場合は、次の例のように、lnコマンドを使用してそれらのファイルをプライマリ・コピーにリンクできます。
# ln primary-ol7 grub.cfg-0A0000FC
# ln primary-ol7 grub.cfg-0A0000FD
# ln primary-ol7 grub.cfg-0A0000FE

GRUB 2の詳細は、info grubコマンドを入力してGRUB 2マニュアルにアクセスしてください。

自動インストールを実行するためのKickstartの構成と使用の詳細は、「Kickstartを使用した自動インストール」を参照してください。

インストールのプランニング

インストールのプランニングは、使用目的に適したシステムの導入に役立ちます。「Oracle Linuxの手動インストール」の説明に従って、インストール・プロセスを十分に把握してください。

システムのインストールをプランニングするときの主要な考慮事項を次に示します。

ストレージ

オペレーティング・システムをインストールする、ローカル・ハード・ディスクなどのストレージ・デバイス。ストレージ・デバイスがすでにパーティション化されている場合は、インストールに使用できるパーティションを識別してください。インストール・プログラムにより、必要になるディスク領域が示され、領域が不足している場合は警告が表示されます。

オペレーティング・システムのファイル・システムがインストールされるストレージ・デバイスのレイアウト(論理ポリューム管理またはRAID構成の対応を含む)。

各ファイル・システム(//boot/home/var/tmpなど)に必要な領域の量、ファイル・システム・タイプおよびファイル・システムの基礎となるブロック・デバイスに暗号化が必要かどうか。

iSCSIまたはFCoE接続の場合、WWIDまたは使用されるポート、ターゲットおよびLUN。

ネットワーク

インストールに使用するネットワーク・インタフェース(ある場合)、およびDHCPを使用しない場合はそのIPアドレス、ネットマスクおよびゲートウェイ設定。

システムの完全修飾ドメイン名、またはDHCPを使用してネットワーク設定を提供する場合はホスト名のみ。

インストール中に構成する他のネットワーク・インタフェース、およびDHCPを使用しない場合はそのIPアドレス、ネットマスクおよびゲートウェイ設定。

インストール中に構成する、VLANや結合などの専用ネットワーク・インタフェース。

ソフトウェア

システムの使用目的に応じてシステムにインストールする必要がある、Webサーバーなどのソフトウェア・パッケージ。

パッケージのインストールに使用するすべての追加リポジトリおよびプロキシ設定のURL。