เกือบตลอดเวลาฉันใช้เมล็ดจากเคอร์เนล Ubuntu PPAหรือเมล็ดที่ฉันรวบรวมเองโดยใช้การตั้งค่าเคอร์เนล Ubuntu
ปัญหาคือเมื่อฉันใช้เคอร์เนลหุ้นดูเหมือนว่าจะเริ่มต้นการใช้ชื่อเครือข่ายอินเทอร์เฟซที่คาดเดาได้ (เช่น "p4p1") แต่เมื่อฉันใช้เคอร์เนลสำรองใด ๆ ดูเหมือนว่าจะใช้วิธีเก่า (เช่น "eth0")
ในขณะที่ไม่เกี่ยวข้องกับคำถามนี้ฉันมีความล้มเหลวของฮาร์ดดิสก์ในคอมพิวเตอร์ทดสอบของฉันและกำลังติดตั้งใหม่ของ Ubuntu Server 14.04.2
ฉันไม่สามารถระบุความแตกต่างระหว่างเมล็ดได้ ฉันสงสัยว่าพารามิเตอร์การกำหนดค่าเคอร์เนล แต่ไม่สามารถระบุได้
คำถามของฉัน: ฉันจะทำให้ชื่ออินเทอร์เฟซเครือข่ายที่คาดเดาได้ทำงานอย่างสม่ำเสมอในทุกเมล็ดได้อย่างไร
หมายเหตุเพิ่มเติม: บางที่ฉันเห็นเพื่อปิดใช้งานชื่อเครือข่ายอินเทอร์เฟซที่คาดเดาได้เพื่อเพิ่มสิ่งนี้ลงในด้วง:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
ดังนั้นฉันคิดว่าสิ่งที่ตรงกันข้ามอาจช่วยได้:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
แต่มันก็ไม่ได้สร้างความแตกต่าง ที่จริงแล้วฉันไม่เคยได้รับเคอร์เนลที่ไม่ใช่หุ้นที่จะใช้ biosdevname ไม่ว่าการตั้งค่า และผมก็ไม่เคยได้รับเคอร์เนลหุ้นเพื่อสร้าง/etc/udev/rules.d/70-persistent-net.rules
ไฟล์ (แม้ว่าที่ไม่ได้เป็นสิ่งที่ฉันต้องการ) net.ifnames
ไม่มีเรื่องของการตั้งค่า ถ้าฉันมีnet.ifnames=1
อย่างน้อยเคอร์เนลที่ไม่ใช่หุ้นจะไม่สร้าง/etc/udev/rules.d/70-persistent-net.rules
ไฟล์ที่ไม่ถูกต้อง
ข้อความที่ตัดตอนมาจาก/var/log/udev
:
เคอร์เนลหุ้น:
KERNEL[9.216730] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
IFINDEX=2
INTERFACE=p4p1
SEQNUM=1945
SUBSYSTEM=net
...
UDEV [9.241073] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
ID_BUS=pci
ID_MODEL_FROM_DATABASE=P8P67 and other motherboards
ID_MODEL_ID=0x8168
ID_NET_NAME_MAC=enxf46d04652d8e
ID_NET_NAME_PATH=enp3s0
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
ID_VENDOR_ID=0x10ec
IFINDEX=2
INTERFACE=p4p1
จาก Ubuntu PPA kernel 4.1RC5:
KERNEL[10.772566] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0
IFINDEX=2
INTERFACE=eth0
SEQNUM=1962
SUBSYSTEM=net
...
UDEV [11.185866] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0
ID_BUS=pci
ID_MODEL_FROM_DATABASE=P8P67 and other motherboards
ID_MODEL_ID=0x8168
ID_NET_NAME_MAC=enxf46d04652d8e
ID_NET_NAME_PATH=enp3s0
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
ID_VENDOR_ID=0x10ec
IFINDEX=2
INTERFACE=eth0
SEQNUM=1962
SUBSYSTEM=net
USEC_INITIALIZED=3227
หมายเหตุ: ฉันได้ย้ายที่ผ่านมาปัญหานี้ชั่วคราวโดยการอนุญาตให้สร้าง/etc/udev/rules.d/70-persistent-net.rules
ไฟล์แล้วแก้ไขสำหรับชื่ออุปกรณ์ที่เหมาะสม ท้ายที่สุดฉันต้องการกำจัดไฟล์
net.ifnames=1
และbiosdevname=0
ตามที่อธิบายไว้ในลิงก์ที่คุณให้ แต่ฉันได้รับ eth0 และ eth1 เก่า อย่างไรก็ตามมันใช้งานได้กับเคอร์เนลใด ๆ ในตอนนี้ (ไม่ใช้/etc/udev/rules.d/70-persistent-net.rules
) หลังจากที่ฉันแก้ไข/etc/network/interfaces
เพื่อแสดงชื่ออินเตอร์เฟสที่เหมาะสม