
私はいくつかの異なるPCで使用される起動可能なLinuxメモリスティックを持っています(ただし、モデルと設定はすべて同じです)。問題はudevがethインターフェースの名前を変更するので、eth0
最後のPCにあるものが突然ethXになるということです。ここで X=1..inf です。/etc/network/interfaces
起動方法のみが指定されているため、if-up(ifplugdによって呼び出される)が失敗しますeth0
。
auto eth0
iface eth0 inet dhcp
これはよく知られた問題です。検索した結果、これはMACアドレスの変更によって発生し、削除できることがわかりました/etc/udev/rules.d/70-persistent-net.rules
。しかし、これは再起動後にのみ機能し、これは不便であり、私が望む動作が何であるかを知っているので、必要ありません。
私が望むもの非持続的netルールまたは/etc/network/interfaces
eth名の変更に適応するスクリプトまたはifplugdを使用して実行できます。これを達成するための最良の方法は何ですか?
ディストリビューション:Ubuntu 8.04。
答え1
継続的なネットワークルールは/lib/udev/rules.d/75-persistent-net-generator.rules
(または類似の最新のDebianシステムを探しています)生成されます。
Ubuntu 8.04の/etc/udev/rules.dにジェネレータスクリプトがまだある場合は削除できます。
それ以外の場合は、/etc/udev/rules.dに空のファイルを入れると、/libのファイルを上書きする可能性があります。
インターフェイス名を指定するために独自のルールファイルを作成することもできます。名前がすでに設定されている場合、永続ルールジェネレータはインターフェイスを無視します。
答え2
私はderobertのアドバイスに従って、次のように/etc/udev/rules.d/75-persistent-net-generator.rules
生成されたコンテンツを削除して編集しました。/etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth*", NAME="%k"
%k
ではNAME
カーネル名を使うという意味です。