2. ISO イメージを使った作業

本セクションでは、Red Hat が提供する ISO イメージの抽出と、本ガイドにある手順による変更を含む新規ブートイメージの作成方法について説明します。

2.1. Red Hat Enterprise Linux ブートイメージの抽出

インストーラーのカスタマイズを開始する前に、Red Hat が提供するブートイメージをダウンロードします。このイメージは、本ガイドでの手順を実行するために必要なものです。
Red Hat Enterprise Linux 7 ブートメディアは、アカウントにログインした後に Red Hat カスタマーポータル から取得できます。Red Hat Enterprise Linux 7 イメージのダウンロードには、アカウントに十分なエンタイトルメントが必要になります。
カスタマーポータルから Binary DVD または Boot ISO イメージをダウンロードします。これらのイメージは、本ガイドの手順を使用することで修正できます。KVM Guest ImageSupplementary DVD といった他のダウンロード可能なイメージは修正できません。(ServerComputeNode といった) イメージの バリアント はここでは関係なく、どのバリアントでも使用することができます。
Binary DVD および Boot ISO ダウンロードに関する詳細な手順については、Red Hat Enterprise Linux 7 インストールガイドを参照してください。
選択した iso イメージのダウンロードが完了したら、以下の手順に従ってコンテンツを抽出し、修正できるようにします。

手順1 ISO イメージの抽出

  1. ダウンロードしたイメージをマウントします。
    # mount -t iso9660 -o loop path/to/image.iso /mnt/iso
    path/to/image.iso をダウンロードした ISO へのパスで置き換えます。ターゲットとするディレクトリー (/mnt/iso) が存在し、そこに他のものがマウントされていないことを確認します。
  2. ISO イメージのコンテンツを配置する作業ディレクトリーを作成します。
    $ mkdir /tmp/ISO
  3. マウントしたイメージの全コンテンツを作業ディレクトリーにコピーします。-p オプションを使ってファイルおよびディレクトリーのパーミッションと所有権を保持するようにしてください。
    # cp -pRf /mnt/iso /tmp/ISO
  4. イメージをアンマウントします。
    # umount /mnt/iso
展開が終了したら、ISO イメージは /tmp/ISO に抽出され、ここでコンテンツの修正ができます。「ブートメニューのカスタマイズ」 または 「インストーラーアドオンの開発」 に進みます。変更を加えたら、「カスタムブートイメージの作成」 の指示に従って新規の修正済み ISO イメージを作成します。

2.2. product.img ファイルの作成

product.img イメージファイルは、インストーラーのランタイムに既存ファイルを置き換える、または新たなファイルを追加する、ファイルを含むアーカイブです。起動中の Anaconda はブートメディアの images/ ディレクトリーからこのファイルを読み込みます。そしてこのファイル内にあるファイルを使用してインストーラーのファイルシステム内にある同一名のファイルを置換します。インストーラーのカスタマイズにはこれが必要になります (例えば、デフォルトのイメージをカスタムのもので置き換える場合)。product.img イメージに含まれるディレクトリーは、インストーラーと同じディレクトリー構造である必要があります。
本ガイドで説明する 2 つのトピックでは、製品のイメージを作成する必要があります。以下の表では、ディレクトリー構造内におけるイメージファイルの正しい場所を示しています。

表1 アドオンおよび Anaconda Visuals の場所

カスタムコンテンツのタイプファイルシステムの場所
Pixmaps (ロゴ、サイドバー、トップバー、など)/usr/share/anaconda/pixmaps/
インストール進捗画面のバナー/usr/share/anaconda/pixmaps/rnotes/en/
GUI スタイルシート/usr/share/anaconda/anaconda-gtk.css
Installclasses (製品名変更用)/run/install/product/pyanaconda/installclasses/
Anaconda アドオン/usr/share/anaconda/addons/
以下の方法で有効な product.img ファイルを作成します。

手順2 product.img の作成

  1. /tmp などの作業ディレクトリーに移動し、product/ という名前のサブディレクトリーを作成します。
    $ cd /tmp
    $ mkdir product/
  2. 置換するファイルの場所と同じディレクトリー構造を作成します。例えば、アドオンをテストする場合、これがインストールシステムの /usr/share/anaconda/addons に配置されているとすると、作業ディレクトリー内で同じ構造を作成します。
    $ mkdir -p product/usr/share/anaconda/addons

    注記

    インストーラーのランタイムファイルシステムをブラウズするには、インストールを起動し、仮想コンソール1 に切り替え(Ctrl+Alt+F1) その後に 2 つ目の tmux ウィンドウに切り替えます (Ctrl+b 2)。これでファイルシステムをブラウズするためのシェルプロンプトが開きます。
  3. カスタマイズしたファイル (この例では、Anaconda 用のカスタムアドオン) を新規作成したディレクトリーに配置します。
    $ cp -r ~/path/to/custom/addon/ product/usr/share/anaconda/addons/
  4. インストーラーに追加するすべてのファイルについて、上記の 2 つのステップを繰り返します (ディレクトリー構造の作成および変更済みファイルの移動)。
  5. product/ ディレクトリーに移動し、product.img アーカイブを作成します。
    $ cd product
    $ find . | cpio -c -o | gzip -9cv > ../product.img
    これで product.img ファイルが product/ ディレクトリーの 1 つ上のレベルに作成されます。
  6. product.img ファイルを抽出した ISO イメージの images/ ディレクトリーに移動します。
この手順が完了したら、カスタムファイルは適切なディレクトリーに配置されます。「カスタムブートイメージの作成」 に進んで変更を含む新たな起動可能な ISO イメージを作成することができます。product.img ファイルはインストーラーの起動時に自動的に読み込まれます。

注記

ブートメディアに product.img ファイルを追加する代わりに、このファイルを別の場所に配置して、ブートメニューで inst.updates= ブートオプションを使用してこれを読み込むこともできます。この場合、イメージファイルの名前は好きなものにすることができ、配置場所はどこでも構いません (USB フラッシュドライブ、ハードディスク、HTTP、FTP または NFS サーバーなど。ただし、インストールシステムからアクセスできること)。
Anaconda ブートオプションの詳細については、Red Hat Enterprise Linux 7 インストールガイド を参照してください。

2.3. カスタムブートイメージの作成

Red Hat が提供するブートイメージのカスタマイズが完了したら、加えた変更を含む新規イメージを作成します。以下の手順に従います。

手順3 ISO イメージの作成

  1. 加えた変更がすべて作業ディレクトリーに含まれていることを確認します。例えば、アドオンをテストする場合は、product.imgimages/ ディレクトリーに配置します。
  2. 作業ディレクトリーが抽出した ISO イメージのトップレベルのディレクトリーであることを確認します。例えば、 /tmp/ISO/iso
  3. genisoimage を使って新規 ISO イメージを作成します。
    # genisoimage -U -r -v -T -J -joliet-long -V "RHEL-7.1 Server.x86_64" -volset "RHEL-7.1 Server.x86_64" -A "RHEL-7.1 Server.x86_64" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o ../NEWISO.iso .
    上記の例を以下で説明します。
    • オプションに LABEL= ディレクティブを使用する場合は同一ディスク上のファイルを読み込む場所が必要となります。この場合、-V-volset、および -A の各オプションの値がイメージのブートローダー設定と一致するようにします。ブートローダー設定 (BIOS では isolinux/isolinux.cfg、UEFI では EFI/BOOT/grub.cfg) で inst.stage2=LABEL=disk_label の節を使用して同一ディスクからインストーラーの第 2 ステージを読み込む場合は、ディスクのラベルが一致する必要があります。

      重要

      ブートローダー設定ファイルでは、ディスクラベルの空白をすべて \x20 で置き換えます。例えば、RHEL 7.1 というラベルの ISO イメージを作成する場合は、ブートローダー設定では RHEL\x207.1 を使ってこのラベルを参照します。
    • -o オプションの値 (-o ../NEWISO.iso) を新規イメージのファイル名で置き換えます。この例の値では、NEWISO.iso というファイルを現在のディレクトリーの上のディレクトリーに作成します。
    このコマンドに関する詳細は、genisoimage(1) man ページを参照してください。
  4. MD5 チェックサムをイメージに埋め込みます。このステップを実行しないと、イメージ検証チェック (ブートローダー設定の rd.live.check オプション) に失敗し、インストールを続行できなくなります。
    # implantisomd5 ../NEWISO.iso
    この例では、../NEWISO.iso をこの前のステップで作成した ISO イメージのファイル名と場所で置き換えます。
ここまでの手順が完了したら、この新規 ISO イメージを物理メディアやネットワークサーバーに書き込んで物理的ハードウェア上で起動するか、これを使用して仮想マシンのインストールを開始することができます。ブートメディアおよびネットワークサーバーの準備方法については Red Hat Enterprise Linux 7 インストールガイド を、ISO イメージを使った仮想マシンの作成方法については Red Hat Enterprise Linux 7 仮想化スタートガイド を参照してください。