5.4. 仮想マシンのシリアルコンソールを開く
virsh console
コマンドを使用すると、仮想マシンのシリアルコンソールに接続できます。
これは、仮想マシンが次のような場合に役に立ちます。
- VNC プロトコルは提供されないため、GUI ツールのビデオ表示には対応していません。
- ネットワークに接続されていないため、SSH を使用して 相互作用できない
前提条件
ホスト上の GRUB ブートローダーは、シリアルコンソールを使用するように設定する必要があります。確認するには、ホスト上の
/etc/default/grub
ファイルにGRUB_TERMINAL=serial
パラメーターが含まれていることを確認します。$ sudo grep GRUB_TERMINAL /etc/default/grub GRUB_TERMINAL=serial
仮想マシンには、
console type='pty'
などのシリアルコンソールデバイスが設定されている必要がある。確認するには、以下の手順を実施します。# virsh dumpxml vm-name | grep console <console type='pty' tty='/dev/pts/2'> </console>
仮想マシンに、カーネルコマンドラインでシリアルコンソールが設定されている。これを確認するには、仮想マシン上の
cat /proc/cmdline
コマンド出力に console=<console-name> が含まれている必要があります。<console-name> はアーキテクチャー固有です。-
AMD64 および Intel 64 の場合:
ttyS0
ARM 64 の場合:
ttyAMA0
注記この手順の次のコマンドは
ttyS0
を使用します。# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.10.0-948.el7.x86_64 root=/dev/mapper/rhel-root ro console=tty0 console=ttyS0,9600n8 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb
シリアルコンソールが仮想マシンに正しく設定されていない場合は、virsh コンソール を仮想マシンに接続すると、応答のないゲストコンソールに接続できます。ただし、Ctrl+] ショートカットを使用して、応答しないコンソールを終了することができます。
仮想マシンでシリアルコンソールを設定するには、以下を行います。
仮想マシンで、
console=ttyS0
カーネルオプションを有効にします。# grubby --update-kernel=ALL --args="console=ttyS0"
変更を反映させない可能性があるカーネルオプションをクリアします。
# grub2-editenv - unset kernelopts
- 仮想マシンを再起動します。
-
AMD64 および Intel 64 の場合:
serial-getty@<console-name>
サービスを有効にする必要があります。たとえば、AMD64 および Intel 64 の場合:# systemctl status serial-getty@ttyS0.service ○ serial-getty@ttyS0.service - Serial Getty on ttyS0 Loaded: loaded (/usr/lib/systemd/system/serial-getty@.service; enabled; preset: enabled)
手順
ホストシステムで、
virsh console
コマンドを使用します。次の例では、libvirt ドライバーが安全なコンソール処理に対応していると、仮想マシン guest1 に接続します。# virsh console guest1 --safe Connected to domain 'guest1' Escape character is ^] Subscription-name Kernel 3.10.0-948.el7.x86_64 on an x86_64 localhost login:
- virsh コンソールは、標準のコマンドラインインターフェイスと同じ方法で相互作用できます。
関連情報
-
システム上の
virsh
man ページ - Configuring Serial Console Logs on a VM (動画)