Console

訪問 Ubuntu 16.04 KVM Guest 的控制台

  • January 13, 2019

當我將 Debian 8 添加到我的KVM 管理工具時,我發現除非我添加到 grub 引導配置,否則我無法訪問控制台console=ttyS0。這不是很好,但它奏效了。我正在將 Ubuntu 16.04 添加到管理工具中,這次安裝來賓時遇到了同樣的問題,但是當我在連接到控制台時重新啟動實例時,我不再看到 grub 菜單選項。因此,我無法實施解決方法。

我設法通過在管理程序上執行arp -an並連接到 KVM 網橋上的 IP 來找到來賓實例的 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

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 進行必要的更改,如下所述,以便您通過使用 kickstart 文件部署的新來賓不會遇到此問題。

原始答案

對於那些在找出主機上使用的 IP 後設法通過 SSH 連接的人,您可以在連接到訪客後arp -an執行以下步驟(取自本頁底部)。

編輯 grub 配置文件:

sudo vim /etc/default/grub

將文本添加console=ttyS0GRUB_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

quiet替換quiet console=ttyS0grub.cfg 文件中的所有實例並啟動我的 VM 以進行控制台連接。

virsh start myVM && virsh console myVM

登錄後不要忘記根據@programster 的回答編輯和更新 grub。

引用自:https://unix.stackexchange.com/questions/288344