KVM故障调试经验分享

运维 系统运维
本文是作者的实战经验分享,在UBuntu12.04.2系统安装KVM,随后创建虚拟机,出现了新的问题。ping不通虚拟机,ssh登录不上,console方式登录不上, 虚拟机无法shutdown,貌似电源管理也没有安装成功。看看最后是如何解决的。

  本次在UBuntu12.04.2系统安装KVM,随后创建虚拟机,又出现了新的问题。

  现象:

  ping不通虚拟机,ssh登录不上,console方式登录不上, 虚拟机无法shutdown,貌似电源管理也没有安装成功。

先来解决网络问题:

  还好可以通过virt-cat来检查虚拟机内部的文件。

先关闭虚拟机

  virsh destroy vm1

  然后检查网卡设置文件:

  root@dbkvm:~# virt-cat -d vm1 /etc/network/interfaces
  # This file describes the network interfaces available on your system
  # and how to activate them. For more information, see interfaces(5).
  # The loopback network interface
  auto lo
  iface lo inet loopback
  # The primary network interface
  auto eth0
  iface eth0 inet static
  address 192.168.1.51
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  # dns-* options are implemented by the resolvconf package, if installed
  dns-nameservers 8.8.8.8
  dns-search localdomain

  这个dns-search localdomain看上去很奇怪。一般是defaultdomain。

  localdomain是因为host机器的/etc/hosts中配置成了:

  127.0.0.1       localhost.localdomain dbkvm

  将其换成这种配置:

  127.0.0.1   localhost
  127.0.1.1   dbkvm

  再创建虚拟机,网络正常了。可以ping通,可以ssh登录。 console问题还有。

  虚拟机里面的网络设置dns-search 被设置成了defaultdomain。

  因此推测是hosts文件的配置错误,导致虚拟机中网卡设置的dns-search错误,导致无法连接网络,因此不能在创建过程中从网络下载安装openssh-server.

  来看一下电源管理

  如果不安装电源管理,就不能在host主机通过shutdown关闭虚拟机。

  在创建vm的选项中需要补上:

  --addpkg=acpid

  事后弥补就要登录到虚拟机中,然后运行命令:

  apt-get install acpid

  再来处理console不能登录的问题。

  先停止虚拟机。

  virsh stop vm1

  准备一个文件ttyS0.conf, 内容如下:

  # ttyS0.conf - getty
  # This service maintains a getty on ttyS0 from the point the system is
  # started until it is shut down again.
  start on stopped rc RUNLEVEL=[2345]
  stop on runlevel [!2345]
  respawn

  安装guestfish程序:

  apt-get install guestfish

  现在用virt-copy-in将文件复制到vm的/etc/init目录中:

  virt-copy-in -d vm1 ttyS0.conf /etc/init

  然后调用virsh edit vm1 来编辑vm1的配置文件,添加下面的内容:

  <devices>
  ...
  <serial type='pty'>
  <source path='/dev/pts/2'/>
  <target port='0'/>
  </serial>
  <console type='pty' tty='/dev/pts/2'>
  <source path='/dev/pts/2'/>
  <target port='0'/>
  </console>
  </devices>

  ***试用一下:

  virsh start vm1
  Domain vm1 started
  root@dbkvm:~/kvm_scripts# virsh console vm1
  Connected to domain vm1
  Escape character is ^]
  Ubuntu 12.04.2 LTS vm1 ttyS0
  vm1 login: root
  Password:
  Last login: Thu May  2 09:21:03 UTC 2013 from 192.168.1.4 on pts/1
  Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-41-virtual x86_64)

  可以了。所有问题的根源都出在那个不正确的host机器上的/etc/hosts配置。

责任编辑:黄丹 来源: 博客
相关推荐

2009-12-16 16:37:59

Ruby on Rai

2012-01-30 13:58:36

Linux Deepi Gnome Shel

2014-04-02 10:56:21

2023-02-28 15:40:16

鸿蒙CPU渲染

2023-03-23 16:02:07

树莓派4GPU调试

2014-02-25 11:27:49

运维经验紧急故障

2011-07-12 13:41:15

C++

2009-09-28 10:52:00

CCNA考试经验CCNA

2009-09-16 08:54:02

思科认证CCIECCNA

2009-12-22 16:03:03

WCF异常

2009-12-18 17:01:37

Ruby基础代码

2009-12-22 19:26:51

WCF绑定

2011-05-16 17:36:05

SEO

2009-12-25 09:44:52

WPF窗口设置

2009-12-07 11:11:46

PHP显示图片

2009-10-15 10:59:00

CCNA经验分享CCNA

2011-07-15 17:35:19

JavaScript

2020-12-17 10:08:51

勒索病毒安全信息安全

2019-06-14 14:15:07

Javascript调试技巧代码

2013-01-06 10:05:40

VissensaKVM
点赞
收藏

51CTO技术栈公众号