笔者在部署 KVM 虚拟机时曾遇到一个奇怪的问题,几经探索之后终于解决,现在写出来跟大家分享一下。

笔者在单位部署了一台服务器,上面运行着几部 KVM 虚拟机,分别执行不同的任务。系统上线之后,需要再增加几部虚拟机。因为当初部署服务器时做了虚拟机备份,所以就复制了一个备份的虚拟机。可是新虚拟机启动之后无法在本地网络上找到新虚拟机的 IP 地址(本地网络采用 DHCP 分配 IP 地址)!因为服务器是远程控制的,当然新虚拟机也就无法使用了。

为了查找原因,笔者把虚拟机复制到本地主机上,用正常方法开启。启动过程及登录都很正常,于是检查网卡状况:

$ ifconfig

可是却只有显示 lo 信息! 怪了,eth0 呢?只有 lo 当然是没有办法同网络通讯的。于是查找一下启动信息:

$ dmesg | grep eth

发现如下信息:

udev: renamed network interface eth0 to eth1

原来 eth0 已经没有了,被命名为 eth1, 再看网卡配置

$ cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp

至此事情水落石出,原来 KVM 是在启动时传递 mac 参数的,如笔者是用下面命令启动 KVM 虚拟机:

$ sudo kvm -m 256 -hda /data/kvm/mail.img -net nic,vlan=0,macaddr=52-54-00-12-30-05 -net tap,vlan=0,ifname=tap5,script=no -boot c -smp 2 -daemonize -nographic &

注意上面的 macaddr=52-54-00-12-30-05,这就是虚拟机启动后的网卡 mac,因为网络内不可以有相同的 mac,所以启动每个虚拟机的 mac 都要改。可是当换了新的 mac 后,虚拟机里的系统就认为换了新网卡,所以系统改变 eth0 为 eth1,而在网卡设置里面却只设置了 eth0, 所以虚拟机启动之后并没有启动新的 eth1 网卡,当然就连不上网络了。原因找到了之后问题的解决也就非常简单:

$ vi /etc/network/interfaces

增加以下内容:

auto eth1
iface eth1 inet dhcp

再重新启动网络:

$ /etc/init.d/networking restart

至此问题应该就完全解决了。不过有个问题还要注意,如果有多次用不同的 mac 启动虚拟机,可能你的虚拟机里已经有了 eth2, eth3 甚至是 10 都是有可能的,因为你每用一个新的 mac 去启动虚拟机,系统就会增加一个网卡。可以修改下面这个文件:

$ vi /etc/udev/rules.d/70-persistent-net.rules

删除所有的的 ethX 行,重启虚拟机即可。

[zz]KVM 虚拟机故障排除一例相关推荐

  1. ubuntu tftp 服务器故障排除一例

    最近利用ubuntu搭建tftp调试环境: sudo apt-get install tftp tftpd sudo apt-get install xinetd tftp127.0.0.1可以put ...

  2. gateway 内存溢出问题_带你学习jvm java虚拟机 arthas/性能调优/故障排除/gc回收/内存溢出等...

    学完本课程,您将掌握: 内存溢出问题实战 CPU飙升问题实战 阿里巴巴Arthas在线诊断 Class字节详细拆解 手写类加载器.四种类加载器.双亲委托模型 对象创建.存储.访问.加载解析 性能调优. ...

  3. 记一次网络故障排除:nat虚拟机不能ping外网 浏览器可以上网

    记一次网络故障排除:nat虚拟机不能ping外网 浏览器可以上网 起因 在虚拟机中使用A软件需要联网注册,但是注册失败,随手ping了一下baidu,不通.但是可以用浏览器打开baidu. 解决 管理 ...

  4. kvm连接服务器显示不全有重影,KVM的使用中最常见的故障排除与处理

    原标题:KVM的使用中最常见的故障排除与处理 数据中心管理者在使用KVM切换器的过程中有时会遇到一些使用问题,如果不能及时解决不仅会影响数据中心的高效管理,而且还会给整个系统带来很大程度的不便.以下列 ...

  5. mysql无法在kvm虚拟机上_使用KVM虚拟机遇到的问题(持续更新)

    1.qemu-kvm.kvm.qemu 和 qemu-system-x86_64四种命令的差别 qemu 和 qemu-system-x86_64:启动qemu虚拟机的命令,x86_64为64位系统时 ...

  6. centos7 qemu -- 03 使用KVM虚拟机遇到的问题

    1.qemu-kvm.kvm.qemu 和 qemu-system-x86_64四种命令的区别 qemu 和 qemu-system-x86_64:启动qemu虚拟机的命令,x86_64为64位系统时 ...

  7. 教程篇(6.4) 07. 诊断和故障排除 ❀ FortiManager ❀ Fortinet 网络安全专家 NSE 5

     在本课中,你将学习如何诊断和排除与FortiManager和被管理设备相关的问题.  在这节课中,你将学习这张幻灯片上显示的主题.  完成此部分后,你应该能够实现此幻灯片上显示的目标. 通过展示理解 ...

  8. Centos-7.5Linux系统启动原理及故障排除

    本节所讲内容: 17.1 centos6系统启动过程及相关配置文件 17.2 centos7系统启动过程及相关配置文件 17.3 实战-加密grub防止黑客通过单用户系统破解root密码 17.4 实 ...

  9. Proxmox VE 6.0管理指南——10. Qemu / KVM虚拟机

    10. Qemu / KVM虚拟机 Qemu(Quick Emulator的缩写)是一个模拟物理计算机的开源虚拟机管理程序.从运行Qemu的主机系统的角度来看,Qemu是一个用户程序,可以访问许多本地 ...

最新文章

  1. 前端笔记(3)css,选择器,文字文本属性,外观属性
  2. TSPL学习笔记(1)
  3. pycharm如何改为中文显示?
  4. Smarty 入手学习教程
  5. 【LINUX系列】之字符串搜索命令
  6. freemarker处理嵌套属性是否为空的判断
  7. ASoC Codec驱动代码框架图
  8. 漫画:什么是二叉堆?
  9. eclipse+java类不报错_eclipse,代码中有错误,项目或者java类中却不显示红叉
  10. 多进程/多线程的比较
  11. USB转串口 TTL RS-232 RS-485 COM口 UART区别
  12. 如何下载安装 Visual Studio2010
  13. This Product is covered by one or more of the following......的问题
  14. 洛谷P2757 [国家集训队]等差子序列
  15. GoogleVRForUnity✨一款常用的谷歌VR插件教程
  16. 私有云搭建使用docker搭建
  17. 利用Hessian矩阵的Frangi 滤波器-python版本
  18. 百度鹰眼轨迹和虎鲸数据平台之浅谈
  19. 工作总结与个人职业经历
  20. 黎曼猜想(一) 欧拉乘积式

热门文章

  1. form表单input使用disabled后提交不能获取表单值的解决方法
  2. [Ext JS 4] Extjs 图表 Legend(图例)的分行与分列显示
  3. 修改tomcat服务器图标,如何更改tomcat图标
  4. ib什么意思_科普|听说邻居的孩子去了IB学校,IB具体是什么?
  5. php 实现类似asp.net中的datagridview效果,asp.net中使用DatagridView的增删改方法具体实现...
  6. oracle 如何修改字符集 update prop,ORACLE 修改字符集
  7. matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...
  8. 光引发剂主要用途_食品级uv油墨光引发剂的安全使用
  9. python restful api_用Python语言写一个restful API
  10. JSP ---- 入门