Linux

在核心 3.15.6 上傳入/編譯虛擬化模組的新核心上似乎不存在設備 eth0

  • July 28, 2014
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

您的虛擬 NIC 完全失去。既然您說您編譯了自己的核心,我認為您很可能忘記包含 Hyper-V 半虛擬驅動程序。您使用的是 Hyper-V,而不是 KVM,因此 KVM 和 Xen 的這些選項無關緊要。

具體來說,您正在尋找CONFIG_HYPERV_NETHyper-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

引用自:https://serverfault.com/questions/615874