
私は約2年間私のコンピュータからWindowsとLinuxを二重起動してきましたが、dhcpクラッシュの問題が発生したことはありません。
最近のWindows 20H2の更新以降に以前にWindowsを起動した場合、突然Linuxでdhcpを使用できなくなります。
数日待っても同じ結果が出るのでタイミング問題ではないようです。私はAVM Fritz Boxを私のルーター/ dhcpサーバーとして使用していますが、Linuxでdhcpを操作する唯一の方法はFritz Boxをリセットすることです。
以前は、「Linux」というより広い用語を使用していました。なぜなら、さまざまなディストリビューション(Arch、Gentoo、Ubuntu)でテストしましたが、そのうちの誰も自分のdhcpクライアントを私のFritz Boxで使用できなかったからです。 Linuxの問題を解決するためにFreeBSDも試してみました。彼らはすべて「DHCPリースが期限切れになり、IPを取得できません」という形式を印刷します。
ルーターをリセットし、dhcpリースを再度取得した後、Windowsを起動して* *ixブートを再試行しましたが、同じ問題が発生しました。
前に述べたように、Windows 10を最新バージョンにアップグレードする前に動作していましたが、dhcpが応答した後に突然dhcpサーバーが動作を拒否したため、正直なところ、なぜかわかりません。リクエストをする必要はありません。 Windows 10で。
編集する:私のマザーボードは、Intel Intel I217-V NICを搭載したAsus Sabertooth Z87です。ユーザーABは、問題がDHCPリースの取得に関連しているわけではなく、Windowsをシャットダウンした後にI217-V NICの状態に問題があると正しく疑います。回避策については、次の記事をご覧ください。https://unix.stackexchange.com/a/620766/442856
答え1
ASUSによると、OPのセイバートゥースZ87Intel I217-V NICが含まれています。これはArchLinuxフォーラムで問題の説明をもたらしました。
[解決済み] Windows起動後のイーサネットの問題(Intel I217-V(e1000e))
システムはこれら2つのコメント(および3つ以上)のメソッドをテストする必要があります。これ最初の回避策)LinuxでNICの動作を修正する:
-
私たちに勝者がいます!
すべての電源管理機能をオフにして問題を解決しました。私は閉じて通常どおりLinuxを起動しましたが、問題は見つかりませんでした。その後、再びWindowsに戻ってみると機能は復旧され、Linuxもオンになりましたが、故障が出ましたね。したがって、私はこの証拠がこの問題が解決されたと宣言するのに十分だと思います(WoLを犠牲にしてもまったく気にしません)。 実用的なソリューション予想されるコールドブート状態に戻るようにPCIデバイスをリセットします。ユニバーサルe1000eドライバがこの特定のNICを正しく処理できない可能性があります。
私の解決策はとても簡単でした。ネットワークインターフェイスを起動する前に、PCIデバイスをリセットすることでした。
特に、NICが複数ある場合は、同じ説明に基づいて以下のスクリプトを調整して少し整理することができます。次に実行根ユーザー。
#!/bin/bash #Get the PCI-Address of network card (Caution: This works ONLY with ONE NIC) PCI=`/usr/bin/lspci | /bin/egrep -i 'network|ethernet' | /usr/bin/cut -d' ' -f1` PCIPATH=`/usr/bin/find /sys -name *\${PCI} | /bin/egrep -i *pci0000*` #echo "PCI =$PCI" #echo "PCIPATH=$PCIPATH" #ls -la $PCIPATH /usr/bin/logger -t "ResetNIC" "Resetting PCI NIC ${PCIPATH}" #Reset the PCI Device completely (like Power-ON/Off) echo 1 >${PCIPATH}/reset
これがあなたの問題を解決することを願っています。その後、起動するたびに自動的に実行する必要があります。
答え2
さまざまなプロセス-noを使用するプロジェクトが1つありますinit.d/networking
。
データを見つけるためにsysディレクトリを見た後、プロセスは簡単です。初期化オプションがある機器が多いようで、初期化オプションがある機器を検索してみましたmax_link_speed
。私のシステムでは、有線イーサネットとワイヤレスのみが使用されます。その後、infoの始まりと終わりを置き換えてリセットする行がout2ファイル呼び出しに書き込まれます。
cd /sys
find . | grep max_link_speed | sed 's_./dev_echo 1> /sys/dev_g;s/max_link_speed/reset/g' > /out2
sh ./out2
ただし、Windows 10でも同じ問題が発生し、問題が発生しましたdhcpd
。ありがとうございます。 2 行目を超えているので、上に空行を追加します。
答え3
より簡単な修正... Linuxの起動後に/etc/init.d/networkingforce-reloadを実行するだけです。
これは私の問題を解決しました。 WindowsからLinuxに切り替えるたびに実行する必要がありますが、