Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

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

28.2.1. livemedia-creator の概要

livemedia-creator を使用したカスタムイメージの作成は、通常、2 段階のプロセスです。最初の段階では、一時ディスクイメージファイルが作成され、Red Hat Enterprise Linux インストールプログラムである Anaconda が、キックスタートファイルで提供されるパラメーターに基づいて、このイメージにシステムをインストールします。次に、第 2 段階で、livemedia-creator は この一時システムを使用して、最終的な起動可能なイメージを作成します。
この動作は、追加オプションを指定することで変更可能です。たとえば、最初の段階のみを実行してディスクイメージファイルを作成したり、最初の段階を省略して既存のディスクやファイルシステムイメージを使用して最終的な起動可能な ISO イメージを作成するといったことができます。
livemedia-creator の使用例については、「カスタムイメージの作成」 .lorax パッケージがインストールされているシステムでは、livemedia-creator --help コマンドを使用して、使用可能なすべてのオプションのリストを表示できます。追加のドキュメントも lorax パッケージとともにインストールされます: livemedia-creator (1) man ページと、/usr/share/doc/lorax- version/ ディレクトリーにある README.livemedia-creator ファイル。ここで、version はのバージョンです。インストールした lorax パッケージ。

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

livemedia-creator ツールは、lorax パッケージの一部です。パッケージをインストールするには、root として次のコマンドを実行します。
# yum install lorax
また、lorax に加えてほかのパッケージをいくつかインストールする必要もあります。これらのパッケージは lorax の依存関係ではないため、自動的にはインストールされませんが、livemedia-creator を 正確に何のために使用しているかによっては必要になる場合があります。以下のパッケージになります。
  • virt-install: --no-virt オプションが指定されていない限り、ライブメディア作成の最初の段階で新規仮想マシンの構築に使用されるツールを提供するパッケージ。
  • libvirtqemu-kvmlibvirt-client およびその他の仮想化ツール: virt-install を使用する場合は、システムで、仮想マシンの作成、実行、管理の準備を整える必要があります。Red Hat Enterprise Linux における仮想化についての情報および仮想化ツールのインストールと作業についての資料は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイドを参照してください。
  • anaconda: Red Hat Enterprise Linux インストールプログラム。--no-virt オプションを指定すると、virt-install の代わりにこちらが第一段階で使用されます。
本章の対象範囲外となりますが、他のアプリケーションが必要となる場合もあります。livemedia-creator を 実行しようとして、指定したオプションで必要なパッケージが見つからない場合、プログラムは停止し、続行する前にインストールする必要があるパッケージを通知するエラーメッセージが表示されます。

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

カスタムのライブイメージを正常に作成するには、有効なキックスタート設定ファイルが必要になります。lorax では、2 つのサンプルが自動的にインストールされます。カスタムイメージの作成時には、これらのサンプルを参照するか、これらをコピーしてから使用目的に合わせてサンプルを修正することができます。提供されている両方のサンプルは 、/usr/share/doc/lorax- version/ ディレクトリーにあります。ここで、version は、システムにインストールされている lorax パッケージのバージョン番号です。
利用可能なサンプルは、以下のものです。
  • rhel7-minimal.ks : 最小限のインストール (@core グループ) と、カーネルや GRUB2 ブートローダーなどのその他の必須要素のみを提供する設定ファイル。root 以外のユーザーは作成されず、グラフィカルインターフェイスや追加パッケージもインストールされません。
  • rhel7-livemedia.ks : グラフィカルインターフェイスを備えたライブシステムを作成する、より高度な設定ファイル。root とともに liveuser という名前のユーザーが作成されます。
これらのサンプルをインストールソースとして有効な場所で使用するには、両方とも修正する必要があります。これには、ファイルを修正し、url コマンドが有効なインストールソースを参照するように更新します。キックスタートの詳細は、27章キックスタートを使ったインストール を参照してください。これらのサンプルが機能するためには、これ以外の変更は必要ありません。
重要
サンプルは、元の場所で修正しないでください。別のディレクトリーにコピーしてから、そのコピーされたものを修正してください。
注記
Red Hat では、Red Hat がインストールソースとして提供しているリポジトリーのみをサポートしています。
注記
提供されたサンプルを変更したり、キックスタートファイルを最初から作成したりする場合は、livemedia-creator でサポートされていないため、%include ステートメントを使用しないでください。すべてのキックスタートファイルは、使用する前に手動または ksflatten ツールを使用してフラット化する必要があります。

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

本セクションでは、lorax パッケージのツールの一般的な使用パターンを説明します。これは、使用可能なオプションの完全なリストを意味するものではありません。livemedia-creator で使用可能なすべてのオプションを表示するには、livemedia-creator --help を実行するか、livemedia-creator (1) の マニュアルページを参照してください。lorax の詳細は https://weldr.io/lorax/ を参照してください。

28.2.4.1. lorax を使用した boot.iso ファイルの作成

Red Hat Enterprise Linux のインストールシステムは、lorax という名前のツールで作成されます。この lorax を使用して、更新済みカーネルや追加パッケージなどを含む独自のインストールメディアを作成することもできます。
注記
lorax を使用するシステムは、作成する Red Hat Enterprise Linux のイメージと同じリリースであることが推奨されます。
以下を root として実行すると、boot.iso という名前のインストールイメージが results/images ディレクトリーに作成されます。--repo= コマンドにより Yum リポジトリーの設定ファイルが読み込まれ (この場合はデフォルトの設定ファイル)、それを使用してシステム更新の場合と同様に Red Hat のコンテンツ配信ネットワークからパッケージがダウンロードされます。
# yum install lorax
# setenforce 0
# lorax -p RHEL -v 7.4 -r 7.4 --repo=/etc/yum.repos.d/redhat.repo ./results/
# setenforce 1
注記
上記のコマンドを使用するシステムは、Red Hat Subscription Manager に登録済みで、サブスクライブしている必要があります。詳細情報は、Red Hat Subscription Management を参照してください。

28.2.4.2. 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 オプションに渡されます。詳細は、25章VNC の使用 を参照してください。
  • --RAM x: 一時仮想マシンの RAM の容量を MiB 単位で指定できます。
  • --vcpuss x: 仮想マシンのプロセッサーの量です。

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

virt-install が利用できない場合、livemedia-creator アプリケーションは Anaconda パッケージを使用してライブイメージを作成できます。この場合、インストールプログラムを含むイメージは必要ありませんが、Anaconda パッケージをシステムにインストールする必要があります。プロセスはこの場合も 2 段階です。まず、一時ディスクイメージを作成し、システムをそのイメージにインストールします。次に、このイメージを使って最終的な起動用の ISO を作成します。
警告
Anaconda を使用したライブイメージの作成は、仮想マシン内ではなくシステム自体でインストールプログラムを使用するため、潜在的に危険です。現時点では問題を引き起こす可能性のある既知のバグはありませんが、このプロセスによりシステム全体が使用できなくなる可能性があります。したがって、--no-virt オプションを指定して livemedia-creator を実行することは、この目的のために特別に予約された仮想マシン (ゲスト) でのみ推奨されます。
重要
Anaconda でカスタムイメージを作成する前に、Security Enhanced Linux (SELinux) を permissive (または無効) モードに設定します。SELinux モードの設定については 、Red Hat Enterprise Linux 7 SELinux ユーザーおよび管理者のガイドを 参照してください。
Anaconda を使用してライブイメージを作成するには、--no-virt オプションを使用します。以下に例を示します。
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --no-virt

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

livemedia-creator を 使用して、ディスクまたはファイルシステムイメージを作成することもできます。この場合、イメージ作成プロセスの第 1 段階のみを実行することになります。最終的な ISO は作成されず、一時的なディスクもしくはファイルシステムのイメージファイルへのインストールプロセスが終了した時点で、プログラムは停止します。その後に、このイメージをマウントしてエラーがないか検査します。これは、修正されたキックスタートファイルのトラブルシューティングの際に役立ちます。また、今後のイメージ作成時のために保存しておくと時間の節約にもなります。
注記
本セクションのすべての例で --no-virt オプションを使用することもできます。
第 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
いずれの場合も、パーティション分割されたディスクイメージまたはファイルシステムイメージが作成され、デフォルトで /var/tmp/ ディレクトリーに配置されます。結果の場所を変更するには、--tmp /path/to/temporary/directory/ オプションを使用します。ここで /path/to/temporary/directory/ は、ターゲットディレクトリーへのパスです。

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

すでにディスクまたはファイルシステムイメージがある場合 (「ディスクまたはファイルシステムのイメージ作成」)、これを livemedia-creator に提供して、最終的な起動可能な ISO イメージを生成できます。この場合、キックスタートファイルや Anaconda インストールイメージは必要ありません。これらは、この場合スキップされるイメージ作成プロセスの最初の段階でのみ必要です。
既存のパーティション設定されたディスクイメージファイルから最終イメージを作成するには、--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

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

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

28.2.4.7. 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 オプションを使用して別のファイルを指定しない限り、結果は /var/tmp/ ディレクトリーにある ami-root.img という名前のイメージファイルになります。

28.2.4.8. 追加の引数

次のオプションは、上記のすべてのユースケース (仮想インストール、Anaconda イメージのインストールなど) で使用できます。
  • --keep-image: このオプションを指定すると、インストールの最初の段階で使用される一時ディスクイメージファイルは削除されません。/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/: プログラムのログファイルの場所を指定します。

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

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

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

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

手順28.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
    

28.2.5.2. 仮想マシンを使用したインストールの失敗

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

手順28.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を使用して、前の手順で同じ 名前 を使用して一時仮想マシンを削除します。
    # 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. /var/tmp/ ディレクトリーで virt-install によって作成された一時ディスクイメージを見つけます。このファイルの名前は、インストールプロセスの開始時にコマンドラインに出力されます、--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 を使って新たなインストールを開始することができます。

28.2.5.3. Anaconda を使用したインストールの失敗

Anaconda イメージインストール機能( -no-virt オプション)を使用して割り込みインストールからの復元は、anaconda パッケージとともにインストールされる anaconda-cleanup スクリプトを実行します。このスクリプトは、/usr/bin/ ディレクトリーにあります。
以下のコマンドを使用して、クリーンアップスクリプトを実行します。これには、root 権限が必要になります。
# anaconda-cleanup