解决复制虚拟机无法识别网卡的问题

  最近在学习Linux程序设计及驱动相关知识,买了宝华老师的书,但是在把baohua_linux复制到本地之后,从虚拟机进入ifconfig,只有lo网络,没有其他网卡,虚拟机的网络适配器设置为NAT模式。

  通过查阅相关资料,网上都是指出复制之后,新的UUID和网卡不再匹配,但是我按照这种思路,没有在/etc/udev/rules.d/70-persistent-net.rules找到对应的规则文件,重启之后也没有自动生成,因此考虑手动生成的方式。

在终端下依次执行以下命令:

  • export MATCHADDR=”00:f1:f3:1a:f0:05” eth0网卡的mac地址,一定要小写
  • export INTERFACE=eth0 eth0网卡名称
  • /lib/udev/write_net_rules

执行完后,对应目录下生成相应的文件,其中物理地址选择你复制过来的网卡的地址。但是在进行完以上修改之后,还是识别不到网卡,通过lspci | grep Eth*指令,查看发现虚拟机下网卡驱动为

Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)

进一步查找原因,原来是由于在目前VMware都在虚拟客户机中提供的是古老的AMD PCNet10/100Mbps虚拟网卡,后来,VMware通过一种类似部分虚拟化的vmxnet优化虚拟网卡的方式提供了10/100 /1000Mbps性能,无疑性能更好。现在,VMware ESX Server已经可以提供基于Intel E1000的千兆虚拟网卡,从兼容性和性能的角度来看,E1000都是更好的选择。

类型可以选择多项
值为”e1000”指定网卡类型为Intel(R) PRO/1000
值为”vlance”指定网卡类型为AMD PCNet AM79C970A(默认为此项不兼容)
值为”vmxnet”指定网卡类型为VMware PCI Ethernet Adapter

因此打开VMware 虚拟机配置 (.vmx),在其中添加一行ethernet0.virtualDev = “e1000”。添加完成后启动虚拟机进入后发现网络可以自动识别连接,搞定。

参考:
VMware 下Linux 移动/复制后无法识别网卡的解决过程.
手动生成70-persistent-net.rules.


你可能感兴趣的:(嵌入式Linux开发)