Linux
在核心 3.15.6 上傳入/編譯虛擬化模組的新核心上似乎不存在設備 eth0
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_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