호스트 이름 설정을 무시하는 preseed.cfg


13

를 사용하여 VirtualBox에 Debian Wheezy (netinstall)를 설치하고 preseed.cfg있습니다.

나는 모두를 시도 d-i netcfg/get_hostname string somehost하고 d-i netcfg/get_hostname string somehost있지만, 두 경우 모두 호스트는 "데비안"로 설정됩니다. 둘 다 동시에 시도했지만 여전히 호스트가 "debian"으로 설정되어 있습니다.

사전 설정 파일에 관한 데비안 안내서 에서 발췌 :

DHCP 서버가 반환하는 내용이나 IP의 역방향 DNS 항목에 관계없이 호스트 이름을 강제 적용하려면 주석을 해제하고 다음 줄을 조정하십시오.

di netcfg / hostname 문자열 somehost

이것은 버그입니까, 아니면 운이 좋지 않습니까?

답변:


10

해결책이 아니라 해결책

나도 비슷한 문제에 직면하여 설치 후 호스트 끝에 다음 줄을 추가하여 호스트 이름을 설정하여 문제를 해결했습니다 pressed.cfg.

d-i pressed/late_command string\
    in-target /bin/bash -c 'echo desired_name > /etc/hostname'

이는 일반적으로 설치 중에 나타나는 대상 파일 시스템 (최종 루트 파일 시스템이 됨)을 참조하기 위해 in-target필요 합니다.//target


1
또한 이것을 사용했지만 호스트 이름이 DNS 조회에서 자동으로 설정되도록 약간 수정했습니다 d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. 이것은 puppetlabs의 "facter"를 사용하여 IP 주소를 얻지 만 ip addrand를 사용하여 비슷한 것을 할 수 sed있습니다.
David Gardner

9

PXE 및 프렌즈를 사용하여 넷 부팅하는 경우 사전 시드 파일을 가져 오기 전에 호스트 이름이 설정되므로 호스트 이름은 다음과 같이 커널 명령 줄에서 설정해야합니다.

hostname=myhostname domain=mydomain

로부터 부록 B의 도입 매뉴얼 데비안 설치 프로그램의 (미리 설정에) :

사전 설정 방법의 중요한 차이점은 사전 구성 파일이로드되고 처리되는 시점입니다. initrd preseeding의 경우 첫 번째 질문을하기 전에 설치가 시작될 때 바로 이것이됩니다. 파일 미리 설정의 경우 CD 또는 CD 이미지가로드 된 후입니다. 네트워크 미리 설정의 경우 네트워크가 구성된 후에 만 ​​가능합니다.


4

priority=criticalnet install 명령 행에서 (pxelinux.cfg 디렉토리 항목을 통해) 커널에 전달한 인수 에서이 문제가 사라 졌다는 것을 알았습니다 .

이것은 호스트 이름을 묻는 질문에 'critical'보다 낮은 우선 순위가 부여되어 기본 답변으로 채워진다는 것을 의미한다고 가정합니다.

이 변경을 수행하면 나중에 설치 프로세스의 다른 질문에 대해 중요하지 않은 다른 답변을 미리 준비해야 할 수도 있습니다.


3

데비안 설치 프로그램의 한계입니다. 네트워크에서 사전 설정 구성 파일을 가져올 때 netcfg이미 작업을 마치고 사라 졌으므로 값을 다시 가져 오지 않습니다.

다소 공식적인 kludge 는 당신의 preseed.cfg라인 에서 사용하는 것입니다 :

d-i preseed/run string http://example.net/d-i/jessie/preseed.sh

그런 preseed.sh다음 다음을 지정하십시오.

#!/bin/sh
kill-all-dhcp; netcfg

네트워크가 설립 될 때 그 방법, preseed.cfg페치, preseed.sh또한 다시 시작됩니다, 그래서 가져 오기 및 실행됩니다 netcfg다음에 대한 모든 미리 설정 값을 읽을 것이다 netcfg/*및 올바르게 구성 ( /etc/hostsname, /etc/hosts, /etc/network/interfaces만약 당신이있는 거 설정 정적 IP 구성을 통해 미리 설정 등)


별도의 파일없이이 작업을 수행 할 수 있습니다 d-i preseed/early_command string kill-all-dhcp; netcfg. 미리 설정 파일이면 충분합니다. 자동화 된 netinstall에서 Stretch로 테스트되었습니다.
scy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.