Jeg har hørt at det å endre vertsnavnet i nye versjoner av fedora gjøres med hostnamectl
-kommando. I tillegg endret jeg nylig (og vellykket) vertsnavnet mitt på Arch Linux med denne metoden. Når jeg kjører:
[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain
Endringene blir ikke bevart etter en omstart (i motsetning til at mange påstår at den gjør det). Hva er galt?
- Jeg virkelig vil ikke redigere
/etc/hostname
manuelt.
Jeg bør også merke meg at dette er en fullstendig aksjefedora. Jeg har ikke engang fått til å installere kjerneappene mine ennå.
Kommentarer
Svar
Kommandoen for å stille inn vertsnavnet er definitivt hostnamectl
.
root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"
Her er en ekstra kilde som beskriver denne funksjonaliteten litt mer, med tittelen: Korrekt innstilling av vertsnavnet – Fedora 20 på Amazon EC2 .
I tillegg mansiden for 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.
Det er en feil i Fedora 21 der SELinux forhindrer tilgang til hostnamectl , funnet her, med tittelen: Feil 1133368 – SELinux forhindrer systemd-hostnam fra å «fjerne tilknytning» for tilgang til filens vertsnavn .
Denne feilen ser ut til å være relatert. Det er et problem med at SELinux-kontekstene ikke blir brukt riktig på filen /etc/hostname
etter installasjonen. Dette manifesterer seg i at verktøyet hostnamectl
ikke kan manipulere filen /etc/hostname
. Den samme tråden tilbød denne løsningen:
$sudo restorecon -v /etc/hostname
MERK: At oppdateringer ble brukt på Anaconda (installasjonsverktøyet) slik at dette problemet skulle forsvinne i fremtiden for nye brukere.
Svar
Den sannsynlige årsaken til dette er din dhcp-klient. Hvis du bruker dhcpcd, som er vanlig, er løsningen å legge til følgende linje i /etc/dhcpcd.conf
:
nohook hostname
Dette forhindrer at dhcpcd ringer til skriptet som endrer systemets vertsnavn.
Som standard kjører dhcpcd alle krokene som er tilstede /lib/dhcpcd/dhcpcd-run-hooks
(banen kan variere på systemet ditt). Bruk av nohook
deaktiverer spesifikke.
Kommentarer
- For både mine 21 og rawhide installasjoner,
/etc/dhcpd.conf
eksisterer ikke. I tillegg returnerersystemctl status dhcpcd
not-found (Reason: No such file or directory)
hostnamectl
kommandoene? Koblingen til bugzilla-feilen som noe publiserte virker som din beste leder.hostnamectl
-kommandoene ikke fungerer, men nå gjør de det.