cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:5D:02:14:22", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
和
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisk noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00: brd 00:00:00:00:00:00
和
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:15:5D:02:14:22
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
我一直收到这个错误Device eth0 does not seem to be present
。
这是在 Hyper-V 机器上,我还安装了最新的集成服务。HWADDR 与我为 Hyper-V 机器设置的一致。
编辑:我编译并启动了内核 3.15.6,并在内核中启用了 KVM/XEN 支持。启用这些选项会不会有问题?我从默认的 CentOs 6.5 内核加载了配置,因此一切启动正常,但没有网络。
如果我启动默认的 2.6.32 内核,eth0 就会返回。
我需要做什么?
我启用了以下选项:在处理器类型和功能-->Linux 客户支持下:
--- Linux guest support
[*] Enable paravirtualization code
[ ] paravirt-ops debugging (NEW)
[*] Paravirtualization layer for spinlocks
[*] Xen guest support (NEW)
[*] KVM Guest support (including kvmclock) (NEW)
[ ] Enable debug information for KVM Guests in debugfs (NEW)
[*] Paravirtual steal time accounting (NEW)
在虚拟化下:
--- Virtualization
<M> Kernel-based Virtual Machine (KVM) support
<M> KVM for Intel processors support
<M> KVM for AMD processors support
[*] KVM legacy PCI device assignment support
<M> Host kernel accelerator for virtio net
答案1
您的虚拟 NIC 完全缺失。由于您说您编译了自己的内核,我认为您很可能忘记包含 Hyper-V 半虚拟驱动程序。您使用的是 Hyper-V,而不是 KVM,因此 KVM 和 Xen 的那些选项无关紧要。
具体来说,您正在寻找CONFIG_HYPERV_NET
Hyper-V 虚拟网络接口。您可能还想包括用于 SCSI 磁盘、动态内存等的其余 Hyper-V 驱动程序。
在我自己的 3.15.6 系统上,我有:
CONFIG_HYPERV_STORAGE=m
CONFIG_HYPERV_NET=m
CONFIG_HYPERV_KEYBOARD=m
CONFIG_FB_HYPERV=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HYPERV=m
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m