Fedora 21でホスト名を永続的に変更する方法


35

新しいバージョンのfedoraでホスト名を変更するには、hostnamectlコマンドを使用する必要があると聞きました。さらに、最近(そして正常に)この方法でArch Linuxのホスト名を変更しました。ただし、実行時:

[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain

再起動後、変更は保存されません(多くの人が主張しているのとは反対です)。なにが問題ですか?

  • 私は本当に/etc/hostname手動で編集したくありません。

また、これは完全にストックされたフェドラであることにも注意してください。コアアプリをインストールすることすらまだできていません。


これには、問題に関する同様の情報があります:ask.fedoraproject.org/en/question/37413/…&thisdbaora.com/install-fedora-20
slm

実際、これは私の情報源の1つです。しかし、私はそのページから抽出できソリューションのどれも...働いていない
PythonNut

このシステムをインストール/セットアップしたのはいつですか?インストール以降に問題が発生しましたか?また、それらのhostnamectlコマンドでエラーがありますか?何かが投稿されたbugzillaバグへのリンクは、あなたの最高のリードのようです。
slm

10/1/14にインストールしたので、それ以降hostnamectlコマンドは機能しませんでしたが、現在は機能しています。
PythonNut 14年

受け入れられたソリューションにリンクされているバグは、残念なタイミングでした。彼らはそれをアップストリームで修正しており、将来のユーザーのためにうまく機能するはずです。
slm

回答:


39

ホスト名を設定するコマンドは間違いなく、hostnamectlです。

root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"

ホスト名を正しく設定する-Amazon EC2のFedora 20というタイトルの、この機能についてもう少し詳しく説明している追加ソースがあります。

さらに、次のmanページhostnamectl

HOSTNAMECTL(1)                    hostnamectl                   HOSTNAMECTL(1)

NAME
       hostnamectl - Control the system hostname

SYNOPSIS
       hostnamectl [OPTIONS...] {COMMAND}

DESCRIPTION
       hostnamectl may be used to query and change the system hostname and
       related settings.

       This tool distinguishes three different hostnames: the high-level
       "pretty" hostname which might include all kinds of special characters
       (e.g. "Lennart's Laptop"), the static hostname which is used to
       initialize the kernel hostname at boot (e.g. "lennarts-laptop"), and
       the transient hostname which is a default received from network
       configuration. If a static hostname is set, and is valid (something
       other than localhost), then the transient hostname is not used.

       Note that the pretty hostname has little restrictions on the characters
       used, while the static and transient hostnames are limited to the
       usually accepted characters of Internet domain names.

       The static hostname is stored in /etc/hostname, see hostname(5) for
       more information. The pretty hostname, chassis type, and icon name are
       stored in /etc/machine-info, see machine-info(5).

       Use systemd-firstboot(1) to initialize the system host name for mounted
       (but not booted) system images.

Fedora 21には、SELinuxがhostnamectlアクセスを妨げるバグがあります。バグ1133368-SELinuxがsystemd-hostnamがファイルhostnameでの「リンク解除」アクセスを妨げています

このバグは関連しているようです。/etc/hostnameインストール時にSELinuxコンテキストがファイルに適切に適用されないという問題があります。これhostnamectlは、ファイルを操作できないツールに現れます/etc/hostname。同じスレッドがこの回避策を提供しました。

$sudo restorecon -v /etc/hostname

注:そのパッチはAnaconda(インストールツール)に適用されたため、この問題は将来、新しいユーザーに解決されるはずです。


3

この原因として考えられるのは、dhcpクライアントです。一般的なdhcpcdを使用している場合、解決策は次の行をに追加すること/etc/dhcpcd.confです:

nohook hostname

これにより、dhcpcdがシステムのホスト名を変更するスクリプトを呼び出すことを防ぎます。

デフォルトでは、dhcpcdは存在するすべてのフックを実行します/lib/dhcpcd/dhcpcd-run-hooks(パスはシステムによって異なる場合があります)。を使用nohookすると、特定のものが無効になります。


1
私の21とrawhideの両方のインストールで/etc/dhcpd.confは、存在しません。また、systemctl status dhcpcdリターンnot-found (Reason: No such file or directory)
PythonNut
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.