netスクリプトが削除された古い物理ネットワークインターフェイスをアップグレードしようとします。

netスクリプトが削除された古い物理ネットワークインターフェイスをアップグレードしようとします。

状況:カーネル付きのGentoo3.8.4

AMD64

Udev 218

systemdなし、initramなし、古いネットワークudevルールなし

以前は、ネットワークインターフェイス3つ(オンボードインターフェイス2つ、pciインターフェイス1つ、すべてのr8189モジュールインターフェイス)

ネットワークショート後、2台のオンボードデバイスが動作を停止し、Biosでそのデバイスを無効にし、正しく動作するPCI R8189 Gibtモジュールを追加しました(インターネット、SSH、データ転送、すべてがうまく機能しました)。

lspci |grep Eth
03:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller (rev 10)

ただし、Sambaをバージョン4にアップグレードしてSambaサービスを再起動すると、次のエラーメッセージが表示されます。

 /etc/init.d/samba restart
 * Caching service dependencies ...                                                                               [ ok ]
 * Bringing up interface enp2s0
 *   ERROR: interface enp2s0 does not exist
 *   Ensure that you have loaded the correct kernel module for your hardware
 * ERROR: enp2s0 failed to start
 * ERROR: cannot start samba as enp2s0 would not start

だから、「古い」情報がまだ表示されている場所を見つけようとしています。

rc-update show
         bootmisc | boot
       consolekit | boot
            devfs |                       sysinit
            dmesg |                       sysinit
             fsck | boot
           hdparm |      default
         hostname | boot
          hwclock | boot
          keymaps | boot
        killprocs |              shutdown
       lm_sensors |      default
            local |      default
       localmount | boot
         loopback | boot
          modules | boot
         mount-ro |              shutdown
             mtab | boot
           net.lo | boot
         netmount |      default
             nrpe |      default
           procfs | boot
             root | boot
            samba |      default
        savecache |              shutdown
             sshd |      default
             swap | boot
        swapfiles | boot
           sysctl | boot
            sysfs |                       sysinit
        syslog-ng |      default
     termencoding | boot
     tmpfiles.dev |                       sysinit
   tmpfiles.setup | boot
             udev |                       sysinit
          urandom | boot
       vixie-cron |      default

AN grep enp2s0 2>/dev/null /etc/*(およびすべてのサブディレクトリ) は構成ファイルのエントリを表示しません。

Webを検索すると、表示されていないインターフェイスに反応する方法のみが表示され、現在のPredictableNetworkInterfaceNamesという名前のインターフェイスに名前が変更されることを説明します。同様の質問リストにはいくつかの有望な質問が表示されますが、実際には関連する質問はありません。 (OPが間違ったカーネルをインストールし、インターフェースの名前を変更するのに問題がありました。)

では、ネットワークスクリプトは、アクティブなイーサネットインターフェイスが2つ以上あるという情報をどこで取得しますか?

今/etc/init.d/sambaから「need net」への依存関係を削除しましたが、明らかにこれは短期的な解決策です。

bastille-firewall binfmt bootmisc busybox-ntpd busybox-watchdog   consolefont 
consolekit cpufrequtils cups-browsed cupsd dbus devfs dhcpcd dmesg enp2s0 
fancontrol fsck functions.sh gdm_mine git-daemon gpm hddtemp hdparm heimdal-kadmind 
heimdal-kcm heimdal-kdc heimdal-kpasswdd hostname hwclock ip6tables iptables 
keymaps killprocs kmod-static-nodes lm_sensors local localmount loopback 
modules mount-ro mtab net.lo netmount nrpe ntp-client ntpd numlock openvpn 
osclock pciparm procfs psad pydoc-2.7 pydoc-3.3 reboot.sh root rsyncd 
s6-svscan samba savecache shutdown.sh sntp sshd swap swapfiles swclock 
sysctl sysfs syslog-ng sysstat termencoding tmpfiles.dev tmpfiles.setup udev 
udev-settle udev-trigger urandom vixie-cron

およびDMESG出力(MACで編集)

dmesg |grep eth
[   10.012637] r8169 0000:03:01.0 eth0: RTL8169sb/8110sb at 0xffffc90010e84c00, [MAC], XID 10000000 IRQ 17
[   10.012641] r8169 0000:03:01.0 eth0: jumbo features [frames: 7152 bytes, tx checksumming: ok]

答え1

なぜ名前が奇妙なのですか?

マニュアルに出てきたこの面白い話を覚えていますか?特に重要なことマニュアル:AMD64/ネットワーク/紹介

ネットワークカードの設定を開始するには、Gentoo RCシステムに指示してください。これは、/etc/init.dにnet.loからnet.eth0(またはシステム上のネットワークインターフェイス名)へのシンボリックリンクを作成することによって行われます。

root # cd /etc/init.d
root # ln -s net.lo net.eth0

あなたの場合、これは次のように書き直されます。

root # cd /etc/init.d
root # ln -s net.lo net.enp2s0

なぜなら継続的な命名規則そしてデフォルトのsys-fs/udevカーネル設定。net.ifnames=0


固定する

これを行う前にすべてのネットワークをオフラインにするには、次の手順を実行し、rc-update del net.lo boot以下の最初の4つの手順を実行し、次の手順を実行して手順rc-update add net.lo boot5を実行します。すべてのネットワークデバイスが接続されているため動作します。net.lo

  1. 削除後に置き換えられた項目をdmesg | grep renamed確認するには、aを実行します。enp2s0
  2. その後、rm -v /etc/init.d/net.enp2s0存在しない他のインターフェースも同様です。上記はgrepカーネルが「認識」する内容を提供しますので、追加のネットワークファイルがあれば削除してください。しかし、net.loは削除しないでください。
  3. 新しい NICS が複数ある場合は、ln -s /etc/init.d/net.lo /etc/init.d/net.the_new_names_from_step1各デバイスへのリンクを再作成します。grep
  4. Sambaハッキングを削除して再度有効にしてください。need net
  5. 再起動

関連情報