Debian 설치 중 사전 설정을 사용하여 NetworkManager를 설치할 때 발생하는 문제

Debian 설치 중 사전 설정을 사용하여 NetworkManager를 설치할 때 발생하는 문제

저는 현재 필요한 모든 것을 생성하는 간단한 설치 프로그램을 만들기 위해 Debian 설치를 준비하고 실제 설치 후에 사용자 정의 설치 스크립트를 실행하고 있습니다.

이제 다른 패키지를 설치하는 방법을 알아내고 네트워킹을 더 쉽게 만들기 위해 NetworkManager 패키지를 추가했습니다. 그러나 장치에는 여러 이더넷 인터페이스가 있으며 Debian 설치 중에 NetworkManager를 설치하면 이 파일이 생성됩니다 /etc/NetworkManager/system-connections/Wired connection 1. 그러나 이 파일은 실제 시스템 구성에 적합하지 않습니다. 따라서 종료했다가 다시 시작할 때 NetworkManager를 제거하면 모든 것이 잘 작동합니다. 그러나 해당 파일이 있으면 NetworkManager가 모든 인터페이스를 "유선 연결 1"로 표시하고 하나의 인터페이스만 활성화될 수 있습니다. 결국 파일을 삭제해야 합니다.

이제 먼저 스크립트 호출 중에 파일 삭제를 시도했습니다 preseed/late_command(스크립트가 실행되고 파일이 삭제되는 것을 확인했습니다). 그런데 설치 후 시스템으로 부팅한 후 파일이 다시 나타났습니다. 다음으로, delete file을 사용하기 전에 NetworkManager 서비스를 중지하려고 시도했지만 in-target systemctl stop NetworkManager, 그 결과 귀여운 로그 라인만 표시되었고 in-target: Running in chroot, ignoring request.물론 그것도 작동하지 않았습니다.

프로비저닝 중에 빈 "시스템 연결" 구성으로 NetworkManager를 어떻게 설치합니까?

요약하면 관련이 있다(그리고 일)내 라인 preseed.cfg은 다음과 같습니다

d-i pkgsel/include string ... network-manager ...
d-i preseed/late_command string sh /.../postinstall.sh

나는 postinstall.sh전에 시도했다

in-target rm /etc/NetworkManager/system-connections/*

(실제로는 그 순간 파일이 삭제되었습니다.)그리고

in-target systemctl stop NetworkManager
in-target rm /etc/NetworkManager/system-connections/*

고쳐 쓰다:

제안대로 연결을 직접 삭제해 보았습니다 nmcli.
이것은 내 스크립트입니다.

in-target nmcli con delete $(in-target nmcli -g uuid con)

결과는 다음과 같습니다.

May  6 09:16:43 log-output: + in-target
May  6 09:16:43 log-output:  nmcli -g uuid con
May  6 09:16:43 log-output: dpkg-divert: warning: diverting file '/sbin/start-stop-daemon' from an Essential package with rename is dangerous, use --no-rename
May  6 09:16:43 in-target: Error: Could not create NMClient object: Could not connect: No such file or directory.
May  6 09:16:44 log-output: + in-target nmcli con delete
May  6 09:16:44 log-output: dpkg-divert: warning: diverting file '/sbin/start-stop-daemon' from an Essential package with rename is dangerous, use --no-rename
May  6 09:16:44 in-target: Error: Could not create NMClient object: Could not connect: No such file or directory.

답변1

유선 연결을 사용하세요

기본적으로 NetworkManager는 찾은 각 유선 이더넷 연결에 대해 연결 프로필을 생성합니다. 연결할 때 사용 가능한 이더넷 어댑터가 더 있는지 여부는 알 수 없습니다. 따라서 첫 번째 유선 연결을 "Wired Connection 1"이라고 합니다. 구성하여 이 연결이 생성되는 것을 방지할 수 있습니다 no-auto-default(참조:man NetworkManager.conf) 또는 직접 삭제하세요. 그러면 NetworkManager는 더 이상 해당 인터페이스에 대한 연결을 생성하지 않는다는 것을 기억합니다. 연결을 편집(및 디스크에 저장)하거나 삭제할 수도 있습니다. NetworkManager는 새 연결을 다시 생성하지 않습니다. 그런 다음 이름을 원하는 이름으로 변경할 수 있습니다. 이 작업을 수행하려면 nm-connection-editor와 같은 도구를 사용할 수 있습니다.

따라서 네트워크 관리자를 설치하기 전에 귀하의 하드웨어 및 옵션(필요한 경우)에 맞게 생성하고 NetworkManager.conf설정할 수 있습니다. no-auto-default(설치 후 구성 파일을 덮어쓰지 않았는지 확인하세요. "이렇게는 안 되는데...")

chmod u-w또 다른 대안은 문제의 파일에 대한 쓰기 액세스를 사용하거나 잠그는 것일 수 있지만 chattr +i이는 이러한 방식으로 작동하도록 의도된 것이 아니며 다른 문제를 일으킬 수 있으므로 권장되지 않습니다.

원천:아치스 위키

답변2

연결 파일( /etc/NetworkManager/system-connections/Wired connection 1)이 다음 위치에 있는 것 같습니다.정기적인부팅 프로세스. 연결 생성을 피할 수 없는 경우 한 가지 옵션은 다음 명령을 사용하여 연결을 생성한 후 삭제하는 것입니다 nmcli.

nmcli connection delete id <connection name>
# OR
nmcli connection delete CONNECTION_NAME
# OR
nmcli connection delete <uuid>

"유선 연결 1"의 UUID를 가져옵니다.

nmcli con|grep 'Wired connection 1'|tr -s ' ' |cut -f2 -d' '

그러므로:

nmcli connection delete $(nmcli con|grep 'Wired connection 1'|tr -s ' ' |cut -f2 -d' ')

관련 정보