24.2. 自動でのディスクイメージへのインストール

livemedia-creator を使うと、ディスクイメージの作成とそこへのインストールが自動でできるようになります。自動インストールを実行するには、インストール済みの Red Hat Enterprise Linux システムとキックスタートファイルが必要になります。ディスクイメージ自体は手動で作成する必要はありません。キックスタートファイルの作成および使用についての情報は、23章キックスタートを使ったインストール を参照してください。

24.2.1. livemedia-creator の概要

livemedia-creator を使ったカスタムイメージの作成は通常、2 段階のプロセスです。最初の段階では、一時ディスクイメージファイルが作成され、Red Hat Enterprise Linux のインストールプログラムである Anaconda がキックスタートファイルで提供されるパラメーターを基に、このイメージ上にシステムをインストールします。そして次の段階で、livemedia-creator がこの一時システムを使って最終的な起動可能イメージを作成します。
この動作は、追加オプションを指定することで変更可能です。たとえば、最初の段階のみを実行してディスクイメージファイルを作成したり、最初の段階を省略して既存のディスクやファイルシステムイメージを使用して最終的な起動可能な ISO イメージを作成するといったことができます。

重要

livemedia-creator を使ったカスタムイメージの作成は現在、AMD64 および Intel 64 (x86_64) システム、および IBM POWER (big endian) システム上でのみサポートされています。
また、この作成プロセスは Red Hat Enterprise Linux 7 でのみサポートされています。これより前のリリースのカスタムイメージは作成可能ですが、Red Hat ではサポートしていません。
livemedia-creator の使用例は 「カスタムイメージの作成」 で説明されています。lorax パッケージがインストールされているシステムでは、livemedia-creator --help コマンドを使うと使用可能なオプションがすべて一覧表示されます。また、以下の追加ドキュメンテーションが lorax パッケージとともにインストールされています。livemedia-creator(1) man ページおよび README.livemedia-creator ファイル (/usr/share/doc/lorax-version/ ディレクトリーにあります。 version はインストールされている lorax のバージョンになります)。

24.2.2. livemedia-creator のインストール

livemedia-creator ツールは、lorax パッケージの一部です。このパッケージをインストールするには、root で以下のコマンドを実行します。
# yum install lorax
また、lorax に加えてほかのパッケージをいくつかインストールする必要もあります。これらのパッケージは lorax の依存項目ではないので自動的にはインストールされませんが、livemedia-creator の使用目的によって必要となる可能性があります。以下のパッケージになります。
  • virt-install: 新規の仮想マシンを構築するツールを提供するパッケージです。--no-virt オプションが指定されていなければ、ライブメディア作成の第 1 段階で使用されます。
  • libvirtqemu-kvmlibvirt-client およびその他の仮想化ツール: virt-install を使用する際に、ご使用のマシンで仮想マシンの作成、稼働、管理ができる必要があります。Red Hat Enterprise Linux における仮想化についての情報および仮想化ツールのインストールと作業についての資料は、Red Hat Enterprise Linux 7 Virtualization Deployment and Administration Guide を参照してください。
  • anaconda: Red Hat Enterprise Linux のインストールプログラムで、--no-virt オプションが使用される場合、virt-install ではなくこちらが第 1 段階で使用されます。
本章のスコープ外となりますが、他のアプリケーションが必要となる場合もあります。livemedia-creator を使用し、指定したオプションで必要となるパッケージがない場合は、このプログラムは停止して、先に進む前にインストールが必要となるパッケージを知らせるエラーメッセージが表示されます。

24.2.3. キックスタートファイルのサンプル

カスタムのライブイメージを正常に作成するには、有効なキックスタート設定ファイルが必要になります。lorax では、2 つのサンプルが自動的にインストールされます。カスタムイメージの作成時には、これらのサンプルを参照するか、これらをコピーしてから使用目的に合わせてサンプルを修正することができます。提供されるサンプルは両方とも /usr/share/doc/lorax-version/ ディレクトリーにあり、version はシステムにインストールされた lorax パッケージのバージョン番号になります。
利用可能なサンプルは、以下のものです。
  • rhel7-minimal.ks: 最小限のインストール (@core グループ) およびカーネルや GRUB2 ブートローダーなどの必須のもののみを提供する設定ファイルです。root 以外のユーザーは作成されず、グラフィカルインターフェースや追加パッケージはインストールされません。
  • rhel7-livemedia.ks: グラフィカルインターフェースでライブシステムを作成する、より高度な設定ファイルです。root に加えて、liveuser という名前のユーザーが作成されます。
これらのサンプルをインストールソースとして有効な場所で使用するには、両方とも修正する必要があります。これには、vim などのプレーンテキストエディターでファイルを開き、url コマンドを探して既存アドレスを有効なインストールソースに変更します。これらのサンプルが機能するためには、これ以外の変更は必要ありません。

重要

サンプルは、元の場所で修正しないでください。別のディレクトリーにコピーしてから、そのコピーされたものを修正してください。

注記

キックスタートファイルでインストールソースと追加リポジトリーを指定する際は、Red Hat が公式に提供しているリポジトリーのみがサポートされていることに注意してください。カスタムリポジトリーは機能する可能性がありますが、サポート対象外となります。

24.2.4. カスタムイメージの作成

このセクションでは、livemedia-creator の一般的な使用パターンをいくつか説明します。これは、使用可能なオプションの完全なリストを意味するものではありません。使用可能なオプションすべてを表示するには、livemedia-creator --help を実行するか、livemedia-creator(1) man ページを参照してください。

24.2.4.1. virt-install を使用したライブイメージの作成

livemedia-creator の最も一般的な使用方法では、virt-install を使ってライブイメージ作成プロセス用に使用する一時的な仮想マシンが作成されます。virt-install を使用してライブ ISO を作成するには、有効なキックスタートファイルと、Anaconda インストールプログラムを含む起動可能な ISO イメージが必要になります。これらのイメージは、Red Hat が 「最小限の起動用メディア」として提供しています。詳細は、「インストール USB の作成」 を参照してください。
以下のコマンドは、virt-install を使用してライブイメージを作成する際に最小限必要となるものです。
# livemedia-creator --make-iso --iso=/path/to/boot.iso --ks=/path/to/valid/kickstart.ks
/path/to/boot.iso を最小限の起動用メディアへのパスに置き換え、/path/to/valid/kickstart.ks をイメージ作成プロセスで使用する有効なキックスタートファイルへのパスに置き換えます。
このユースケースで便利な追加オプションには、以下のものがあります。
  • --vnc vnc: このオプションを使うと、TigerVNC などの VNC クライアントを使ってインストールプロセスを見ることができます。このオプションは、virt-install の --graphics オプションに引き継がれます。詳細情報は、22章VNC を使用したインストール を参照してください。
  • --ram x: 一時的な仮想マシン用の RAM の大きさをメガバイト単位で指定できるようになります。
  • --vcpus x: 仮想マシンのプロセッサーの数です。

24.2.4.2. Anaconda のイメージインストールを使用したライブイメージの作成

ライブイメージを作成するもう 1 つの方法は、Anaconda のイメージインストール機能を使用するものです。この場合、インストールプログラムを含むイメージは必要ありませんが、anaconda パッケージがシステムにインストールされている必要があります。プロセスはこの場合も 2 段階です。まず、一時ディスクイメージを作成し、システムをそのイメージにインストールします。次に、このイメージを使って最終的な起動用の ISO を作成します。

警告

Anaconda を使ったライブイメージの作成には、潜在的な危険が伴います。これは、仮想マシンの内部ではなく、システム自体の上でインストールプログラムを使用するためです。現時点では問題を引き起こす可能性のある既知のバグはありませんが、このプロセスによりシステム全体が使用できなくなる可能性があります。このため、--no-virt オプションを使った livemedia-creator の実行が推奨されるのは、この目的にのみ特別に確保された仮想マシン (ゲスト) 上のみとなります。

重要

Anaconda でカスタムイメージを作成する前に、Security Enhanced Linux (SELinux) を permissive (または disabled) モードに設定してください。SELinux のモード設定については、Red Hat Enterprise Linux 7 SELinux User's and Administrator's Guide を参照してください。
Anaconda を使ってライブイメージを作成するには、--no-virt オプションを使用します。例を示します。
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --no-virt

24.2.4.3. ディスクまたはファイルシステムのイメージ作成

livemedia-creator を使って、ディスクまたはファイルシステムのイメージを作成することもできます。この場合、イメージ作成プロセスの第 1 段階のみを実行することになります。最終的な ISO は作成されず、一時的なディスクもしくはファイルシステムのイメージファイルへのインストールプロセスが終了した時点で、プログラムは停止します。その後に、このイメージをマウントしてエラーがないか検査します。これは、修正されたキックスタートファイルのトラブルシューティングの際に役立ちます。また、今後のイメージ作成時のために保存しておくと時間の節約にもなります。
第 1 段階後に作成プロセスを停止するには、いくつか方法があります。以下の例に示すように --image-only オプションを使うことができます。
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso --image-only
また、--make-iso の代わりに --make-disk オプションを使うこともできます。
# livemedia-creator --make-disk --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
--make-fsimage オプションを使用して、パーティション設定されたディスクイメージの代わりにファイルシステムイメージを作成することもできます。
# livemedia-creator --make-fsimage --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso

注記

このセクションにある例ではすべて、--no-virt オプションを使うこともできます。
これらのケースではすべて、パーティション設定されたディスクイメージかファイルシステムイメージがデフォルトで /var/tmp/ ディレクトリーに作成されます。この場所を変更するには、--tmp /path/to/temporary/directory/ オプションを使用します。/path/to/temporary/directory/ は、ターゲットディレクトリーへのパスになります。

24.2.4.4. 以前に作成されたディスクもしくはファイルシステムのイメージの使用

すでにディスクもしくはファイルシステムのイメージがある場合 (「ディスクまたはファイルシステムのイメージ作成」 を参照)、これを livemedia-creator に提供して、最終的な起動用 ISO イメージを作成することができます。その場合、キックスタートファイルや Anaconda インストールイメージは必要ありません。これらが必要となるのは、イメージ作成プロセスの第 1 段階のみで、これはこのケースでは省略されています。
既存のパーティション設定されたディスクイメージファイルから最終的なイメージを作成するには、--disk-image オプションを使用します。例を示します。
# livemedia-creator --make-iso --disk-image=/path/to/disk/image.img
ディスクイメージではなくファイルシステムのイメージを使用する場合は、代わりに --fs-image オプションを使用します。
# livemedia-creator --make-iso --fs-image=/path/to/filesystem/image.img

24.2.4.5. アプライアンスの作成

livemedia-creator のもう 1 つの使い方は、アプライアンスイメージ (パーティション設定されたディスクイメージ) を作成することです。これには、テンプレート使用で生成された記述を含む XML ファイルが含まれます。このケースでは、イメージインストールに加えて、仮想マシンのインストールがサポートされます。アプライアンスイメージと記述を作成するには、--make-iso の代わりに --make-appliance オプションを使用します。例を示します。
# livemedia-creator --make-appliance --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
イメージと記述の XML ファイルは、--resultdir オプションを使って別の保存場所を指定しなければ、両方とも /var/tmp/ ディレクトリーに保存されます。
アプライアンス作成に固有の追加オプションには、以下のものがあります。
  • --app-name name: アプライアンス名を指定し、これが <name> タグでマークされて XML 記述ファイルに現れます。デフォルト値は None です。
  • --app-template /path/to/template.tmpl: 使用するテンプレートを指定します。デフォルトは、/usr/share/lorax/appliance/libvirt.tmpl です。
  • --app-file /path/to/app/file.xml: 生成される記述 XML ファイル名を指定します。デフォルト値は、appliance.xml です。

24.2.4.6. Amazon Machine Image (AMI) の作成

Amazon Elastic Compute Cloud (EC2) 内で使用する Amazon Machine Image (AMI) を作成するには、--make-ami オプションを使います。仮想およびイメージインストールの両方がサポートされています。
# livemedia-creator --make-ami --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
--resultdir オプションで別の場所を指定しなければ、ami-root.img という名前のイメージファイルが /var/tmp/ ディレクトリーに格納されます。

24.2.4.7. 追加の引数

以下のオプションは、上記のユースケースすべてで使用可能です (仮想インストール、Anaconda イメージインストール、およびその他)。
  • --keep-image: このオプションを指定すると、インストールの第 1 段階で使用される一時ディスクイメージファイルは削除されません。/var/tmp/ ディレクトリーに格納され、diskgU42Cq.img のようなランダム生成された名前が付けられます。
  • --image-only: このオプションを使用すると、イメージ作成プロセスの第 1 段階のみが実行されます。最終的な起動用 ISO イメージを作成する代わりに、livemedia-creator は一時的なディスクイメージファイルのみを作成し、そのファイルへのインストールを実行します。このオプションを使用すると時間のかかる第 2 段階を省略し、一時的なディスクイメージファイルを検査するので、キックスタートファイルに加えた修正をテストする際に時間を節約できます。
  • --image-name name: 一時的なディスクイメージファイルのカスタム名を指定できます。デフォルト名は、ランダム生成されたものになります (たとえば、disk1Fac8G.img)。
  • --tmp /path/to/temporary/directory/: トップレベルの一時ディレクトリーを指定します。デフォルト値は、/var/tmp/ です。このオプションを使う場合は、既存のディレクトリーを指定する必要があります。
  • --resultdir /path/to/results/directory/: livemedia-creator の完了後に生成される起動用 ISO イメージが表示されるディレクトリーを指定します。既存のディレクトリーは指定できません。デフォルトは、/var/tmp/ です。このオプションは、最終的な ISO イメージにのみ適用されます。ディスクもしくはファイルシステムのイメージを作成していて、特定の場所に保存したい場合は、--tmp オプションを使用します。
  • --logfile /path/to/log/file/: プログラムのログファイルの場所を指定します。

24.2.5. livemedia-creator のトラブルシューティング

このセクションでは、livemedia-creator 使用時によく発生する様々な問題の解決方法を提案しています。ここで触れられていない問題が発生した場合は、問題のログファイルを見てください。これは、実行時に毎回自動的に生成され、--logfile オプションを使って別のディレクトリーを指定しなければ、ツールを実行したディレクトリーに保存されます。ログファイルは、使用するオプションによって異なります。たとえば、--no-virt オプションを使用すると、virt-install.log は生成されません (代わりに、Anaconda からのログファイルが anaconda/ ディレクトリーに生成されます)。livemedia.log および program.log という他のファイルが毎回生成されます。
問題を発見して解決策を探るもうひとつの方法は、このユーティリティー実行時に --image-only オプションを使用することです。このオプションは第 1 段階後にプログラムを停止するので、最終的な起動用 ISO ではなく、ディスクイメージファイルのみが生成されます。すると、第 2 段階の終了を待たずにディスクイメージファイルをマウントし、コンテンツを調べることができます。また、--keep-image オプションを使うと両方の段階を実行しますが、その後の分析用に一時ディスクイメージが保存されます。
キックスタートファイルへの変更をテストする際は、--vnc オプションの使用が推奨されます。このオプションを使うと、VNC クライアントを使って仮想マシンに接続し、インストールプロセスを見ることができます。詳細は、22章VNC を使用したインストール を参照してください。

24.2.5.1. 仮想マシンのインストールが停止する場合

仮想インストールの第 1 段階中に何らかの理由でインストールプログラムが停止する場合、 livemedia-creator もインストールの完了を待機して停止することになります。プログラムに直接割り込むか、一時仮想マシンを停止することでこの問題を解決することができます。Livemedia-creator は、ゲストのオペレーティングシステムが停止したことを検出し、存在するすべての一時ファイルを削除します。
一時仮想マシンを停止するには、以下の手順にしたがいます。

手順24.1 一時仮想マシンを停止する

  1. virsh を使って、システム上で現在使用可能な仮想マシン (ゲスト) をすべて一覧表示します。出力は次のようになります。
    # virsh list --all
    Id    Name                           State
    ----------------------------------------------------
    93    LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running
    -     RHEL7                      shut off
    
    一時仮想マシンを特定します。名前が常に LiveOS で始まり、ランダムの数字および文字の文字列が続きます。
  2. 一時仮想マシンを特定したら、virsh destroy name コマンドを使ってこれを停止します。name は仮想マシンの名前になります。
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7
    Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed
    

24.2.5.2. 中断した仮想マシンのインストール

仮想インストールを実行中、初期段階に何らかの理由でプロセスが中断されてしまうと (ハードウェア障害や停電、キーボードによる中断など)、以前に作成した一時ディスクイメージおよび仮想マシンを削除するまで virt-install によるインストールを再開することができなくなります。一時ディスクイメージおよび仮想マシンの削除方法を以下で説明します。
すべてのステップが毎回必要とは限りません。たとえば、システム障害後の復元を実行している場合は、一時仮想マシンを停止する必要はなく、代わりに virsh undefine name コマンドを使用するだけで済みます。また、livemedia-creator で作成した一時ファイルの消去だけが目的であれば、ステップ 4 と 5 を使用することもできます。

手順24.2 一時ゲストおよびディスクイメージファイルの削除

  1. virsh を使って、システム上で現在使用可能な仮想マシン (ゲスト) をすべて一覧表示します。出力は次のようになります。
    # virsh list --all
    Id    Name                           State
    ----------------------------------------------------
    93    LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running
    -     RHEL7                      shut off
    
    一時仮想マシンを特定します。名前が常に LiveOS で始まり、ランダムの数字および文字の文字列が続きます。
  2. 一時仮想マシンを特定したら、virsh destroy name コマンドを使ってこれを停止します。name は仮想マシンの名前になります。
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7
    Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed
    
  3. virsh undefine name を使って一時仮想マシンを削除します。name には上記のステップと同じものを使います。
    # virsh undefine LiveOS-2a198971-ba97-454e-a056-799f453e1bd7
    Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 has been undefined
    
  4. 一時ファイルシステムのマウント先を見つけます。/var/tmp/ ディレクトリー配下にあり、ファイル名は lorax.imgutils の後ろに 6 桁のランダムな数字または文字が続いています。
    # findmnt -T /var/tmp/lorax.imgutils*
    TARGET                         SOURCE     FSTYPE  OPTIONS
    /var/tmp/lorax.imgutils.bg6iPJ /dev/loop1 iso9660 ro,relatime
    
    umount コマンドを使ってアンマウントします。
    # umount /var/tmp/lorax.imgutils.bg6iPJ
  5. virt-install によって /var/tmp/ ディレクトリー内に作成された一時ディスクイメージを見つけます。イメージファイルの名前は、--image-name オプションを使って指定していなければ、インストールプロセスの開始時にランダムに生成され、コマンドラインに表示されます。例を示します。
    2013-10-30 09:53:03,161: disk_size = 5GB
    2013-10-30 09:53:03,161: disk_img = /var/tmp/diskQBkzRz.img
    2013-10-30 09:53:03,161: install_log = /home/pbokoc/lorax/virt-install.log
    mount: /dev/loop1 is write-protected, mounting read-only
    
    上記の例では、/var/tmp/diskQBkzRz.img が一時ディスクイメージになります。
    最初のメッセージを見つけられない場合は、手動で一時ファイルを特定することができます。ls コマンドを使って /var/tmp/ ディレクトリーのコンテンツを一覧表示し、名前に disk を含むファイルを出力からフィルターします。
    # ls /var/tmp/ | grep disk
    diskQBkzRz.img
    
    その後に一時ディスクイメージを削除します。
    # rm -f /var/tmp/diskQBkzRz.img
この手順のステップをすべて実行すると、virt-install を使って新たなインストールを開始することができます。

24.2.5.3. --no-virt を使ったインストールの失敗

Anaconda イメージインストール機能 (--no-virt オプション) を使って実行していたインストールが中断されてしまった場合、anaconda-cleanup スクリプトを使用して回復させることができます。このスクリプトは anaconda パッケージと一緒にインストールされ、/usr/bin/ ディレクトリーに格納されます。
以下のコマンドを使用して、クリーンアップスクリプトを実行します。これには、root 権限が必要になります。
# anaconda-cleanup