![추가 읽기](https://linux55.com/image/181382/%EC%B6%94%EA%B0%80%20%EC%9D%BD%EA%B8%B0.png)
헤이-헤이! 저는 현재 비지박스(Busybox)를 스타로 삼아 처음부터 비LFS 시스템을 개발 중입니다. 이제 내 로그인 정보가 표시됩니다.
(none) login:
따라서 내 호스트 이름이 손상되었습니다. 나도 hostname
데려가세요 (none)
.
내가 따라온 가이드는 호스트 이름 을 /etc/HOSTNAME
. /etc/hostname
내가 무엇을 하든 hostname
이것은 반환됩니다 . 또는 를 (none)
실행하지 않는 한 이제 누군가 새로운 배포판을 설치할 때마다 이 작업을 수행하고 싶지 않습니다. 그렇지 않은 경우 실제 기본 파일은 무엇입니까 ?hostname <thename>
hostname -F /etc/hostname
/etc/hostname
미리 감사드립니다!
답변1
이것은 hostname
(BusyBox 포함) 호스트 이름을 쿼리할 때 파일로 대체되지 않습니다. 그들은 단순히 커널이 시스템 호출에서 호스트 이름으로 반환하는 것을 보고합니다. 호스트 이름은 커널이 "(none)"과 같은 문자열로 초기화되고 커널을 재구성하고 재구축하여 변경할 수 있습니다. (시스템 용어로 이것은동적 호스트 이름, 또한 ~으로 알려진임시 호스트 이름; 실제로 Linux 커널이 보고한 것입니다. )아니요"기본 파일".
일반적으로 시스템 시작 시 상당히 초기에 실행되어 이러한 다양한 파일을 찾고, 호스트 이름을 추출하고, 이를 사용하여 커널 호스트 이름을 초기화하는 단일 서비스가 있습니다. (systemd 용어로 이 구성 문자열은정적 호스트 이름. ) 예를 들어:
hostname
내 도구 세트에서는 로컬 파일 시스템이 마운트된 후 사용자가 서비스에 로그인하기 전에 도구 세트의 명령을 실행하는 "초기" 서비스를 제공합니다set-dynamic-hostname
. 이 작업은 구성을 변경할 때만 수행되는 작업과 시스템이 부팅될 때마다 수행되는 작업으로 구분됩니다.- 외부 구성 가져오기 메커니즘은
/etc/hostname
및/etc/HOSTNAME
기타 소스(운영 체제마다 다르게 구성하기 때문에)를 읽고 병합된rc.conf
. - 외부 구성 가져오기 메커니즘은 병합을 사용하여
rc.conf
서비스의hostname
환경 변수를 구성합니다. - 서비스가 실행 중일 때
set-dynamic-hostname
모든 구성 소스 가능성에 신경 쓸 필요는 없습니다. 서비스에 대해 구성된 환경에서 환경 변수를 가져오고 여기에서 동적 호스트 이름을 설정하기만 하면 됩니다.
- 외부 구성 가져오기 메커니즘은
systemd
systemd에서 이는 서비스 관리자가 시작되기 전에 실행되는 자체 코드에 내장된 초기화 작업입니다 . 프로그램systemd
자체는/etc/hostname
(또한/proc/cmdline
, 그러나아니요/etc/HOSTNAME
...도 아니다/etc/default/hostname
...도 아니다/etc/sysconfig/network
) 이를 커널에 전달합니다.- Void Linux에는쉘 스크립트 시작(전용) 에서 정적 호스트 이름을 읽고
/etc/hostname
에서 읽은 셸 변수로 대체rc.conf
하고 해당 값에서 동적 호스트 이름을 설정합니다.
"처음부터" 시스템을 구축하는 경우에는 동등한 기능을 갖춘 서비스를 생성해야 합니다. BusyBox 및 ToyBox 도구는 파일에서 호스트 이름을 설정하는 데 사용되므로 파일에 대해 명령을 실행하는 서비스를 hostname -F "${filename}"
만들어야 합니다 ./etc/hostname
BusyBox에는 runit의 서비스 관리 도구 세트가 함께 제공됩니다. 간단한 runit 서비스는 다음과 같습니다.
#!/bin/sh -e 2>&1을 실행 호스트 이름 -F /etc/hostname 실행
추가 읽기
- Lennart Petlinget al. (2016).
hostnamectl
. 시스템 매뉴얼 페이지. freedesktop.org. - 조나단 데보인 폴라드(2017). "
set-dynamic-hostname
". 사용자 명령 매뉴얼. Nosh 툴셋. 소프트웨어. - 조나단 데보인 폴라드(2017). "
rc.conf
병합". 스낵 가이드. 소프트웨어. - 조나단 데보인 폴라드(2015). "외부 형식". 스낵 가이드. 소프트웨어.
- 롭 랜드리.
hostname
. 장난감 상자 명령 목록. ranley.com. - https://unix.stackexchange.com/a/12832/5132
답변2
따라서 이 시스템을 처음부터 구축하고 있는데 호스트 이름이 어디에 구성되어 있는지 알고 싶으십니까?
간단한 대답은 그렇지 않다는 것입니다. 현재 호스트 이름은 커널 내부에 저장되며 커널에 관한 대부분의 사항과 마찬가지로 기본적으로 파일을 읽지 않습니다.
무엇선택한 구성 파일은 시스템 시작 시 읽어야 하며 커널의 호스트 이름을 설정해야 합니다. 이는 부팅할 때마다 발생해야 합니다.
답변3
make menuconfig
커널을 빌드할 때 이를 변경할 수 있습니다.