私のBananian Linuxは、接続されていないeth0インターフェイスのDHCPリースを取得しようとして、ログオン時に時間を浪費しています。さて、延長ケーブルが接続されていますが、反対側には何もありません。
私が持っています
auto eth0
iface eth0 inet dhcp
私の/etc/network/interfaces
イーサネットが接続されている場合に備えてイーサネットを取得したいのですが、ケーブルがイーサネットに接続されていない場合は、システムの起動を遅くしたくありません。私はシステムがこれを自動的に認識し、インターフェイスのDHCPリースを取得しようとしないと想定しました。
これは、ロード時に表示されるものです(最後の3行を参照)。
リースが来ないことを理解したら、ブートを続行します。
接続されたケーブルがない場合にDHCPに通知しない方法はありますか?
指定した場合
allow-hotplug eth0
の代わりに
auto eth0
/etc/network/interfaces
では、起動のたびではなく、何かがトリガーしたときにudev
によってのみ接続が開始されます。
それはあなたのケースを処理するのに十分かもしれませんが、必ずしもそうではありません; the interfaces
manpage は、
(「allow-hotplug」とマークされたインターフェースは、udevがそれらを検出したときに表示されます。これは、インターフェースがすでに存在する場合のブート時、またはUSBネットワークカードを接続するときなど、後で発生する可能性があります。これは、接続されているネットワークケーブルの検出とは関係ありません。)
the /etc/network/if-up.d/00check-network-cable
package からifupdown-extra
を使用して、ケーブルが接続されていない場合にインターフェイスをスキップする必要がある場合があります。
ifplugd
をご覧ください:
ifplugdはLinuxデーモンであり、ケーブルが差し込まれたときにイーサネットデバイスを自動的に構成し、ケーブルが引っ張られた場合に自動的に構成を解除します。これは、ケーブルが実際に接続されている場合にのみインターフェイスを構成するため、オンボードネットワークアダプターを備えたラップトップで役立ちます。
ifplugd ifplugdは、ディストリビューションのネイティブネットワーク構成ユーティリティとインターフェイスします。
いくつかの機能:
- ディストリビューションのネイティブのifup/ifdownプログラムを使用します。
- ケーブルが取り外されたり、差し込まれたりした場合、ビープ音が鳴るかもしれません。インターフェースの設定が成功したか失敗したかです。
- リンクステータスを取得するために、Linux SIOCETHTOOL(新しい、別名ethtool API)、SIOCGMIIREG(古い、別名mii-diag/mii-tool API)、およびSIOCDEVPRIVATE(最も古い、別名mii-tool API)ioctl()をサポートします。リリース0.24では、IFF_RUNNINGインターフェイスフラグによるリンク検出のサポートが導入されています。
- Syslogサポート
- 小さなプログラム-バイナリはわずか25 KB(libdaemonの場合は16 KB)。
- 複数のイーサネットインターフェイスのサポート
- 短い「アンプラグド」期間(-dオプション)または短い「プラグイン」期間(-uオプション)を無視するように構成できます。
- ワイヤレスネットワークのサポート。 APへの関連付けが検出されるたびに、ネットワークが構成されます。 APアソシエーションが成功する前にWEPキーを設定する機能が必要な場合は、waproamdを確認してください。
- ケーブル検出をサポートしないネットワークデバイスの互換モード(-Fオプション)
パッケージDebianパッケージ検索ページ: ifplugd 。
公式のifplugdサイト
apt-get update && apt-get-install ifplud
トリックを行う必要があります。余談ですが、systemdの作成者はこのパッケージを保守しています。
上記の回答を完成させたいのですが、少し深く掘り下げるまで、最初は何もうまくいきませんでした。
Ifupdown-extraパッケージをインストールします。
$ Sudo apt-get install ifupdown-extra
/ etc/network/if-pre-upに00check-network-cableのシンボリックリンクを作成します。
$ cd /etc/network/if-pre-up
$ Sudo ln -s ../if-up.d/00check-network-cable .
ファイル/ etc/default/network-testを編集し、ABORT_ON_LINK
からyes
へ。注-私のdebianでは、それはABORT_ON_LINK=${ABORT_ON_LINK:-no}
およびそれをデフォルトで「yes」に設定しても、check-network-cableスクリプトでno
に設定されていたため、効果がありませんでした。そのため、その設定をコメントアウトしました。私は物事を1つ(そして1つだけ)に設定することを好みます。
イーサネットが接続されていない状態での私の起動は高速でした。
問題には常に複数の解決策があります。
このマシンを自宅のように常に1か所に置いている場合、最も簡単な方法は、dhcp-clientパッケージを削除し、静的IPアドレス、マスク、ゲートウェイを設定することです。必要ない場合は、次のようにします。
apt-get remove isc-dhcp-client
これは、依存関係がある場合は、最初に教えてくれます。パッケージをアンインストールすると、起動中に待つ必要がなくなります。
これは、/etc/network/interfaces
に設定する例です
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.254