私は単一のイーサネットインターフェイスを持つqemuベースの仮想マシンでCentOS-6.5を実行していますが、驚くべきことにudevは何らかの理由で名前をeth0からeth1に変更しました(!)
だから私はこの動作を完全に無効にしたいと思います。つまり、カーネルのコマンドラインに "net.ifnames=0" を渡したいのです。動作しないようで、動作が変わりません。カーネルパラメータ「biosdevname = 0」も役に立ちません。
% qemu-system-x86_64 -cpu host -boot c -hda my_image.qcow2 -snapshot
-m 1024 --enable-kvm -name vm0 -nographic -display curses -pidfile
/var/run/vm0.pid -mem-path /dev/hugepages -mem-prealloc -monitor
unix:/var/run/vm0monitor,server,nowait -net none -netdev
type=tap,id=net0,script=no,downscript=no,ifname=vhost1,vhost=on
-device virtio-net-pci,netdev=net0,mac=00:00:00:00:00:01,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off
警告やエラーはなく、後で仮想マシンにログインできます。しかし、udevは単一のネットワークインターフェイスの名前をeth0からeth1に変更したようです。これは起動時に自動的に生成されるルールファイルです。
% cat /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:00:00:00:0
1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
virtio-pciドライバがシステムの単一インターフェイスとしてeth1を選択するのはなぜですか?
ただし、mac = ..オプションなしでqemuを実行すると、これは発生しません。 MACアドレスはqemuの事前定義された52:54:xxxですが、コマンドラインでMacを提供したいと思います。
答え1
削除:
/etc/udev/rules.d/70-persistent-net.rules
そして再起動してください。udev
ネットワークアダプタを見つけて名前を付けますeth0
。次に、アダプタ名を一貫して指定するための規則を使用して上記のファイルを再作成しますeth0
。
ファイルを削除する前に読んで、アダプター名を指定する規則を見つけることができますeth1
。ファイルには、特定のアダプターの名前を指定する他の規則がある場合がありますeth0
。過去のある時点でアダプタを交換した場合、これは頻繁に発生します。
この動作を完全に無効にするには、ファイルをシンボリックリンクの上に作成します/dev/null
。
# ln -s /dev/null /etc/udev/rules.d/70-persistent-net.rules