ほとんど常に、私はUbuntuカーネルPPAからのカーネル、またはUbuntuカーネル構成を使用して自分でコンパイルしたカーネルを使用しています。
問題は、ストックカーネルを使用している場合、デフォルトで予測可能なネットワークインターフェイス名(つまり "p4p1")を使用しているようですが、別のカーネルを使用している場合は、古い方法(つまり "eth0")を使用しているようです。
この質問にはあまり関係がありませんが、テストコンピューターでハードディスクの障害が発生し、Ubuntu Server 14.04.2の新規インストールを実行しています。
カーネル間の違いを判断できませんでした。カーネル構成パラメーターを疑っていますが、どれを特定できませんでした。
私の質問:予測可能なネットワークインターフェイス名をすべてのカーネルで一貫して機能させるにはどうすればよいですか?
追記:どこかで、予測可能なネットワークインターフェイス名を無効にしてこれをgrubに追加しました。
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カーネル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
は適切なインターフェイス名を反映するように編集した後、(なしで)現在すべてのカーネルで動作します。