第3章 仮想マシンの作成
RHEL 9 で仮想マシンを作成する場合は、コマンドライン または RHEL 9 Web コンソール を使用します。
3.1. コマンドラインを使用した仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して RHEL 9 で仮想マシン (VM) を作成するには、virt-install ユーティリティーを使用します。
前提条件
- ホストシステムで仮想化が 有効 になっている。
- ディスク領域、RAM、CPU など、仮想マシンに割り当てるのに十分なシステムリソースがある。推奨される値は、仮想マシンで行うタスクやワークロードにより大きく異なる可能性がある。
オペレーティングシステム (OS) のインストールソースがローカルまたはネットワークで利用できる。これには、次のいずれかを使用できます。
- インストールメディアの ISO イメージ
既存の仮想マシンインストールのディスクイメージ
警告RHEL 9 では、ホストの CD-ROM デバイスまたは DVD-ROM デバイスからインストールすることができません。RHEL 9 で利用可能な仮想マシンのインストール方法を使用する際に、インストールソースに CD-ROM または DVD-ROM を選択するとインストールに失敗します。詳細は、Red Hat ナレッジベースソリューション RHEL 7 or higher can’t install guest OS from CD/DVD-ROM を参照してください。
また、Red Hat は、限られたゲストオペレーティングシステムのセット のみをサポートしていることにも注意してください。
- 任意: インストールをより速く、簡単に設定するために、キックスタートファイルを利用できます。
手順
仮想マシンを作成して OS のインストールを開始するには、以下の必須引数を指定して、virt-install コマンドを使用します。
-
--name: 新しいマシンの名前 -
--memory: 割り当てるメモリーの量 -
--vcpus: 割り当てる仮想 CPU の数 -
--disk: 割り当てるストレージのタイプとサイズ -
--cdromまたは--location: OS インストールソースのタイプと場所 --osinfo: インストールする OS の種類とバージョン注記--osinfo引数に使用可能なすべての値をリスト表示するには、virt-install --osinfo listコマンドを実行します。詳細は、
libosinfo-binパッケージをインストールして、osinfo-query osコマンドを実行します。
選択したインストール方法に応じて、必要なオプションと値が異なります。例は、以下のコマンドを参照してください。
次のコマンドでは、demo-guest1 という名前の仮想マシンを作成し、ローカルの /home/username/Downloads/Win10install.iso ファイルに保存されている ISO イメージから、Windows 10 OS をインストールします。この仮想マシンには、2048 MiB の RAM と 2 つの vCPU が割り当てられ、80 GiB の qcow2 仮想ディスクも自動的に割り当てられます。
# virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --osinfo win10 \ --cdrom /home/username/Downloads/Win10install.iso次のコマンドは、demo-guest2 という名前の仮想マシンを作成し、/home/username/Downloads/rhel9.iso イメージを使用して、ライブ CD から RHEL 9 OS を実行します。この仮想マシンにはディスク領域が割り当てられないため、セッション中に行った変更は保持されません。また、仮想マシンには、4096 MiB の RAM と、4 つの vCPU が割り当てられます。
# virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --osinfo rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso次のコマンドは、demo-guest3 という名前の RHEL 9 仮想マシンを作成し、既存のディスクイメージ /home/username/backup/disk.qcow2 に接続します。これは、マシン間でハードドライブを物理的に移動するのと似ています。したがって、demo-guest3 で使用できる OS およびデータは、イメージが処理された方法により決定します。また、仮想マシンには、2048 MiB の RAM および 2 つの vCPU が割り当てられます。
# virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-info rhel9.0 --import \ --disk /home/username/backup/disk.qcow2次のコマンドは、demo-guest4 という名前の仮想マシンを作成し、URL
http://example.com/OS-installからインストールします。インストールを開始するには、作業中の OS インストールツリーを URL に指定する必要があります。さらに、OS は、キックスタートファイル /home/username/ks.cfg で自動的に設定されます。この仮想マシンには、2048 MiB の RAM、2 つの vCPU、および 160 GiB の qcow2 仮想ディスクも割り当てられます。# virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --osinfo rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"さらに、ARM 64 ホスト上の RHEL 9 で demo-guest4 をホストする場合は、キックスタートファイルによって
kernel-64kパッケージが確実にインストールされるように、次の行を追加します。%packages -kernel kernel-64k %end次のコマンドは、demo-guest5 という名前の仮想マシンを作成し、グラフィックスがない、テキストのみのモードである
RHEL9.isoイメージファイルからインストールします。ゲストコンソールをシリアルコンソールに接続します。仮想マシンには、16384 MiB のメモリー、16 個の vCPU、および 280 GiB のディスクが割り当てられます。このようなインストールは、低速なネットワークリンクを介してホストに接続する際に便利です。# virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --osinfo rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'次のコマンドは、demo-guest6 という名前の仮想マシンを作成します。この仮想マシンの設定は demo-guest5 と同じですが、リモートホスト 192.0.2.1 に置かれます。
# virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --osinfo rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'次のコマンドは、demo-guest-7 という名前の仮想マシンを作成します。この仮想マシンの設定は demo-guest5 と同じですが、ストレージには IBM Z DASD 仲介デバイス
mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8を使用し、デバイス番号1111を割り当てます。# virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --osinfo rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'インストールに利用可能な仲介デバイスの名前は、
virsh nodedev-list --cap mdevコマンドを使用して取得できることに注意してください。次のコマンドは、demo-guest-8 という名前の仮想マシンを作成します。これは demo-guest5 と同じ設定ですが、ネットワーク用のホストデバイス
pci_0003_00_00_0を提供し、グラフィカルインストール用のグラフィックを設定します。# virt-install \ --name demo-guest8 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics vnc,listen=0.0.0.0,5901 \ --input keyboard,bus=virtio --input mouse,bus=virtio \ --hostdev pci_0003_00_00_0 --network none'インストールに使用できるホストデバイスの名前は、
virsh nodedev-list --cap pciコマンドを使用して取得できることに注意してください。インストール GUI を使用するには、インストールの開始時に VNC ポート 5901 で VNC ビューアーをホストの IP に接続できます。ただし、最初にファイアウォールでこのポートを開く必要がある場合があります。次に例を示します。# firewall-cmd --add-port 5901/tcp
検証
- 仮想マシンが問題なく作成されると、仮想マシンのグラフィカルコンソールで virt-viewer 画面が開き、ゲスト OS のインストールが開始します。
トラブルシューティング
virt-installがcannot find default networkエラーを出力する場合は、以下のようにします。libvirt-daemon-config-networkパッケージがインストールされていることを確認します。# {PackageManagerCommand} info libvirt-daemon-config-network Installed Packages Name : libvirt-daemon-config-network [...]libvirtのデフォルトネットワークがアクティブで、自動的に起動するように設定されていることを確認します。# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yesそうでない場合は、デフォルトのネットワークをアクティブにし、自動起動に設定します。
# virsh net-autostart default Network default marked as autostarted # virsh net-start default Network default startedデフォルトのネットワークをアクティベートしても以下のエラーが出て失敗する場合は、
libvirt-daemon-config-networkパッケージが正常にインストールされていません。error: failed to get network 'default' error: Network not found: no network with matching name 'default'この問題を修正するには、以下のコマンドで
libvirt-daemon-config-networkを再インストールします。# {PackageManagerCommand} reinstall libvirt-daemon-config-network以下のようなエラーでデフォルトのネットワークをアクティベートできない場合には、デフォルトネットワークのサブネットとホストの既存インターフェイスで競合が発生しています。
error: Failed to start network default error: internal error: Network is already in use by interface ens2これを修正するには、
virsh net-edit defaultコマンドを使用して、設定の192.0.2.*の値を、ホストで使用していないサブネットに変更します。