Telepítetted a Fedorát, minden működik, bejelentkeztél — és most mi legyen? A legtöbb disztribúció „használható" állapotban érkezik, de messze van az optimálistól. A boot lassú, a bejelentkezés körülményes, a konzol olvashatatlan, és rengeteg olyan szolgáltatás fut a háttérben, amire egy asztali gépen soha nem lesz szükséged.
Ez az útmutató végigvezet azon a folyamaton, amit én is végigjártam egy ThinkPad-on futó Fedora 43-mal. Nem pusztán parancsokat másolunk — minden lépésnél megbeszéljük, hogy mit csinálunk, miért csináljuk, és mi történik a háttérben.
Mielőtt bármit csinálnánk: frissítés
Ez triviálisnak tűnik, de fontos, hogy a rendszer naprakész legyen mielőtt bármit konfigurálunk. Egy friss telepítés csomagjai akár hetekkel is lemaradhatnak.
sudo dnf upgrade --refresh
A firmware frissítések külön kezelendők. A fwupd közvetlenül a gyártótól tölti le a BIOS és egyéb firmware frissítéseket:
sudo fwupdmgr get-devices
sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update
Nem minden géphez érkezik firmware frissítés — ha a get-updates üres, az teljesen normális.
DNF gyorsítás
A Fedora csomagkezelője alapértelmezetten egyetlen szálat használ letöltéshez és nem keresi a leggyorsabb tükörszervert. Egy asztali gépen ez feleslegesen lassú:
sudo tee -a /etc/dnf/dnf.conf << 'EOF'
max_parallel_downloads=10
defaultyes=True
fastestmirror=True
keepcache=False
EOF
Mit csinálnak ezek a sorok?
max_parallel_downloads=10— egyszerre 10 csomagot tölt le párhuzamosan, az alapértelmezett 3 helyettdefaultyes=True— telepítésnél nem kell minden alkalommal „y"-t nyomni, az igen az alapértelmezettfastestmirror=True— automatikusan a leggyorsabb tükörszervert választjakeepcache=False— nem tárolja a letöltött csomagokat (helytakarékosság)
doas: egy egyszerűbb sudo
A sudo egy hatalmas, komplex program, ami a legtöbb asztali felhasználó számára túlzás. A doas az OpenBSD projektből érkezett, és egyetlen dolgot csinál jól: jogosultságemelést. Kicsi, egyszerű, átlátható konfiguráció.
sudo dnf install opendoas
A konfigurációs fájl egyetlen sor:
sudo tee /etc/doas.conf << 'EOF'
permit persist :wheel
EOF
sudo chmod 600 /etc/doas.conf
A permit persist :wheel azt jelenti: a wheel csoport tagjai használhatják a doas-t, és a persist néhány percig megjegyzi a hitelesítést (mint a sudo alapértelmezetten).
Innentől a .bashrc-be egy alias:
alias sudo="doas"
Ezzel minden megszokott sudo parancsod doas-ként fut, de ha egy script explicit sudo-t hív, az is működik.
Boot idő optimalizálás
Egy friss Fedora 43 telepítés az én gépemen ~35 másodperc alatt bootolt. Ez egy NVMe SSD-vel rendelkező modern ThinkPad-on elfogadhatatlan. Nézzük meg, hol vész el az idő:
systemd-analyze
Ez kiírja a boot fázisokat: firmware, loader (GRUB), kernel, initrd, userspace. Részletesebb képhez:
systemd-analyze blame | head -20
systemd-analyze critical-chain | head -30
A blame megmutatja melyik szolgáltatás mennyi ideig tartott, a critical-chain pedig azt, hogy mi függött mitől — tehát mi volt az a lánc ami a leghosszabb volt.
Felesleges szolgáltatások kikapcsolása
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl disable nfs-client.target
A NetworkManager-wait-online arra vár, hogy a hálózat teljesen felálljon, mielőtt a boot folytatódik. Egy asztali gépen ez felesleges — a NetworkManager ettől függetlenül csatlakozik, csak nem blokkolja a bootot.
Az nfs-client.target hálózati fájlmegosztáshoz kell (NFS). Ha nem csatlakozol NFS megosztásokhoz (és egy asztali gépen valószínűleg nem), kikapcsolható. A hozzá tartozó gssproxy.service automatikusan leáll vele együtt.
GRUB gyorsítás
A GRUB bootloader alapértelmezetten 5 másodpercet vár, hátha ki akarsz választani egy másik kernelt. Ezt nullára állítjuk, de úgy, hogy hiba esetén a menü mégis megjelenjen:
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub
A GRUB_TIMEOUT_STYLE=hidden beállítás azt mondja a GRUB-nak, hogy normál esetben azonnal indítson. Ha az előző boot sikertelen volt, a menü automatikusan megjelenik. Emellett bármikor előhozhatod a Shift vagy Esc nyomva tartásával:
grep -q '^GRUB_TIMEOUT_STYLE' /etc/default/grub \
&& sudo sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=hidden/' /etc/default/grub \
|| echo 'GRUB_TIMEOUT_STYLE=hidden' | sudo tee -a /etc/default/grub
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Kernel paraméterek
sudo grubby --update-kernel=ALL --args="nowatchdog nmi_watchdog=0"
Két dolgot csinálunk itt:
nowatchdogésnmi_watchdog=0— kikapcsolja a kernel watchdog timer-ét. A watchdog feladata, hogy újraindítsa a gépet ha az lefagy — szervereknél kritikus, de egy asztali gépen felesleges, és leállításkor zavaró „watchdog did not stop" üzenetet okozhat.
A watchdog hardveres modulját is érdemes blacklistelni, hogy biztosan ne töltődjön be:
sudo tee /etc/modprobe.d/nowatchdog.conf << 'EOF'
blacklist iTCO_wdt
blacklist iTCO_vendor_support
EOF
i915 korai betöltés
Intel GPU-val rendelkező gépeknél a grafikus driver (i915) korai betöltése fontos. Ha a KMS (Kernel Mode Setting) későn inicializálódik, a konzol font és a felbontás nem áll be időben:
sudo tee /etc/dracut.conf.d/i915-early.conf << 'EOF'
force_drivers+=" i915 "
EOF
sudo dracut -f
A dracut -f újragenerálja az initramfs-t (a korai boot képfájlt), amibe most bekerül az i915 driver.
Eredmény
A fenti módosítások után a boot idő ~35 másodpercről ~27 másodpercre csökkent. A legnagyobb nyereség a GRUB timeout (~5s) és a felesleges szolgáltatások kikapcsolása volt. A maradék ~13 másodperc firmware idő a BIOS-ban kezelhető (Fast Boot), de az gyártófüggő. A Plymouth ~3 másodpercet ad hozzá a boot időhöz, de cserébe sima átmenetet biztosít a bejelentkezés és az asztal között — fekete képernyő nélkül.
TTY konzol font
A virtuális konzolok (Ctrl+Alt+F3) alapértelmezett fontja apró és nehezen olvasható, különösen HiDPI kijelzőkön. A Terminus font egy jól olvasható, monospace bitmap font amit kifejezetten hosszú távú terminálhasználatra terveztek:
sudo dnf install terminus-fonts-console
A /etc/vconsole.conf fájl tartalmazza a konzol beállításait:
KEYMAP=de
XKBLAYOUT=de
FONT=ter-v18b
Fontos a font variáns megválasztása. A Terminus fontok elnevezési konvenciója: ter-[változat][méret][súly].
v= VGA (512 glyph, tartalmazza az ékezetes karaktereket)u= Unicode (elvileg több karakter, de egyes rendszereken nem működik az ékezet)18= 18 pixel magasb= bold (vastagabb, olvashatóbb)
A ter-v18b a legjobb kompromisszum méret és olvashatóság között, és az ékezetes karakterek (äöü, áéíóöőúüű) is működnek vele. Az i915 korai betöltés (lásd fent) biztosítja, hogy bootoláskor is ez a font legyen aktív.
Ujjlenyomat-olvasó beállítás
A legtöbb modern ThinkPad tartalmaz ujjlenyomat-olvasót. A Fedora az fprintd szolgáltatáson keresztül kezeli ezeket. Az első lépés a régi (esetleg korrupt) ujjlenyomatok törlése és újraregisztrálás:
fprintd-delete "$USER"
fprintd-enroll -f right-index-finger
fprintd-enroll -f left-index-finger
Annyi ujjat regisztrálj, amennyit kényelmes — én négyet szoktam (jobb és bal mutatóujj, bal hüvelyk, bal kisujj).
Ellenőrzés:
fprintd-verify -f right-index-finger
Ha verify-match-et ír, működik.
USB autosuspend probléma
Egyes ujjlenyomat-olvasók (mint a Goodix MOC) USB autosuspend módba kerülnek inaktivitás után. Amikor a GDM megpróbálja használni, a szenzornak előbb „fel kell ébrednie", ami 1-2 másodperces késleltetést okoz. Ezt egy udev szabállyal javítjuk:
sudo tee /etc/udev/rules.d/50-goodix-nosuspend.rules << 'EOF'
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="27c6", ATTR{idProduct}=="658c", ATTR{power/autosuspend}="-1", ATTR{power/control}="on"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=usb
A 27c6:658c a Goodix szenzor USB azonosítója — ha más szenzor van a gépedben, az lsusb paranccsal megtalálod a sajátodat. Az autosuspend=-1 azt jelenti: soha ne aludjon el.
PAM 2FA: jelszó + ujjlenyomat a bejelentkezéshez
Ez a rész a legösszetettebb, de a legérdekesebb is. A cél: a GDM bejelentkezésnél mindkettő kelljen (jelszó ÉS ujjlenyomat), míg a doas-nál elég legyen az egyik.
Miért 2FA?
Az ujjlenyomat kényelmes, de önmagában nem elég biztonságos — egy alvó ujjal is feloldható a gép. A jelszó önmagában kényelmetlen. A kettő kombinációja a legjobb: a jelszó a „valamit amit tudsz" faktor, az ujjlenyomat a „valamit ami te vagy" faktor.
Van egy praktikus mellékhatás is: a jelszavas belépés automatikusan feloldja a GNOME Keyringet (a rendszer jelszótárolóját). Tisztán ujjlenyomatos belépésnél ez nem történik meg, és minden bejelentkezésnél külön kéri a keyring jelszavát.
authselect opt-out
A Fedora az authselect eszközzel kezeli a PAM (Pluggable Authentication Modules) fájlokat. Az authselect kényelmesen kapcsolgatja a különböző hitelesítési módszereket, de csak „vagy" logikát tud (jelszó VAGY ujjlenyomat). Az „és" logikához manuálisan kell szerkeszteni a PAM fájlokat:
sudo authselect opt-out
Ez azt jelenti: innentől te kezeled a PAM konfigurációt. Az authselect parancsok nem fognak működni amíg vissza nem állsz. Cserébe teljes kontrollt kapsz.
GDM bejelentkezés: 2FA
A GDM a /etc/pam.d/gdm-password fájlt használja. A lényeg az auth szekció első néhány sora:
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth required pam_unix.so nullok
auth required pam_fprintd.so
auth optional pam_gnome_keyring.so
A kulcsszó a required. Amikor mind a pam_unix.so (jelszó) és a pam_fprintd.so (ujjlenyomat) is required, mindkettőnek sikerülnie kell. A sorrend számít: először jelszó, utána ujjlenyomat.
A pam_gnome_keyring.so optional-ként van jelen — ha a jelszó sikeres, átadja a keyringnek, és az feloldódik.
A teljes fájl:
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth required pam_unix.so nullok
auth required pam_fprintd.so
auth optional pam_gnome_keyring.so
auth include postlogin
account required pam_nologin.so
account include system-auth
password substack system-auth
-password optional pam_gnome_keyring.so use_authtok
session required pam_selinux.so close
session required pam_loginuid.so
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
session required pam_namespace.so
session include system-auth
session optional pam_gnome_keyring.so auto_start
session include postlogin
Az ujjlenyomatos GDM login kikapcsolása
A GDM kétféle PAM fájlt tud használni: gdm-password (jelszavas) és gdm-fingerprint (ujjlenyomatos). Ha regisztrált ujjlenyomatokat talál, automatikusan a gdm-fingerprint-et preferálja — ami megkerülné a 2FA-t.
Ezt két helyen kell blokkolni. Először a PAM fájl szintjén — a /etc/pam.d/gdm-fingerprint minden kérést elutasít:
auth required pam_deny.so
account required pam_deny.so
password required pam_deny.so
session required pam_deny.so
Másodszor a GDM felületén — egy dconf beállítással megmondjuk, hogy ne is próbálkozzon:
sudo mkdir -p /etc/dconf/db/gdm.d/locks
sudo tee /etc/dconf/profile/gdm << 'EOF'
user-db:user
system-db:gdm
EOF
sudo tee /etc/dconf/db/gdm.d/02-disable-fingerprint-login << 'EOF'
[org/gnome/login-screen]
enable-fingerprint-authentication=false
EOF
sudo tee /etc/dconf/db/gdm.d/locks/02-fingerprint << 'EOF'
/org/gnome/login-screen/enable-fingerprint-authentication
EOF
sudo dconf update
A locks mappa kényszeríti a beállítást — nélküle a GDM felülírhatja a saját preferenciájával.
Fontos: a dconf profile fájl (/etc/dconf/profile/gdm) nélkül a GDM nem olvassa a gdm.d mappát. Ez egy könnyen kihagyható lépés.
doas/sudo: jelszó VAGY ujjlenyomat
A system-auth fájlban (amit a doas és sudo is használ) az ujjlenyomat sufficient-ként van beállítva:
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok
A sufficient azt jelenti: ha ez sikerül, elég, nem kell tovább menni. Tehát a doas whoami parancsra vagy ujjlenyomatot adsz, vagy jelszót — bármelyik elég.
Vészhelyzet: ha kizárod magad
PAM konfigurációnál mindig legyen nyitva egy root TTY session (Ctrl+Alt+F3) amíg nem tesztelted a változásokat. Ha a GDM nem enged be:
- Ctrl+Alt+F3 → TTY login prompt
- Bejelentkezés user + jelszóval
- Visszaállítás:
sudo cp /etc/pam.d/gdm-password.bak /etc/pam.d/gdm-password
sudo systemctl restart gdm
Plymouth: sima átmenet, logó nélkül
A Plymouth a Linux grafikus boot kezelője. Eredeti célja a szép boot animáció — de van egy fontosabb funkciója: tartja a GPU framebuffert a GDM és a GNOME session közötti váltáskor. Nélküle fekete képernyőt kapsz a bejelentkezés és az asztal megjelenése között.
A kompromisszum: a Plymouth ~3 másodperccel növeli a boot időt, de cserébe a bejelentkezés utáni átmenet zökkenőmentes. A kérdés az, hogy a gyártói és disztribúciós logókat el lehet-e tüntetni úgy, hogy a sima átmenet megmaradjon.
Spinner téma beállítása
A spinner téma tartja a framebuffert, és egy minimális pörgő animációt mutat. A logó (watermark.png) lecserélhető egy átlátszó pixelre:
doas plymouth-set-default-theme spinner -R
doas cp /usr/share/plymouth/themes/spinner/watermark.png /usr/share/plymouth/themes/spinner/watermark.png.bak
magick -size 1x1 xc:transparent /tmp/empty.png
doas cp /tmp/empty.png /usr/share/plymouth/themes/spinner/watermark.png
doas plymouth-set-default-theme spinner -R
Az első -R beállítja a témát és újraépíti az initramfs-t. A watermark csere után a második -R frissíti a boot képfájlt az üres logóval.
GDM logó eltüntetése
A bejelentkezési képernyőn megjelenő Fedora logó a /usr/share/pixmaps/fedora-gdm-logo.png fájlból jön. Ugyanaz a megoldás:
doas cp /usr/share/pixmaps/fedora-gdm-logo.png /usr/share/pixmaps/fedora-gdm-logo.png.bak
doas cp /tmp/empty.png /usr/share/pixmaps/fedora-gdm-logo.png
Mindkét eredeti fájlt .bak-ként mentjük. Fedora frissítés visszaállíthatja az eredeti fájlokat — ha a logó visszajön, a fenti két cp parancs megismétlendő.
Az ImageMagick-ről
A magick parancs az ImageMagick 7 része. Ha nincs telepítve:
doas dnf install ImageMagick
A régebbi convert parancs IMv7-ben deprecated — használd a magick-et.
GDM animáció kikapcsolása
A GDM bejelentkező képernyő fade-in animációja 1-2 másodpercet ad hozzá az észlelt várakozáshoz. Kikapcsolható a GDM saját dconf adatbázisán keresztül:
sudo tee /etc/dconf/db/gdm.d/01-disable-animations << 'EOF'
[org/gnome/desktop/interface]
enable-animations=false
EOF
sudo dconf update
Ez csak a GDM bejelentkező képernyőt érinti. Ha az asztali animációkat is ki akarod kapcsolni (ablaknyitás, workspace váltás, app grid — mindenből azonnali váltás lesz):
gsettings set org.gnome.desktop.interface enable-animations false
Ez egy on/off kapcsoló — nincs lehetőség a sebesség finomhangolására a vanilla GNOME-ban.
Összefoglaló: mit értünk el?
| Terület | Előtte | Utána |
|---|---|---|
| Boot idő | ~35s | ~27s |
| GRUB várakozás | 5s | 0s (hiba esetén megjelenik) |
| Userspace | 11.6s | 7.3s |
| Plymouth | Fedora logóval | Logó nélkül, sima átmenet |
| GDM bejelentkezés | Ujjlenyomat VAGY jelszó | Jelszó → ujjlenyomat (2FA) |
| Keyring | Minden bejelentkezésnél kérte | Automatikus feloldás |
| Online Accounts | Nem működött ujjlenyomattal | Működik (jelszó feloldja) |
| doas/sudo | Jelszó | Jelszó VAGY ujjlenyomat |
| TTY konzol | Olvashatatlan, apró font | Terminus 18px, ékezetekkel |
| Watchdog üzenet | Megjelent leállításkor | Eltűnt |
| GDM animáció | Lassú fade-in | Azonnali |
| GDM logó | Fedora logó | Eltávolítva |
| GNOME animációk | Bekapcsolva | Kikapcsolva |
Hasznos parancsok gyűjtemény
# Boot idő elemzés
systemd-analyze
systemd-analyze blame | head -20
systemd-analyze critical-chain | head -30
# Ujjlenyomatok kezelése
fprintd-list "$USER"
fprintd-verify -f right-index-finger
# PAM konfiguráció ellenőrzése
cat /etc/pam.d/gdm-password
cat /etc/pam.d/system-auth
# GDM logok
journalctl -b --unit=gdm --no-pager | tail -40
# Ujjlenyomat-olvasó logok
journalctl -b --unit=fprintd.service --no-pager | tail -30
# TTY font tesztelése (Ctrl+Alt+F3)
setfont ter-v18b
echo "äöü áéíóöőúüű"