상황: 커널이 있는 젠투3.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/*
(및 모든 하위 디렉터리)은 구성 파일의 항목을 표시하지 않습니다.
웹을 검색하면 표시되지 않은 인터페이스에 반응하는 방법만 보여주며 현재 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/네트워크/소개
네트워크 카드 구성을 시작하려면 젠투 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 boot
하고 5단계를 실행하세요. 모든 네트워크 장치가 연결되어 있기 때문에 작동합니다.net.lo
- 삭제 후 대체된 항목을
dmesg | grep renamed
확인하려면 a를 실행하세요 .enp2s0
- 그런 다음
rm -v /etc/init.d/net.enp2s0
존재하지 않는 다른 인터페이스도 마찬가지입니다. 위의 내용은grep
커널이 "인식"하는 내용을 제공하므로 추가 네트워크 파일이 있으면 삭제하십시오.하지만 net.lo는 삭제하지 마세요.! - 새 NICS가 여러 개 있는 경우
ln -s /etc/init.d/net.lo /etc/init.d/net.the_new_names_from_step1
각 장치에 대한 링크를 다시 만듭니다.grep
- Samba 해킹을 삭제하고 다시 활성화하세요.
need net
- 재시작