Ubuntu 16.04 KVMゲストコンソールにアクセスする

Ubuntu 16.04 KVMゲストコンソールにアクセスする

マイコンピュータにDebian 8を追加するとKVM管理ツール、私はconsole=ttyS0Grubブート構成に追加しないと、コンソールにアクセスできません。。良くありませんが、うまくいきます。管理ツールにUbuntu 16.04を追加していますが、今回はゲストをインストールしても同じ問題が発生しますが、コンソールに接続してインスタンスを再起動すると、grubメニューオプションは表示されなくなります。したがって、この回避策を実装することはできません。

arp -an正しいIPアドレスが見つかるまでハイパーバイザーで実行し、KVMブリッジのIPに接続してゲストインスタンスのIPアドレスを見つけることができました。これにより、ゲストが正しくインストールされ実行されていることを確認できました。sudo virsh console [guest ID]ネットワークに問題がある場合、またはopensshが突然動作を停止することを決定した場合は、コンソールに接続できるようにしたいです。ハイパーバイザーでゲストUbuntu 16.04コンソールに接続するにはどうすればよいですか?

私の直感は、現在の調整が必要だということですsudo virsh edit [guestID]

...
<serial type='pty'>
  <target port='0'/>
</serial>
<console type='pty'>
  <target type='serial' port='0'/>
</console>
...

追加情報

  • カーネル4.2.0-36-genericを使用したUbuntu 14.04 KVMハイパーバイザー
  • ウェールズ語 1.2.2

答え1

@Programsterに感謝します。ソリューションが私に役立ちました。 SSHアクセス権もないため、virt-editをインストールして使用する必要があります。

sudo apt install libguestfs-tools
sudo virt-edit -d myVM /boot/grub/grub.cfg

grub.cfgファイルのすべてのインスタンスをコンソール接続用の仮想quietマシンに置き換えて起動しました。quiet console=ttyS0

virsh start myVM && virsh console myVM

ログインしたら、@programsterの回答に基づいてgrubを編集して更新することを忘れないでください。

答え2

2017年3月13日更新

すでに上記のような状況に直面している人は問題を解決するだけです既存のゲストは以下の元の答えを使用します。しかし、これらの苦痛を経験したくない人のために、kickstartファイルの%postセクションに以下を追加することができます。

%post --nochroot
(
    sed -i "s;quiet;quiet console=ttyS0;" /target/etc/default/grub
    sed -i "s;quiet;quiet console=ttyS0;g" /target/boot/grub/grub.cfg
) 1> /target/root/post_install.log 2>&1
%end

これにより、キックスタートファイルを使用して展開する新しいゲストにこの問題が発生しないように、以下に説明するようにgrubに必要な変更が行われます。

元の答え

arp -anホストで使用されているIPを見つけた後にSSH経由で接続する場合は、次の手順を実行できます(このページの下部で検索されました)ゲストとつながると

Grub設定ファイルを編集します。

sudo vim /etc/default/grub

次のようにパラメータconsole=ttyS0にテキストを追加します。GRUB_CMDLINE_LINUX_DEFAULT

ここに画像の説明を入力してください。

次に、次のコマンドを実行して、変更内容で grub メニューを再構築します。

sudo update-grub

virsh console [guest ID]

これは将来のカーネルがシステムに追加されても機能し続けますが、まず、ゲストにSSHで接続する必要がないソリューションを好みます。

答え3

@Programsterの優れた回答で提案されているように、インストール後の手順でgrub設定を変更します。他の状況でこれを行う方法は次のとおりです。

Debconfプロファイルを使用してUbuntu 16.04をインストールするときは、プロファイルに以下を追加してください。

di preseed/late_command 文字列 (\
    sed -i "s;quiet;quiet console=ttyS0;" /target/etc/default/grub;
    sed -i "s;quiet;quiet console=ttyS0;g" /target/boot/grub/grub.cfg \
) 1>/target/root/post_install.log 2>&1

Kickstart を使用して RHEL 7 または CentOS 7 をインストールする場合は、kickstart ファイルに以下を追加します.

%post --nochroot --log /mnt/sysimage/root/post.log
    sed -i "s;quiet;quiet コンソール=ttyS0;" /mnt/sysimage/etc/default/grub
    sed -i "s;quiet;quiet console=ttyS0;g" /mnt/sysimage/boot/grub2/grub.cfg
)> /mnt/sysimage/root/post_install.log 2>&1
%終了

答え4

より簡単で簡単な方法Red Hat ドキュメント

grubby --update-kernel=ALL --args="console=ttyS0"
reboot

関連情報