一.問題描述:
KVM中宿主機通過console無法連接客戶機,卡在這裡不動了。
# virsh console vm01
Connected to domain vm01
Escape character is ^]
為KVM客戶機添加virsh console支持 http://www.linuxidc.com/Linux/2013-02/79556.htm
二、解決辦法:利用vnc或宿主機的桌面進入客戶機vm01中添加參數
1、添加ttyS0的安全許可,允許root登錄:
# echo "ttyS0" >> /etc/securetty
2、在/etc/grub.conf文件中為內核添加參數:
console=ttyS0
這步要注意:
console=ttyS0一定要放在kernel這行中(大約在第16行),不能單獨一行,即console=ttyS0是kernel的一個參數,不是單獨的,如下(往右拉進度條,在最後):
# cat -n /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0
initrd /initramfs-2.6.32-431.el6.x86_64.img
3、在/etc/inittab中添加agetty:
S0:12345:respawn:/sbin/agetty ttyS0 115200
4、重啟客戶機:
# reboot
三、問題解決
# virsh console vm01
Connected to domain vm01
Escape character is ^]
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
vm01 login: root
Password:
Last login: Sun Oct 12 00:11:47 on tty1
[root@vm01 ~]#
附:關於終端的基本概念匯總:
tty(終端設備的統稱):
tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱讀和發送信息的東西,後來這東西被鍵盤與顯示器取代,所以現在叫終端比較合適。
終端是一種字符型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。
pty(偽終端,虛擬終端):
但是如果我們遠程telnet到主機或使用xterm時不也需要一個終端交互麼?是的,這就是虛擬終端pty(pseudo-tty)
pts/ptmx(pts/ptmx結合使用,進而實現pty):
pts(pseudo-terminal slave)是pty的實現方法,與ptmx(pseudo-terminal master)配合使用實現pty。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-10/107891p2.htm