저는 현재 필요한 모든 것을 생성하는 간단한 설치 프로그램을 만들기 위해 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' ')