Show Table of Contents
24.2. オペレーティングシステムの起動
仮想マシンを起動する方法には多くの異なる方法があります。これには、BIOS ブートローダー、ホスト物理マシンブートローダー、直接のカーネルの起動、およびコンテナーによる起動が含まれます。
24.2.1. BIOS ブートローダー
BIOS を起動する方法は、完全仮想化に対応するハイパーバイザーで利用できます。この場合、BIOS には起動順序の優先順位 (フロッピー、ハードディスク、CD-ROM、ネットワーク) があり、ブートイメージの検索方法が決定されます。ドメイン XML の
<os> セクションには、以下のような情報が含まれます。
...
<os>
<type>hvm</type>
<boot dev='fd'/>
<boot dev='hd'/>
<boot dev='cdrom'/>
<boot dev='network'/>
<bootmenu enable='yes'/>
<smbios mode='sysinfo'/>
<bios useserial='yes' rebootTimeout='0'/>
</os>
...図24.2 BIOS ブートローダーのドメイン XML
ドメイン XML のこのセクションを構成するコンポーネントは以下の通りです。
表24.2 BIOS ブートローダーの各種要素
| 要素 | 説明 |
|---|---|
<type> | ゲスト仮想マシンで起動されるオペレーティングシステムのタイプを指定します。hvm は、OS がベアメタルで実行されるように設計されたものであり、完全仮想化が必要であることを示します。linux は KVM ハイパーバイザーのゲスト ABI に対応する OS を参照します。さらに、2 つのオプション属性があり、arch は仮想化に対する CPU アーキテクチャーを指定し、machine はマシンタイプを指します。詳細は、『libvirt アップストリームドキュメント』 を参照してください。 |
<boot> | fd、hd、cdrom または network のいずれかの値を取る、考慮される次のブートデバイスを指定します。boot 要素は、順番に試行するブートデバイスの優先順序の一覧をセットアップするために複数回繰り返すことができます。同じタイプの複数デバイスは、バスの順序を保持した状態で、それらのターゲットに基づいてソートされます。ドメインが定義された後に、libvirt によって virDomainGetXMLDesc から) 返される XML 設定は、ソートされた順序でデバイスを一覧表示します。ソート後は、最初のデバイスに bootable (起動可能) というマークが付けられます。詳細は、libvirt アップストリームドキュメント を参照してください。 |
<bootmenu> | ゲスト仮想マシンの起動時のインタラクティブなブートメニューのプロンプトを有効にするかどうかを決定します。enable 属性には yes または no のいずれかを使用できます。いずれも指定されない場合、ハイパーバイザーのデフォルトが使用されます。 |
<smbios> | SMBIOS 情報をゲスト仮想マシンで表示する方法を決定します。mode 属性は、emulate (ハイパーバイザーがすべての値を生成) か、または host (ホスト物理マシンの SMBIOS 値から、UUID を除くブロック 0 およびブロック 1 のすべての値をコピー。virConnectGetSysinfo 呼び出しはコピーされた内容を表示するために使用できる)、または sysinfo (sysinfo 要素の値を使用) のいずれかに指定される必要があります。いずれも指定されない場合、ハイパーバイザーのデフォルト設定が使用されます。 |
<bios> | この要素には、yes または no の値が使用される可能性のある属性 useserial が含まれます。この属性は、ユーザーがシリアルポートに BIOS メッセージを表示することを可能にする Serial Graphics Adapter を有効/無効にします。そのため、シリアルポートを定義しておく必要があります。さらに、ブートが失敗した場合にゲスト仮想マシンが起動を再び開始するかどうかや、どの程度の時間が経過した後に再起動を開始するかなどを (BIOS に基づいて) 制御する rebootTimeout という別の属性もあります。値は、最大値が 65535 のミリ秒単位で設定され、値を -1 に設定すると再起動が無効になります。 |
24.2.2. カーネルからの直接起動
新規ゲスト仮想マシンの OS をインストールする際に、ホスト物理マシン OS に格納されるカーネルと
initrd から直接起動することが役立つ場合が多くあります。これにより、コマンドライン引数がインストーラーに直接渡されます。この機能は通常、準仮想化および完全仮想化ゲスト仮想マシンで利用できます。
...
<os>
<type>hvm</type>
<kernel>/root/f8-i386-vmlinuz</kernel>
<initrd>/root/f8-i386-initrd</initrd>
<cmdline>console=ttyS0 ks=http://example.com/f8-i386/os/</cmdline>
<dtb>/root/ppc.dtb</dtb>
</os>
...
図24.3 カーネルからの直接起動
ドメイン XML のこのセクションを構成するコンポーネントは以下の通りです。
表24.3 カーネルから直接起動するための要素
| 要素 | 説明 |
|---|---|
<type> | BIOS ブートのセクションの説明と同様です。 |
<kernel> | ホスト物理マシン OS のカーネルイメージへの完全修飾パスを指定します。 |
<initrd> | ホスト物理マシン OS の (オプションの) ramdisk イメージへの完全修飾パスを指定します。 |
<cmdline> | 起動時にカーネル (またはインストーラー) に渡される引数を指定します。これは、多くの場合、代替プライマリーコンソール (例: シリアルポート)、またはインストールメディアソース/キックスタートファイルを指定するために使用されます。 |
24.2.3. コンテナーによる起動
カーネルまたはブートイメージの代わりにコンテナーベースの仮想化を使用してドメインを起動する場合、
init 要素を使用した init バイナリーへのパスが必要です。デフォルトでは、これは引数を指定せずに起動されます。初期の argv を指定するには、initarg 要素を使用し、必要に応じて何度でも繰り返します。cmdline 要素は /proc/cmdline と同等の機能を提供しますが、<initarg> には影響を与えません。
... <os> <type arch='x86_64'>exe</type> <init>/bin/systemd</init> <initarg>--unit</initarg> <initarg>emergency.service</initarg> </os> ...
図24.4 コンテナーによる起動

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.