나는 약 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를 부팅한 다음 *nix 부팅을 다시 시도했지만 동일한 문제가 발생했습니다.
이전에 말했듯이 Windows 10을 최신 버전으로 업그레이드하기 전에 작동 중이었는데 dhcp 응답 후 갑자기 dhcp 서버가 작동을 거부했기 때문에 솔직히 그 이유가 무엇인지 모르겠습니다. 요청을 할 필요가 없습니다. 윈도우 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))
시스템에서 이 두 개의 주석(및 세 개 이상)의 메서드를 테스트해야 합니다.이것첫 번째 해결 방법) 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 를 사용하는 프로젝트가 하나 있습니다 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
. 감사합니다. 두 번째 줄이 넘어가므로 위에 빈 줄을 추가합니다.
답변3
더 쉬운 수정... Linux 부팅 후 /etc/init.d/networkingforce-reload를 실행하기만 하면 됩니다.
이것은 내 문제를 해결했습니다. Windows에서 Linux로 전환할 때마다 실행해야 하지만