Debian 8を KVM管理ツール に追加したところ、 grubブート構成にconsole=ttyS0
を追加しない限り、コンソールにアクセスできませんでした であることがわかりました。それは素晴らしいことではありませんでしたが、うまくいきました。私はUbuntu 16.04を管理ツールに追加している最中ですが、今回はゲストがインストールされているときに同じ問題がありますが、コンソールに接続しているときにインスタンスを再起動すると、grubメニューオプションが表示されなくなります。したがって、回避策を実装できません。
ハイパーバイザでarp -an
を実行し、適切なIPアドレスが見つかるまでKVMブリッジのIPに接続することで、ゲストインスタンスのIPアドレスを見つけることができました。これにより、ゲストが正しくインストールされ、実行されていることを確認します。ネットワークに問題が発生した場合、またはopensshが突然動作を停止した場合に備えて、Sudo virsh console [guest ID]
を使用してコンソールに接続できるようにしたいと思います。ハイパーバイザーからゲストUbuntu 16.04コンソールに接続するために何をする必要がありますか?
私の直感は、Sudo virsh edit [guestID]
によってアクセスされる構成設定を微調整するだけでよいということです。現時点で私は:
...
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
...
上記の状況にすでにある場合は、以下の元の回答を使用して、既存ゲストを修正できます。ただし、この問題を二度と経験する必要がない方は、キックスタートファイルの%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アクセスを必要としないソリューションが欲しいです。
ありがとう@Programsterソリューションは私のために働きます。 SSHアクセスすらできないので、virt-editをインストールして使用する必要があります。
Sudo apt install libguestfs-tools
Sudo virt-edit -d myVM /boot/grub/grub.cfg
Grub.cfgファイルでquiet
のすべてのインスタンスをquiet console=ttyS0
に置き換え、コンソール接続用にmy VMを開始します。
virsh start myVM && virsh console myVM
ログイン後、@ programsterの回答ごとにgrubを編集および更新することを忘れないでください。
@Programsterの優れた回答で提案されているように、インストール後の手順でGRUB構成を修正します。ここでは、他の状況でそれを行う方法を示します。
Debconf preseedファイルを使用してUbuntu 16.04をインストールする場合、これをpreseedファイルに追加します。
di preseed/late_command string(\ 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
キックスタートを使用してRHEL 7またはCentOS 7をインストールする場合は、これをキックスタートファイルに追加します。
%post --nochroot --log /mnt/sysimage/root/post.log ( sed -i "s; quiet; quiet console = 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 %end
redhat docs による、よりシンプルで簡単な方法
grubby --update-kernel=ALL --args="console=ttyS0"
reboot