Jag har hört att ändra värdnamnet i nya versioner av fedora görs med hostnamectl
-kommando. Dessutom ändrade jag nyligen (och framgångsrikt) mitt värdnamn på Arch Linux med den här metoden. Men när jag kör:
[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain
Ändringarna bevaras inte efter en omstart (i motsats till många påståenden att den gör det). Vad är fel?
- Jag verkligen vill inte redigera
/etc/hostname
manuellt.
Jag bör också notera att detta är en helt lagerfedora. Jag har inte ens fått installera mina kärnappar ännu.
Kommentarer
Svar
Kommandot för att ställa in värdnamnet är definitivt hostnamectl
.
root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"
Här är en extra källa som beskriver den här funktionen lite mer, med titeln: Korrekt inställning av värdnamn – Fedora 20 på Amazon EC2 .
Dessutom mansidan för 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 finns ett fel i Fedora 21 där SELinux förhindrar åtkomst till hostnamectl , här, med titeln: Bugg 1133368 – SELinux förhindrar systemd-hostnam från att ”avlänka” åtkomst till filens värdnamn .
Detta fel verkar vara relaterat. Det är ett problem med SELinux-sammanhang som inte tillämpas korrekt på filen /etc/hostname
efter installationen. Detta manifesterar sig i att verktyget hostnamectl
inte kan manipulera filen /etc/hostname
. Samma tråd erbjöd den här lösningen:
$sudo restorecon -v /etc/hostname
OBS: Att patchar applicerades på Anaconda (installationsverktyget) så att problemet skulle försvinna i framtiden för nya användare.
Svar
Den troliga orsaken till detta är din dhcp-klient. Om du använder dhcpcd, vilket är vanligt, är lösningen att lägga till följande rad till /etc/dhcpcd.conf
:
nohook hostname
Detta förhindrar att dhcpcd ropar till skriptet som ändrar systemets värdnamn.
Som standard kör dhcpcd alla krokar som finns /lib/dhcpcd/dhcpcd-run-hooks
(sökvägen kan skilja sig på ditt system). Använd nohook
inaktiverar specifika.
Kommentarer
- För både mina 21 och rawhide installationer,
/etc/dhcpd.conf
finns inte. Dessutom returnerarsystemctl status dhcpcd
not-found (Reason: No such file or directory)
hostnamectl
kommandona? Länken till bugzilla-buggen som något har publicerats verkar vara din bästa ledning.hostnamectl
kommandona gjorde inte fungerar, men nu gör de det.