Presque constamment, j'utilise des noyaux du noyau Ubuntu PPA , ou des noyaux que j'ai compilés moi-même, en utilisant la configuration du noyau Ubuntu.
Le problème est que lorsque j'utilise le noyau d'origine, il semble utiliser par défaut des noms d'interface réseau prévisibles (c'est-à-dire "p4p1"), mais lorsque j'utilise un autre noyau, il semble utiliser par défaut l'ancienne méthode (c'est-à-dire "eth0").
Bien que cela ne soit pas vraiment pertinent pour cette question, j'ai eu une panne de disque dur sur mon ordinateur de test et je fais une nouvelle installation d'Ubuntu Server 14.04.2.
Je n'ai pas pu déterminer quelle est la différence entre les noyaux. Je soupçonne un paramètre de configuration du noyau, mais je n'ai pas pu identifier lequel.
Ma question: comment faire fonctionner les noms d'interface réseau prévisibles de manière cohérente sur tous les noyaux?
Notes supplémentaires: Quelque part, j'ai vu désactiver les noms d'interface réseau prévisibles pour l'ajouter à grub:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
donc, je pensais que le contraire pourrait aider:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
mais cela ne faisait aucune différence. En fait, je ne peux jamais obtenir que le noyau non stocké utilise biosdevname, quel que soit le paramètre. Et je ne peux jamais obtenir du noyau de stock pour générer un /etc/udev/rules.d/70-persistent-net.rules
fichier (même si ce n'est pas ce que je veux), peu importe le réglage de net.ifnames
. Si je l'ai net.ifnames=1
, alors au moins le noyau non stocké ne génère pas de /etc/udev/rules.d/70-persistent-net.rules
fichier incorrect .
Extraits de /var/log/udev
:
stock kernel:
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
Depuis le noyau Ubuntu PPA 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
Remarque: J'ai temporairement dépassé ce problème en autorisant la /etc/udev/rules.d/70-persistent-net.rules
création d' un fichier, puis en le modifiant pour les noms de périphérique appropriés. En fin de compte, je voudrais me débarrasser du fichier.
la source
net.ifnames=1
etbiosdevname=0
, comme décrit dans le lien que vous avez donné, mais j'obtiens les anciens eth0 et eth1. Quoi qu'il en soit, cela fonctionne pour n'importe quel noyau maintenant (sans/etc/udev/rules.d/70-persistent-net.rules
), après avoir modifié/etc/network/interfaces
pour refléter les noms d'interface appropriés.wlp4s0
etenp0s31f6
, et les fichiers/etc/udev/rules.d/70-persistent-net.rules
&/lib/udev/rules.d/75-persistent-net-generator.rules
n'existent pas.75-persistent-net-generator.rules
fichier est déconseillé en faveur denet.ifnames
.Dans Ubuntu Server 16.04LTS, tout ce que j'ai fait a été exécuté:
Créez ensuite le fichier en utilisant
et ajoutez ce qui suit
:wq
enregistrer le fichierpuis redémarrez et ajustez votre
/etc/network/interfaces
fichier .. puis redémarrez à nouveauJ'espère que cela aide quelqu'un
la source