追加読書

追加読書

ヘイヘイ!私は現在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すべての構成ソースの可能性を気にする必要はありません。サービス用に構成された環境から環境変数を取得し、ここで動的ホスト名を設定するだけです。
  • systemdsystemdでは、これはService Managerが起動する前に実行される独自のコードに組み込まれている初期化タスクです。プログラム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カーネルをビルドするときにそれを変更できます。

関連情報