home.social

Search

1000 results for “archlinux”

  1. People keep asking me how I knew to stock up on CPUs and RAM before the AI hardware choke. Anyway, I think I'm just about done configuring my optiplex #archlinux router. It's currently operating behind my modem, but it is responsible for the whole wireless network right now. And wow! Just using the hagezi configuration file for blocking is great. next, I think I'll recreate my "stream hole" configuration for the rest of the TVs in the house. #selfhosted

  2. When two Hetzner servers died at the same time

    On May 12, 2026, two of my Arch Linux + LUKS servers at Hetzner became unreachable at the same moment. Both had been running for 4+ months without issue. Both had received the same pacman -Syyu the day before, but had stayed on the old kernel until the morning the websites stopped responding. I rebooted — SSH never came back. nmap -Pn -p 22 showed filtered from anywhere. No ping. No banner. The Hetzner Robot panel insisted the hardware was fine.

    Several hours went into hypotheses that turned out to be wrong:

    • The encryptssh initcpio hook referencing a /usr/lib/initcpio/udev/11-dm-initramfs.rules file that no longer exists. Real bug, no boot impact — the initramfs rebuilds anyway.
    • PermitRootLogin no in sshd_config. Real misconfiguration, fixed it, didn’t help. A refusing sshd shows closed, not filtered.
    • Predictable interface-naming drift after the systemd 260 upgrade. Patched the .network config to match by MAC. Useful hardening; not the cause.
    • Stale GRUB stage1 + core.img in the MBR. Arch never re-runs grub-install after a grub package upgrade. Refreshed it. Still filtered.
    • Kernel 7.0.5 regression. Downgraded to 6.18.3, the kernel that had run for 4 months. Still filtered. So the kernel itself wasn’t it either.

    The clue was in the persistent journal: a single recorded boot from December 31 to May 12 10:13 UTC, and absolutely nothing after. Every reboot since the upgrade was failing before systemd-journald could flush to disk — so the failure had to be in the initramfs, before the root filesystem was even mounted.

    What it almost certainly was

    Hetzner Dedicated servers configure the initramfs network with ip=dhcp on the kernel command line. That depends on Hetzner’s DHCP server replying to whatever request format the current kernel sends. Somewhere between kernel 6.18 / iproute2 6.18 and kernel 7.0 / iproute2 7.0, the request format changed enough that Hetzner’s DHCP stopped responding. Effects:

    • Old kernel at runtime kept the interface already configured (Phase A — 32 hours of healthy operation after the package upgrade).
    • New kernel cold-boots, hits DHCP, never gets an IP, dropbear cannot listen, port 22 stays filtered.

    Hetzner’s own documentation has been quietly moving away from ip=dhcp toward static IPv4 in the kernel command line. The fix is exactly that:

    GRUB_CMDLINE_LINUX="cryptdevice=/dev/md1:cryptroot ip=A.B.C.D::GATEWAY:255.255.255.255:hostname:eth0:none"
    

    One line in /etc/default/grub, grub-mkconfig, reboot. No more dependency on Hetzner’s DHCP responding to whatever your current kernel sends.

    Why it matters for anyone running this stack

    If you run Arch on Hetzner Dedicated with full-disk encryption and remote unlock via dropbear, the ip=dhcp shipped by installimage is a latent bug. It can keep working for years and then break overnight, on every machine you have, after a routine pacman -Syyu. The static-IP version is what Hetzner now recommends and removes the entire dependency.

    Tooling

    While debugging, I turned the whole rescue / chroot / diagnose / fix workflow into a Python CLI (hal) — including hal fix static-ip, which derives the static cmdline directly from your existing systemd-networkd .network file:

    github.com/kevinveenbirkenbach/hetzner-arch-luks

    Single command, idempotent, reversible (the original /etc/default/grub is backed up to .hal-backup). If you’re on this stack, switch to static IP before the next kernel upgrade catches you.

    #ArchLinux #bootFailure #debugging #DevOps #DHCP #Dropbear #fullDiskEncryption #GRUB #Hetzner #initramfs #kernelUpgrade #Linux #LUKS #mkinitcpio #pacman #postmortem #PythonCLI #serverOutage #sysadmin #systemdNetworkd
  3. When two Hetzner servers died at the same time

    On May 12, 2026, two of my Arch Linux + LUKS servers at Hetzner became unreachable at the same moment. Both had been running for 4+ months without issue. Both had received the same pacman -Syyu the day before, but had stayed on the old kernel until the morning the websites stopped responding. I rebooted — SSH never came back. nmap -Pn -p 22 showed filtered from anywhere. No ping. No banner. The Hetzner Robot panel insisted the hardware was fine.

    Several hours went into hypotheses that turned out to be wrong:

    • The encryptssh initcpio hook referencing a /usr/lib/initcpio/udev/11-dm-initramfs.rules file that no longer exists. Real bug, no boot impact — the initramfs rebuilds anyway.
    • PermitRootLogin no in sshd_config. Real misconfiguration, fixed it, didn’t help. A refusing sshd shows closed, not filtered.
    • Predictable interface-naming drift after the systemd 260 upgrade. Patched the .network config to match by MAC. Useful hardening; not the cause.
    • Stale GRUB stage1 + core.img in the MBR. Arch never re-runs grub-install after a grub package upgrade. Refreshed it. Still filtered.
    • Kernel 7.0.5 regression. Downgraded to 6.18.3, the kernel that had run for 4 months. Still filtered. So the kernel itself wasn’t it either.

    The clue was in the persistent journal: a single recorded boot from December 31 to May 12 10:13 UTC, and absolutely nothing after. Every reboot since the upgrade was failing before systemd-journald could flush to disk — so the failure had to be in the initramfs, before the root filesystem was even mounted.

    What it almost certainly was

    Hetzner Dedicated servers configure the initramfs network with ip=dhcp on the kernel command line. That depends on Hetzner’s DHCP server replying to whatever request format the current kernel sends. Somewhere between kernel 6.18 / iproute2 6.18 and kernel 7.0 / iproute2 7.0, the request format changed enough that Hetzner’s DHCP stopped responding. Effects:

    • Old kernel at runtime kept the interface already configured (Phase A — 32 hours of healthy operation after the package upgrade).
    • New kernel cold-boots, hits DHCP, never gets an IP, dropbear cannot listen, port 22 stays filtered.

    Hetzner’s own documentation has been quietly moving away from ip=dhcp toward static IPv4 in the kernel command line. The fix is exactly that:

    GRUB_CMDLINE_LINUX="cryptdevice=/dev/md1:cryptroot ip=A.B.C.D::GATEWAY:255.255.255.255:hostname:eth0:none"
    

    One line in /etc/default/grub, grub-mkconfig, reboot. No more dependency on Hetzner’s DHCP responding to whatever your current kernel sends.

    Why it matters for anyone running this stack

    If you run Arch on Hetzner Dedicated with full-disk encryption and remote unlock via dropbear, the ip=dhcp shipped by installimage is a latent bug. It can keep working for years and then break overnight, on every machine you have, after a routine pacman -Syyu. The static-IP version is what Hetzner now recommends and removes the entire dependency.

    Tooling

    While debugging, I turned the whole rescue / chroot / diagnose / fix workflow into a Python CLI (hal) — including hal fix static-ip, which derives the static cmdline directly from your existing systemd-networkd .network file:

    github.com/kevinveenbirkenbach/hetzner-arch-luks

    Single command, idempotent, reversible (the original /etc/default/grub is backed up to .hal-backup). If you’re on this stack, switch to static IP before the next kernel upgrade catches you.

    #ArchLinux #bootFailure #debugging #DevOps #DHCP #Dropbear #fullDiskEncryption #GRUB #Hetzner #initramfs #kernelUpgrade #Linux #LUKS #mkinitcpio #pacman #postmortem #PythonCLI #serverOutage #sysadmin #systemdNetworkd
  4. When two Hetzner servers died at the same time

    On May 12, 2026, two of my Arch Linux + LUKS servers at Hetzner became unreachable at the same moment. Both had been running for 4+ months without issue. Both had received the same pacman -Syyu the day before, but had stayed on the old kernel until the morning the websites stopped responding. I rebooted — SSH never came back. nmap -Pn -p 22 showed filtered from anywhere. No ping. No banner. The Hetzner Robot panel insisted the hardware was fine.

    Several hours went into hypotheses that turned out to be wrong:

    • The encryptssh initcpio hook referencing a /usr/lib/initcpio/udev/11-dm-initramfs.rules file that no longer exists. Real bug, no boot impact — the initramfs rebuilds anyway.
    • PermitRootLogin no in sshd_config. Real misconfiguration, fixed it, didn’t help. A refusing sshd shows closed, not filtered.
    • Predictable interface-naming drift after the systemd 260 upgrade. Patched the .network config to match by MAC. Useful hardening; not the cause.
    • Stale GRUB stage1 + core.img in the MBR. Arch never re-runs grub-install after a grub package upgrade. Refreshed it. Still filtered.
    • Kernel 7.0.5 regression. Downgraded to 6.18.3, the kernel that had run for 4 months. Still filtered. So the kernel itself wasn’t it either.

    The clue was in the persistent journal: a single recorded boot from December 31 to May 12 10:13 UTC, and absolutely nothing after. Every reboot since the upgrade was failing before systemd-journald could flush to disk — so the failure had to be in the initramfs, before the root filesystem was even mounted.

    What it almost certainly was

    Hetzner Dedicated servers configure the initramfs network with ip=dhcp on the kernel command line. That depends on Hetzner’s DHCP server replying to whatever request format the current kernel sends. Somewhere between kernel 6.18 / iproute2 6.18 and kernel 7.0 / iproute2 7.0, the request format changed enough that Hetzner’s DHCP stopped responding. Effects:

    • Old kernel at runtime kept the interface already configured (Phase A — 32 hours of healthy operation after the package upgrade).
    • New kernel cold-boots, hits DHCP, never gets an IP, dropbear cannot listen, port 22 stays filtered.

    Hetzner’s own documentation has been quietly moving away from ip=dhcp toward static IPv4 in the kernel command line. The fix is exactly that:

    GRUB_CMDLINE_LINUX="cryptdevice=/dev/md1:cryptroot ip=A.B.C.D::GATEWAY:255.255.255.255:hostname:eth0:none"
    

    One line in /etc/default/grub, grub-mkconfig, reboot. No more dependency on Hetzner’s DHCP responding to whatever your current kernel sends.

    Why it matters for anyone running this stack

    If you run Arch on Hetzner Dedicated with full-disk encryption and remote unlock via dropbear, the ip=dhcp shipped by installimage is a latent bug. It can keep working for years and then break overnight, on every machine you have, after a routine pacman -Syyu. The static-IP version is what Hetzner now recommends and removes the entire dependency.

    Tooling

    While debugging, I turned the whole rescue / chroot / diagnose / fix workflow into a Python CLI (hal) — including hal fix static-ip, which derives the static cmdline directly from your existing systemd-networkd .network file:

    github.com/kevinveenbirkenbach/hetzner-arch-luks

    Single command, idempotent, reversible (the original /etc/default/grub is backed up to .hal-backup). If you’re on this stack, switch to static IP before the next kernel upgrade catches you.

    #ArchLinux #bootFailure #debugging #DevOps #DHCP #Dropbear #fullDiskEncryption #GRUB #Hetzner #initramfs #kernelUpgrade #Linux #LUKS #mkinitcpio #pacman #postmortem #PythonCLI #serverOutage #sysadmin #systemdNetworkd
  5. When two Hetzner servers died at the same time

    On May 12, 2026, two of my Arch Linux + LUKS servers at Hetzner became unreachable at the same moment. Both had been running for 4+ months without issue. Both had received the same pacman -Syyu the day before, but had stayed on the old kernel until the morning the websites stopped responding. I rebooted — SSH never came back. nmap -Pn -p 22 showed filtered from anywhere. No ping. No banner. The Hetzner Robot panel insisted the hardware was fine.

    Several hours went into hypotheses that turned out to be wrong:

    • The encryptssh initcpio hook referencing a /usr/lib/initcpio/udev/11-dm-initramfs.rules file that no longer exists. Real bug, no boot impact — the initramfs rebuilds anyway.
    • PermitRootLogin no in sshd_config. Real misconfiguration, fixed it, didn’t help. A refusing sshd shows closed, not filtered.
    • Predictable interface-naming drift after the systemd 260 upgrade. Patched the .network config to match by MAC. Useful hardening; not the cause.
    • Stale GRUB stage1 + core.img in the MBR. Arch never re-runs grub-install after a grub package upgrade. Refreshed it. Still filtered.
    • Kernel 7.0.5 regression. Downgraded to 6.18.3, the kernel that had run for 4 months. Still filtered. So the kernel itself wasn’t it either.

    The clue was in the persistent journal: a single recorded boot from December 31 to May 12 10:13 UTC, and absolutely nothing after. Every reboot since the upgrade was failing before systemd-journald could flush to disk — so the failure had to be in the initramfs, before the root filesystem was even mounted.

    What it almost certainly was

    Hetzner Dedicated servers configure the initramfs network with ip=dhcp on the kernel command line. That depends on Hetzner’s DHCP server replying to whatever request format the current kernel sends. Somewhere between kernel 6.18 / iproute2 6.18 and kernel 7.0 / iproute2 7.0, the request format changed enough that Hetzner’s DHCP stopped responding. Effects:

    • Old kernel at runtime kept the interface already configured (Phase A — 32 hours of healthy operation after the package upgrade).
    • New kernel cold-boots, hits DHCP, never gets an IP, dropbear cannot listen, port 22 stays filtered.

    Hetzner’s own documentation has been quietly moving away from ip=dhcp toward static IPv4 in the kernel command line. The fix is exactly that:

    GRUB_CMDLINE_LINUX="cryptdevice=/dev/md1:cryptroot ip=A.B.C.D::GATEWAY:255.255.255.255:hostname:eth0:none"
    

    One line in /etc/default/grub, grub-mkconfig, reboot. No more dependency on Hetzner’s DHCP responding to whatever your current kernel sends.

    Why it matters for anyone running this stack

    If you run Arch on Hetzner Dedicated with full-disk encryption and remote unlock via dropbear, the ip=dhcp shipped by installimage is a latent bug. It can keep working for years and then break overnight, on every machine you have, after a routine pacman -Syyu. The static-IP version is what Hetzner now recommends and removes the entire dependency.

    Tooling

    While debugging, I turned the whole rescue / chroot / diagnose / fix workflow into a Python CLI (hal) — including hal fix static-ip, which derives the static cmdline directly from your existing systemd-networkd .network file:

    github.com/kevinveenbirkenbach/hetzner-arch-luks

    Single command, idempotent, reversible (the original /etc/default/grub is backed up to .hal-backup). If you’re on this stack, switch to static IP before the next kernel upgrade catches you.

    #ArchLinux #bootFailure #debugging #DevOps #DHCP #Dropbear #fullDiskEncryption #GRUB #Hetzner #initramfs #kernelUpgrade #Linux #LUKS #mkinitcpio #pacman #postmortem #PythonCLI #serverOutage #sysadmin #systemdNetworkd
  6. Arch Tip týdne: pacman jako profík

    📦 pacman umí mnohem víc než jen instalovat balíčky.
    Tady jsou dotazy, které ti pomůžou pochopit, co máš v systému.

    ═══════════════════════════════════════════
    🔍 ZÁKLADNÍ DOTAZY (-Q = QUERY)
    ═══════════════════════════════════════════

    výpis všech nainstalovaných balíčků

    pacman -Q

    kolik balíčků mám?

    pacman -Q | wc -l

    jen explicitně nainstalované (bez závislostí)

    pacman -Qe

    jen závislosti (instalované jako "side effect")

    pacman -Qd

    balíčky z AUR / mimo oficiální repo

    pacman -Qm

    balíčky JEN z oficiálních repo

    pacman -Qn

    osiřelé balíčky (závislosti, které už nikdo nepotřebuje)

    pacman -Qtdq

    odstranění osiřelých

    sudo pacman -Rns $(pacman -Qtdq)

    ═══════════════════════════════════════════
    📋 pacman -Qi → INFO O BALÍČKU
    ═══════════════════════════════════════════

    detailní info

    pacman -Qi firefox

    co uvidíš:

    - verze, popis, URL

    - licence

    - závislosti (Depends On)

    - co na něm závisí (Required By)

    - volitelné závislosti (Optional Deps)

    - velikost, datum instalace

    - důvod instalace (Explicitly installed / Dependency)

    rozšířené info (přidá Backup Files = konfiguráky chráněné při update)

    pacman -Qii firefox

    info z repa (i pro nenainstalované)

    pacman -Si firefox

    jen velikost balíčku

    pacman -Qi firefox | grep "Installed Size"

    řazení balíčků podle velikosti (potřebuje: pacman -S expac)

    expac -H M "%m\t%n" | sort -h | tail -20

    ═══════════════════════════════════════════
    📂 pacman -Ql → SEZNAM SOUBORŮ
    ═══════════════════════════════════════════

    co všechno balíček nainstaloval

    pacman -Ql firefox

    jen binárky

    pacman -Ql firefox | grep '/bin/'

    konfigurační soubory balíčku (vše v /etc)

    pacman -Ql firefox | grep '^firefox /etc'

    počet souborů v balíčku

    pacman -Ql firefox | wc -l

    soubory nenainstalovaného balíčku (z repa)

    nejdřív aktualizuj file database:

    sudo pacman -Fy
    pacman -Fl firefox

    ═══════════════════════════════════════════
    🔎 pacman -Qo → KDO VLASTNÍ TENTO SOUBOR?
    ═══════════════════════════════════════════

    který balíček nainstaloval daný soubor?

    pacman -Qo /usr/bin/firefox

    výstup:

    /usr/bin/firefox is owned by firefox 123.0-1

    najdi balíček podle příkazu v PATH

    pacman -Qo $(which nvim)

    najdi balíček, kterému patří soubor – i když ho nemáš nainstalovaný

    sudo pacman -Fy
    pacman -F /usr/bin/htop

    ═══════════════════════════════════════════
    🛠️ pacnew / pacsave – CHRÁNĚNÉ KONFIGURÁKY
    ═══════════════════════════════════════════

    Backup Files = soubory označené v balíčku jako "neredisej moji verzi"

    Když přijde update a soubor jsi upravil, pacman vytvoří .pacnew

    (nová verze z balíčku) a tvoji verzi nechá být.

    seznam backup files konkrétního balíčku

    pacman -Qii pacman | awk '/^Backup Files/,/^$/'

    najdi všechny .pacnew/.pacsave v systému (čekající na merge)

    sudo find /etc ( -name ".pacnew" -o -name ".pacsave" )

    interaktivní merge (z pacman-contrib)

    sudo pacman -S pacman-contrib
    sudo pacdiff

    ═══════════════════════════════════════════
    🌳 pactree → STROM ZÁVISLOSTÍ
    ═══════════════════════════════════════════

    instalace (pokud nemáš)

    sudo pacman -S pacman-contrib

    co všechno balíček potřebuje (závislosti)

    pactree firefox

    obrácený strom – kdo závisí NA tomto balíčku

    pactree -r glibc

    omezení hloubky

    pactree -d 1 firefox

    jen názvy, bez ozdob

    pactree -u firefox

    grafický výstup (potřebuje: pacman -S graphviz)

    pactree --graph firefox | dot -Tpng > firefox-deps.png

    ═══════════════════════════════════════════
    🔧 BONUS – DALŠÍ UŽITEČNÉ DOTAZY
    ═══════════════════════════════════════════

    hledání balíčku v repech

    pacman -Ss firefox

    hledání v nainstalovaných

    pacman -Qs firefox

    poslední full upgrade systému

    grep "starting full system upgrade" /var/log/pacman.log | tail -5

    co se naposled instalovalo/aktualizovalo

    tail -50 /var/log/pacman.log

    pretty výpis posledních akcí (expac)

    expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort -r | head -20

    změnit důvod instalace (z dependency na explicit)

    sudo pacman -D --asexplicit firefox

    označit jako závislost (půjde uklidit přes -Rns)

    sudo pacman -D --asdeps nějaký-balíček

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW
    ═══════════════════════════════════════════

    1. co mi žere místo?

    expac -H M "%m\t%n" | sort -h | tail -20

    2. co dělá tenhle balíček?

    pacman -Qi <balíček>

    3. můžu ho smazat? Co na něm závisí?

    pactree -r <balíček>

    4. odkud se vzal tenhle soubor?

    pacman -Qo /cesta/k/souboru

    5. úklid

    sudo pacman -Rns $(pacman -Qtdq)
    sudo paccache -rk2

    #archlinux #pacman #linux #cli

  7. Arch Tip týdne: pacman jako profík

    📦 pacman umí mnohem víc než jen instalovat balíčky.
    Tady jsou dotazy, které ti pomůžou pochopit, co máš v systému.

    ═══════════════════════════════════════════
    🔍 ZÁKLADNÍ DOTAZY (-Q = QUERY)
    ═══════════════════════════════════════════

    výpis všech nainstalovaných balíčků

    pacman -Q

    kolik balíčků mám?

    pacman -Q | wc -l

    jen explicitně nainstalované (bez závislostí)

    pacman -Qe

    jen závislosti (instalované jako "side effect")

    pacman -Qd

    balíčky z AUR / mimo oficiální repo

    pacman -Qm

    balíčky JEN z oficiálních repo

    pacman -Qn

    osiřelé balíčky (závislosti, které už nikdo nepotřebuje)

    pacman -Qtdq

    odstranění osiřelých

    sudo pacman -Rns $(pacman -Qtdq)

    ═══════════════════════════════════════════
    📋 pacman -Qi → INFO O BALÍČKU
    ═══════════════════════════════════════════

    detailní info

    pacman -Qi firefox

    co uvidíš:

    - verze, popis, URL

    - licence

    - závislosti (Depends On)

    - co na něm závisí (Required By)

    - volitelné závislosti (Optional Deps)

    - velikost, datum instalace

    - důvod instalace (Explicitly installed / Dependency)

    rozšířené info (přidá Backup Files = konfiguráky chráněné při update)

    pacman -Qii firefox

    info z repa (i pro nenainstalované)

    pacman -Si firefox

    jen velikost balíčku

    pacman -Qi firefox | grep "Installed Size"

    řazení balíčků podle velikosti (potřebuje: pacman -S expac)

    expac -H M "%m\t%n" | sort -h | tail -20

    ═══════════════════════════════════════════
    📂 pacman -Ql → SEZNAM SOUBORŮ
    ═══════════════════════════════════════════

    co všechno balíček nainstaloval

    pacman -Ql firefox

    jen binárky

    pacman -Ql firefox | grep '/bin/'

    konfigurační soubory balíčku (vše v /etc)

    pacman -Ql firefox | grep '^firefox /etc'

    počet souborů v balíčku

    pacman -Ql firefox | wc -l

    soubory nenainstalovaného balíčku (z repa)

    nejdřív aktualizuj file database:

    sudo pacman -Fy
    pacman -Fl firefox

    ═══════════════════════════════════════════
    🔎 pacman -Qo → KDO VLASTNÍ TENTO SOUBOR?
    ═══════════════════════════════════════════

    který balíček nainstaloval daný soubor?

    pacman -Qo /usr/bin/firefox

    výstup:

    /usr/bin/firefox is owned by firefox 123.0-1

    najdi balíček podle příkazu v PATH

    pacman -Qo $(which nvim)

    najdi balíček, kterému patří soubor – i když ho nemáš nainstalovaný

    sudo pacman -Fy
    pacman -F /usr/bin/htop

    ═══════════════════════════════════════════
    🛠️ pacnew / pacsave – CHRÁNĚNÉ KONFIGURÁKY
    ═══════════════════════════════════════════

    Backup Files = soubory označené v balíčku jako "neredisej moji verzi"

    Když přijde update a soubor jsi upravil, pacman vytvoří .pacnew

    (nová verze z balíčku) a tvoji verzi nechá být.

    seznam backup files konkrétního balíčku

    pacman -Qii pacman | awk '/^Backup Files/,/^$/'

    najdi všechny .pacnew/.pacsave v systému (čekající na merge)

    sudo find /etc ( -name ".pacnew" -o -name ".pacsave" )

    interaktivní merge (z pacman-contrib)

    sudo pacman -S pacman-contrib
    sudo pacdiff

    ═══════════════════════════════════════════
    🌳 pactree → STROM ZÁVISLOSTÍ
    ═══════════════════════════════════════════

    instalace (pokud nemáš)

    sudo pacman -S pacman-contrib

    co všechno balíček potřebuje (závislosti)

    pactree firefox

    obrácený strom – kdo závisí NA tomto balíčku

    pactree -r glibc

    omezení hloubky

    pactree -d 1 firefox

    jen názvy, bez ozdob

    pactree -u firefox

    grafický výstup (potřebuje: pacman -S graphviz)

    pactree --graph firefox | dot -Tpng > firefox-deps.png

    ═══════════════════════════════════════════
    🔧 BONUS – DALŠÍ UŽITEČNÉ DOTAZY
    ═══════════════════════════════════════════

    hledání balíčku v repech

    pacman -Ss firefox

    hledání v nainstalovaných

    pacman -Qs firefox

    poslední full upgrade systému

    grep "starting full system upgrade" /var/log/pacman.log | tail -5

    co se naposled instalovalo/aktualizovalo

    tail -50 /var/log/pacman.log

    pretty výpis posledních akcí (expac)

    expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort -r | head -20

    změnit důvod instalace (z dependency na explicit)

    sudo pacman -D --asexplicit firefox

    označit jako závislost (půjde uklidit přes -Rns)

    sudo pacman -D --asdeps nějaký-balíček

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW
    ═══════════════════════════════════════════

    1. co mi žere místo?

    expac -H M "%m\t%n" | sort -h | tail -20

    2. co dělá tenhle balíček?

    pacman -Qi <balíček>

    3. můžu ho smazat? Co na něm závisí?

    pactree -r <balíček>

    4. odkud se vzal tenhle soubor?

    pacman -Qo /cesta/k/souboru

    5. úklid

    sudo pacman -Rns $(pacman -Qtdq)
    sudo paccache -rk2

    #archlinux #pacman #linux #cli

  8. Arch Tip týdne: pacman jako profík

    📦 pacman umí mnohem víc než jen instalovat balíčky.
    Tady jsou dotazy, které ti pomůžou pochopit, co máš v systému.

    ═══════════════════════════════════════════
    🔍 ZÁKLADNÍ DOTAZY (-Q = QUERY)
    ═══════════════════════════════════════════

    výpis všech nainstalovaných balíčků

    pacman -Q

    kolik balíčků mám?

    pacman -Q | wc -l

    jen explicitně nainstalované (bez závislostí)

    pacman -Qe

    jen závislosti (instalované jako "side effect")

    pacman -Qd

    balíčky z AUR / mimo oficiální repo

    pacman -Qm

    balíčky JEN z oficiálních repo

    pacman -Qn

    osiřelé balíčky (závislosti, které už nikdo nepotřebuje)

    pacman -Qtdq

    odstranění osiřelých

    sudo pacman -Rns $(pacman -Qtdq)

    ═══════════════════════════════════════════
    📋 pacman -Qi → INFO O BALÍČKU
    ═══════════════════════════════════════════

    detailní info

    pacman -Qi firefox

    co uvidíš:

    - verze, popis, URL

    - licence

    - závislosti (Depends On)

    - co na něm závisí (Required By)

    - volitelné závislosti (Optional Deps)

    - velikost, datum instalace

    - důvod instalace (Explicitly installed / Dependency)

    rozšířené info (přidá Backup Files = konfiguráky chráněné při update)

    pacman -Qii firefox

    info z repa (i pro nenainstalované)

    pacman -Si firefox

    jen velikost balíčku

    pacman -Qi firefox | grep "Installed Size"

    řazení balíčků podle velikosti (potřebuje: pacman -S expac)

    expac -H M "%m\t%n" | sort -h | tail -20

    ═══════════════════════════════════════════
    📂 pacman -Ql → SEZNAM SOUBORŮ
    ═══════════════════════════════════════════

    co všechno balíček nainstaloval

    pacman -Ql firefox

    jen binárky

    pacman -Ql firefox | grep '/bin/'

    konfigurační soubory balíčku (vše v /etc)

    pacman -Ql firefox | grep '^firefox /etc'

    počet souborů v balíčku

    pacman -Ql firefox | wc -l

    soubory nenainstalovaného balíčku (z repa)

    nejdřív aktualizuj file database:

    sudo pacman -Fy
    pacman -Fl firefox

    ═══════════════════════════════════════════
    🔎 pacman -Qo → KDO VLASTNÍ TENTO SOUBOR?
    ═══════════════════════════════════════════

    který balíček nainstaloval daný soubor?

    pacman -Qo /usr/bin/firefox

    výstup:

    /usr/bin/firefox is owned by firefox 123.0-1

    najdi balíček podle příkazu v PATH

    pacman -Qo $(which nvim)

    najdi balíček, kterému patří soubor – i když ho nemáš nainstalovaný

    sudo pacman -Fy
    pacman -F /usr/bin/htop

    ═══════════════════════════════════════════
    🛠️ pacnew / pacsave – CHRÁNĚNÉ KONFIGURÁKY
    ═══════════════════════════════════════════

    Backup Files = soubory označené v balíčku jako "neredisej moji verzi"

    Když přijde update a soubor jsi upravil, pacman vytvoří .pacnew

    (nová verze z balíčku) a tvoji verzi nechá být.

    seznam backup files konkrétního balíčku

    pacman -Qii pacman | awk '/^Backup Files/,/^$/'

    najdi všechny .pacnew/.pacsave v systému (čekající na merge)

    sudo find /etc ( -name ".pacnew" -o -name ".pacsave" )

    interaktivní merge (z pacman-contrib)

    sudo pacman -S pacman-contrib
    sudo pacdiff

    ═══════════════════════════════════════════
    🌳 pactree → STROM ZÁVISLOSTÍ
    ═══════════════════════════════════════════

    instalace (pokud nemáš)

    sudo pacman -S pacman-contrib

    co všechno balíček potřebuje (závislosti)

    pactree firefox

    obrácený strom – kdo závisí NA tomto balíčku

    pactree -r glibc

    omezení hloubky

    pactree -d 1 firefox

    jen názvy, bez ozdob

    pactree -u firefox

    grafický výstup (potřebuje: pacman -S graphviz)

    pactree --graph firefox | dot -Tpng > firefox-deps.png

    ═══════════════════════════════════════════
    🔧 BONUS – DALŠÍ UŽITEČNÉ DOTAZY
    ═══════════════════════════════════════════

    hledání balíčku v repech

    pacman -Ss firefox

    hledání v nainstalovaných

    pacman -Qs firefox

    poslední full upgrade systému

    grep "starting full system upgrade" /var/log/pacman.log | tail -5

    co se naposled instalovalo/aktualizovalo

    tail -50 /var/log/pacman.log

    pretty výpis posledních akcí (expac)

    expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort -r | head -20

    změnit důvod instalace (z dependency na explicit)

    sudo pacman -D --asexplicit firefox

    označit jako závislost (půjde uklidit přes -Rns)

    sudo pacman -D --asdeps nějaký-balíček

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW
    ═══════════════════════════════════════════

    1. co mi žere místo?

    expac -H M "%m\t%n" | sort -h | tail -20

    2. co dělá tenhle balíček?

    pacman -Qi <balíček>

    3. můžu ho smazat? Co na něm závisí?

    pactree -r <balíček>

    4. odkud se vzal tenhle soubor?

    pacman -Qo /cesta/k/souboru

    5. úklid

    sudo pacman -Rns $(pacman -Qtdq)
    sudo paccache -rk2

    #archlinux #pacman #linux #cli

  9. Arch Tip týdne: pacman jako profík

    📦 pacman umí mnohem víc než jen instalovat balíčky.
    Tady jsou dotazy, které ti pomůžou pochopit, co máš v systému.

    ═══════════════════════════════════════════
    🔍 ZÁKLADNÍ DOTAZY (-Q = QUERY)
    ═══════════════════════════════════════════

    výpis všech nainstalovaných balíčků

    pacman -Q

    kolik balíčků mám?

    pacman -Q | wc -l

    jen explicitně nainstalované (bez závislostí)

    pacman -Qe

    jen závislosti (instalované jako "side effect")

    pacman -Qd

    balíčky z AUR / mimo oficiální repo

    pacman -Qm

    balíčky JEN z oficiálních repo

    pacman -Qn

    osiřelé balíčky (závislosti, které už nikdo nepotřebuje)

    pacman -Qtdq

    odstranění osiřelých

    sudo pacman -Rns $(pacman -Qtdq)

    ═══════════════════════════════════════════
    📋 pacman -Qi → INFO O BALÍČKU
    ═══════════════════════════════════════════

    detailní info

    pacman -Qi firefox

    co uvidíš:

    - verze, popis, URL

    - licence

    - závislosti (Depends On)

    - co na něm závisí (Required By)

    - volitelné závislosti (Optional Deps)

    - velikost, datum instalace

    - důvod instalace (Explicitly installed / Dependency)

    rozšířené info (přidá Backup Files = konfiguráky chráněné při update)

    pacman -Qii firefox

    info z repa (i pro nenainstalované)

    pacman -Si firefox

    jen velikost balíčku

    pacman -Qi firefox | grep "Installed Size"

    řazení balíčků podle velikosti (potřebuje: pacman -S expac)

    expac -H M "%m\t%n" | sort -h | tail -20

    ═══════════════════════════════════════════
    📂 pacman -Ql → SEZNAM SOUBORŮ
    ═══════════════════════════════════════════

    co všechno balíček nainstaloval

    pacman -Ql firefox

    jen binárky

    pacman -Ql firefox | grep '/bin/'

    konfigurační soubory balíčku (vše v /etc)

    pacman -Ql firefox | grep '^firefox /etc'

    počet souborů v balíčku

    pacman -Ql firefox | wc -l

    soubory nenainstalovaného balíčku (z repa)

    nejdřív aktualizuj file database:

    sudo pacman -Fy
    pacman -Fl firefox

    ═══════════════════════════════════════════
    🔎 pacman -Qo → KDO VLASTNÍ TENTO SOUBOR?
    ═══════════════════════════════════════════

    který balíček nainstaloval daný soubor?

    pacman -Qo /usr/bin/firefox

    výstup:

    /usr/bin/firefox is owned by firefox 123.0-1

    najdi balíček podle příkazu v PATH

    pacman -Qo $(which nvim)

    najdi balíček, kterému patří soubor – i když ho nemáš nainstalovaný

    sudo pacman -Fy
    pacman -F /usr/bin/htop

    ═══════════════════════════════════════════
    🛠️ pacnew / pacsave – CHRÁNĚNÉ KONFIGURÁKY
    ═══════════════════════════════════════════

    Backup Files = soubory označené v balíčku jako "neredisej moji verzi"

    Když přijde update a soubor jsi upravil, pacman vytvoří .pacnew

    (nová verze z balíčku) a tvoji verzi nechá být.

    seznam backup files konkrétního balíčku

    pacman -Qii pacman | awk '/^Backup Files/,/^$/'

    najdi všechny .pacnew/.pacsave v systému (čekající na merge)

    sudo find /etc ( -name ".pacnew" -o -name ".pacsave" )

    interaktivní merge (z pacman-contrib)

    sudo pacman -S pacman-contrib
    sudo pacdiff

    ═══════════════════════════════════════════
    🌳 pactree → STROM ZÁVISLOSTÍ
    ═══════════════════════════════════════════

    instalace (pokud nemáš)

    sudo pacman -S pacman-contrib

    co všechno balíček potřebuje (závislosti)

    pactree firefox

    obrácený strom – kdo závisí NA tomto balíčku

    pactree -r glibc

    omezení hloubky

    pactree -d 1 firefox

    jen názvy, bez ozdob

    pactree -u firefox

    grafický výstup (potřebuje: pacman -S graphviz)

    pactree --graph firefox | dot -Tpng > firefox-deps.png

    ═══════════════════════════════════════════
    🔧 BONUS – DALŠÍ UŽITEČNÉ DOTAZY
    ═══════════════════════════════════════════

    hledání balíčku v repech

    pacman -Ss firefox

    hledání v nainstalovaných

    pacman -Qs firefox

    poslední full upgrade systému

    grep "starting full system upgrade" /var/log/pacman.log | tail -5

    co se naposled instalovalo/aktualizovalo

    tail -50 /var/log/pacman.log

    pretty výpis posledních akcí (expac)

    expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort -r | head -20

    změnit důvod instalace (z dependency na explicit)

    sudo pacman -D --asexplicit firefox

    označit jako závislost (půjde uklidit přes -Rns)

    sudo pacman -D --asdeps nějaký-balíček

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW
    ═══════════════════════════════════════════

    1. co mi žere místo?

    expac -H M "%m\t%n" | sort -h | tail -20

    2. co dělá tenhle balíček?

    pacman -Qi <balíček>

    3. můžu ho smazat? Co na něm závisí?

    pactree -r <balíček>

    4. odkud se vzal tenhle soubor?

    pacman -Qo /cesta/k/souboru

    5. úklid

    sudo pacman -Rns $(pacman -Qtdq)
    sudo paccache -rk2

    #archlinux #pacman #linux #cli

  10. After two weeks of wrangling, finally got the next batch of AV1 packages built for Arch into the repo. Should be back on the regular schedule of weekly releases unless something else rears its ugly head.

    - Some packages require GCC 15 and absolutely hate GCC 16
    - Zig 0.16 is not an option for a lot of stuff
    - VapourSynth API v3 C headers are no longer included with the Arch Linux package, so had to grab those from the repo and get them to the right spot

    #vapoursynth #encoding #av1 #archlinux

  11. Updating my systems is usually pretty quick, but on the one system where I have an GPU and have CUDA installed the process takes notably longer (primarily because the download sizes are so much larger).

  12. @archlinux actualizado y reiniciado... #linux #kernel 7.0 corriendo!

    Eso sí, tuve que reemplazar mi terminal drop-down, qterminal me empezó a dar problemas con #neovim... así que volví a la vieja y querida #tilda 😃

    #gnu #linux #archlinux #update #upgrade #tilda #guake #qterminal

  13. There’s something special about a clean terminal and a fresh coffee on a system that just works the way you want it to.

    Spent way too much time hopping distros, but Arch + KDE is where I finally settled. It’s nice not having to fight your own OS for once.

    Anyone else rocking a custom setup? Drop a neofetch or a screenshot below, I’m looking for some fresh inspiration.

    #ArchLinux #KDE #Linux #ShowYourDesktop #Ricing

  14. From a conversation that happened earlier in our Discourse chat (yes, Discourse has a chat too)

    #ArchLinux #Linux #Meme #TheGamersTavern

  15. From a conversation that happened earlier in our Discourse chat (yes, Discourse has a chat too)

    #ArchLinux #Linux #Meme #TheGamersTavern

  16. From a conversation that happened earlier in our Discourse chat (yes, Discourse has a chat too)

    #ArchLinux #Linux #Meme #TheGamersTavern

  17. From a conversation that happened earlier in our Discourse chat (yes, Discourse has a chat too)

    #ArchLinux #Linux #Meme #TheGamersTavern

  18. Solo fighting Promised Consort Radahn with help from my Mimic Tear ashes. Btw he's the last final boss of the whole DLC and I guess the whole game.

    After a 15 month break from the game, where during those times we lost our dog, the people who kept my chat alive, and most importantly the friend who introduced me to this game, it's finally done.

    #peertube: video.hardlimit.com/w/xbgifGXh

    #youtube: youtube.com/watch?v=LspbGNK1dKs

    #eldenring #fromsoftware #soulslike #darksouls #linuxgaming #archlinux

  19. Arch Tip týdne: Kam mi mizí místo na disku?

    💽 Čtyři nástroje, se kterými najdeš každý zbytečný gigabajt.
    Žádné klikání – rychlé, přehledné, přímo v terminálu.

    ═══════════════════════════════════════════
    📊 DUF – přehled všech disků
    ═══════════════════════════════════════════

    Moderní nahrazení df. Barevný, přehledný výstup.

    Instalace:
    sudo pacman -S duf

    Použití:
    duf                    # všechny disky
    duf /home /mnt         # jen vybrané
    duf --only local       # jen lokální (bez tmpfs, atd.)
    duf --sort size        # seřadit podle velikosti

    Co uvidíš:
    → kolik místa je volné/použité
    → typ souborového systému
    → mount pointy
    → varování u skoro plných disků

    ═══════════════════════════════════════════
    🔍 NCDU – interaktivní prohlížeč velikostí
    ═══════════════════════════════════════════

    Ukáže, které složky žerou nejvíc. Šipkama procházíš,
    mazat můžeš přímo (klávesa d).

    Instalace:
    sudo pacman -S ncdu

    Použití:
    ncdu /                 # celý systém (chvíli trvá)
    ncdu ~                 # jen home
    ncdu --exclude .cache  # vynechat složky
    sudo ncdu -x /         # -x = nepřecházet přes mount pointy

    Ovládání:
    → šipky / enter = procházení
    → d = smazat
    → n / s = řadit podle jména / velikosti
    → g = zobrazit v % nebo graficky
    → q = konec

    Tip: Spusť na root oddílu, když se ti plní /.
    Nejčastější viníci: ~/.cache, /var/log, /var/cache/pacman/pkg

    ═══════════════════════════════════════════
    🧱 LSBLK – stromový přehled disků
    ═══════════════════════════════════════════

    Ukáže všechny disky, oddíly a jejich mount pointy.

    Použití:
    lsblk                              # základní výstup
    lsblk -f                           # + filesystémy a UUID
    lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL
    lsblk -p                           # plné cesty (/dev/sda1)

    Co uvidíš:
    → fyzické disky a jejich oddíly
    → LUKS kontejnery, LVM, RAID
    → kde je co připojené

    ═══════════════════════════════════════════
    🔎 FINDMNT – kde je co připojené
    ═══════════════════════════════════════════

    Lepší než mount | grep. Ukáže stromovou strukturu
    všech mount pointů.

    Použití:
    findmnt                    # strom všech mountů
    findmnt /home              # konkrétní cesta
    findmnt -t ext4,btrfs      # jen vybrané FS
    findmnt --real             # bez pseudo FS (proc, sys…)
    findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS

    Hodí se když:
    → nevíš jestli je něco připojené
    → ladíš fstab
    → řešíš problém s NFS/SSHFS

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW – plní se disk
    ═══════════════════════════════════════════

    1. rychlý přehled

    duf

    2. který disk je plný?

    df -h /

    3. kde přesně žere místo?

    sudo ncdu -x /

    4. ověř mount pointy a strukturu

    lsblk -f
    findmnt --real

    ═══════════════════════════════════════════
    🧹 BONUS – časté zdroje žroutů místa
    ═══════════════════════════════════════════

    cache pacmanu (nech poslední 2 verze)

    sudo paccache -rk2

    journald logy (nech jen posledních 500 MB)

    sudo journalctl --vacuum-size=500M

    cache v home

    du -sh ~/.cache
    rm -rf ~/.cache/*

    docker (pokud používáš)

    docker system prune -a

    osiřelé balíčky

    sudo pacman -Rns $(pacman -Qtdq)

    #archlinux #linux #disk #cli #sysadmin

  20. Arch Tip týdne: Kam mi mizí místo na disku?

    💽 Čtyři nástroje, se kterými najdeš každý zbytečný gigabajt.
    Žádné klikání – rychlé, přehledné, přímo v terminálu.

    ═══════════════════════════════════════════
    📊 DUF – přehled všech disků
    ═══════════════════════════════════════════

    Moderní nahrazení df. Barevný, přehledný výstup.

    Instalace:
    sudo pacman -S duf

    Použití:
    duf                    # všechny disky
    duf /home /mnt         # jen vybrané
    duf --only local       # jen lokální (bez tmpfs, atd.)
    duf --sort size        # seřadit podle velikosti

    Co uvidíš:
    → kolik místa je volné/použité
    → typ souborového systému
    → mount pointy
    → varování u skoro plných disků

    ═══════════════════════════════════════════
    🔍 NCDU – interaktivní prohlížeč velikostí
    ═══════════════════════════════════════════

    Ukáže, které složky žerou nejvíc. Šipkama procházíš,
    mazat můžeš přímo (klávesa d).

    Instalace:
    sudo pacman -S ncdu

    Použití:
    ncdu /                 # celý systém (chvíli trvá)
    ncdu ~                 # jen home
    ncdu --exclude .cache  # vynechat složky
    sudo ncdu -x /         # -x = nepřecházet přes mount pointy

    Ovládání:
    → šipky / enter = procházení
    → d = smazat
    → n / s = řadit podle jména / velikosti
    → g = zobrazit v % nebo graficky
    → q = konec

    Tip: Spusť na root oddílu, když se ti plní /.
    Nejčastější viníci: ~/.cache, /var/log, /var/cache/pacman/pkg

    ═══════════════════════════════════════════
    🧱 LSBLK – stromový přehled disků
    ═══════════════════════════════════════════

    Ukáže všechny disky, oddíly a jejich mount pointy.

    Použití:
    lsblk                              # základní výstup
    lsblk -f                           # + filesystémy a UUID
    lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL
    lsblk -p                           # plné cesty (/dev/sda1)

    Co uvidíš:
    → fyzické disky a jejich oddíly
    → LUKS kontejnery, LVM, RAID
    → kde je co připojené

    ═══════════════════════════════════════════
    🔎 FINDMNT – kde je co připojené
    ═══════════════════════════════════════════

    Lepší než mount | grep. Ukáže stromovou strukturu
    všech mount pointů.

    Použití:
    findmnt                    # strom všech mountů
    findmnt /home              # konkrétní cesta
    findmnt -t ext4,btrfs      # jen vybrané FS
    findmnt --real             # bez pseudo FS (proc, sys…)
    findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS

    Hodí se když:
    → nevíš jestli je něco připojené
    → ladíš fstab
    → řešíš problém s NFS/SSHFS

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW – plní se disk
    ═══════════════════════════════════════════

    1. rychlý přehled

    duf

    2. který disk je plný?

    df -h /

    3. kde přesně žere místo?

    sudo ncdu -x /

    4. ověř mount pointy a strukturu

    lsblk -f
    findmnt --real

    ═══════════════════════════════════════════
    🧹 BONUS – časté zdroje žroutů místa
    ═══════════════════════════════════════════

    cache pacmanu (nech poslední 2 verze)

    sudo paccache -rk2

    journald logy (nech jen posledních 500 MB)

    sudo journalctl --vacuum-size=500M

    cache v home

    du -sh ~/.cache
    rm -rf ~/.cache/*

    docker (pokud používáš)

    docker system prune -a

    osiřelé balíčky

    sudo pacman -Rns $(pacman -Qtdq)

    #archlinux #linux #disk #cli #sysadmin

  21. Arch Tip týdne: Kam mi mizí místo na disku?

    💽 Čtyři nástroje, se kterými najdeš každý zbytečný gigabajt.
    Žádné klikání – rychlé, přehledné, přímo v terminálu.

    ═══════════════════════════════════════════
    📊 DUF – přehled všech disků
    ═══════════════════════════════════════════

    Moderní nahrazení df. Barevný, přehledný výstup.

    Instalace:
    sudo pacman -S duf

    Použití:
    duf                    # všechny disky
    duf /home /mnt         # jen vybrané
    duf --only local       # jen lokální (bez tmpfs, atd.)
    duf --sort size        # seřadit podle velikosti

    Co uvidíš:
    → kolik místa je volné/použité
    → typ souborového systému
    → mount pointy
    → varování u skoro plných disků

    ═══════════════════════════════════════════
    🔍 NCDU – interaktivní prohlížeč velikostí
    ═══════════════════════════════════════════

    Ukáže, které složky žerou nejvíc. Šipkama procházíš,
    mazat můžeš přímo (klávesa d).

    Instalace:
    sudo pacman -S ncdu

    Použití:
    ncdu /                 # celý systém (chvíli trvá)
    ncdu ~                 # jen home
    ncdu --exclude .cache  # vynechat složky
    sudo ncdu -x /         # -x = nepřecházet přes mount pointy

    Ovládání:
    → šipky / enter = procházení
    → d = smazat
    → n / s = řadit podle jména / velikosti
    → g = zobrazit v % nebo graficky
    → q = konec

    Tip: Spusť na root oddílu, když se ti plní /.
    Nejčastější viníci: ~/.cache, /var/log, /var/cache/pacman/pkg

    ═══════════════════════════════════════════
    🧱 LSBLK – stromový přehled disků
    ═══════════════════════════════════════════

    Ukáže všechny disky, oddíly a jejich mount pointy.

    Použití:
    lsblk                              # základní výstup
    lsblk -f                           # + filesystémy a UUID
    lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL
    lsblk -p                           # plné cesty (/dev/sda1)

    Co uvidíš:
    → fyzické disky a jejich oddíly
    → LUKS kontejnery, LVM, RAID
    → kde je co připojené

    ═══════════════════════════════════════════
    🔎 FINDMNT – kde je co připojené
    ═══════════════════════════════════════════

    Lepší než mount | grep. Ukáže stromovou strukturu
    všech mount pointů.

    Použití:
    findmnt                    # strom všech mountů
    findmnt /home              # konkrétní cesta
    findmnt -t ext4,btrfs      # jen vybrané FS
    findmnt --real             # bez pseudo FS (proc, sys…)
    findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS

    Hodí se když:
    → nevíš jestli je něco připojené
    → ladíš fstab
    → řešíš problém s NFS/SSHFS

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW – plní se disk
    ═══════════════════════════════════════════

    1. rychlý přehled

    duf

    2. který disk je plný?

    df -h /

    3. kde přesně žere místo?

    sudo ncdu -x /

    4. ověř mount pointy a strukturu

    lsblk -f
    findmnt --real

    ═══════════════════════════════════════════
    🧹 BONUS – časté zdroje žroutů místa
    ═══════════════════════════════════════════

    cache pacmanu (nech poslední 2 verze)

    sudo paccache -rk2

    journald logy (nech jen posledních 500 MB)

    sudo journalctl --vacuum-size=500M

    cache v home

    du -sh ~/.cache
    rm -rf ~/.cache/*

    docker (pokud používáš)

    docker system prune -a

    osiřelé balíčky

    sudo pacman -Rns $(pacman -Qtdq)

    #archlinux #linux #disk #cli #sysadmin

  22. Arch Tip týdne: Kam mi mizí místo na disku?

    💽 Čtyři nástroje, se kterými najdeš každý zbytečný gigabajt.
    Žádné klikání – rychlé, přehledné, přímo v terminálu.

    ═══════════════════════════════════════════
    📊 DUF – přehled všech disků
    ═══════════════════════════════════════════

    Moderní nahrazení df. Barevný, přehledný výstup.

    Instalace:
    sudo pacman -S duf

    Použití:
    duf                    # všechny disky
    duf /home /mnt         # jen vybrané
    duf --only local       # jen lokální (bez tmpfs, atd.)
    duf --sort size        # seřadit podle velikosti

    Co uvidíš:
    → kolik místa je volné/použité
    → typ souborového systému
    → mount pointy
    → varování u skoro plných disků

    ═══════════════════════════════════════════
    🔍 NCDU – interaktivní prohlížeč velikostí
    ═══════════════════════════════════════════

    Ukáže, které složky žerou nejvíc. Šipkama procházíš,
    mazat můžeš přímo (klávesa d).

    Instalace:
    sudo pacman -S ncdu

    Použití:
    ncdu /                 # celý systém (chvíli trvá)
    ncdu ~                 # jen home
    ncdu --exclude .cache  # vynechat složky
    sudo ncdu -x /         # -x = nepřecházet přes mount pointy

    Ovládání:
    → šipky / enter = procházení
    → d = smazat
    → n / s = řadit podle jména / velikosti
    → g = zobrazit v % nebo graficky
    → q = konec

    Tip: Spusť na root oddílu, když se ti plní /.
    Nejčastější viníci: ~/.cache, /var/log, /var/cache/pacman/pkg

    ═══════════════════════════════════════════
    🧱 LSBLK – stromový přehled disků
    ═══════════════════════════════════════════

    Ukáže všechny disky, oddíly a jejich mount pointy.

    Použití:
    lsblk                              # základní výstup
    lsblk -f                           # + filesystémy a UUID
    lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL
    lsblk -p                           # plné cesty (/dev/sda1)

    Co uvidíš:
    → fyzické disky a jejich oddíly
    → LUKS kontejnery, LVM, RAID
    → kde je co připojené

    ═══════════════════════════════════════════
    🔎 FINDMNT – kde je co připojené
    ═══════════════════════════════════════════

    Lepší než mount | grep. Ukáže stromovou strukturu
    všech mount pointů.

    Použití:
    findmnt                    # strom všech mountů
    findmnt /home              # konkrétní cesta
    findmnt -t ext4,btrfs      # jen vybrané FS
    findmnt --real             # bez pseudo FS (proc, sys…)
    findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS

    Hodí se když:
    → nevíš jestli je něco připojené
    → ladíš fstab
    → řešíš problém s NFS/SSHFS

    ═══════════════════════════════════════════
    💡 TYPICKÝ WORKFLOW – plní se disk
    ═══════════════════════════════════════════

    1. rychlý přehled

    duf

    2. který disk je plný?

    df -h /

    3. kde přesně žere místo?

    sudo ncdu -x /

    4. ověř mount pointy a strukturu

    lsblk -f
    findmnt --real

    ═══════════════════════════════════════════
    🧹 BONUS – časté zdroje žroutů místa
    ═══════════════════════════════════════════

    cache pacmanu (nech poslední 2 verze)

    sudo paccache -rk2

    journald logy (nech jen posledních 500 MB)

    sudo journalctl --vacuum-size=500M

    cache v home

    du -sh ~/.cache
    rm -rf ~/.cache/*

    docker (pokud používáš)

    docker system prune -a

    osiřelé balíčky

    sudo pacman -Rns $(pacman -Qtdq)

    #archlinux #linux #disk #cli #sysadmin

  23. I am getting tired of running Arch Linux.
    Stuff tends to break or stop working in weird ways. I have been running Arch for my personal stuff and MX Linux for work for the past year. Now that I've quit my job to take care of my health I started using MX Linux just to get stuff done, because things on Arch simply don't work.
    I think I'm ultimately going to move entirely to MX Linux. Arch is bleeding edge, but I think I need something a bit more dull to ease the pain...
    #ArchLinux #MXLinux

  24. @nikodunk There was a time in my life where I was excited about such things...but at 53, Im just glad my #archlinux #openbox instance boots and my games play fairly well on my #radeo xtx 7900

  25. Loki подсказал, что часто не могу получить GPG ключи на одной из систем. Не обратил бы внимание, если бы эти ошибки не вышли в топ по логам. Неприятно, но решаемо.

    В /etc/pacman.d/gnupg/gpg.conf добавил пару строк:

    auto-key-locate keyserver
    allow-weak-key-signatures

    И обновление ключей: pacman-key --refresh-keys

    #archlinux #gnupg

  26. Endlich geschafft: Mein ultimatives Arch Linux Setup im Showroom! 🐧💻

    In diesem Video zeige ich euch, wie ich mein System für Gaming, Content Creation und den täglichen Einsatz optimiert habe. Wir schauen uns KDE Plasma an, tauchen in das Fish-Terminal ein und ich erkläre, warum Flatpaks für OBS mein Gamechanger sind.

    Highlights:
    🎮 Gaming via Steam & Lutris
    🛡️ System-Snapshots mit Snapper & Btrfs
    🎬 Workflow mit Kdenlive & GIMP

    🔗 Schaut rein: http://www.youtube.com/watch?v=94OE3BJenQk

    Spielt ihr schon unter Linux oder überlegt ihr noch? Lasst uns drüber tröten! 🐘

    #ArchLinux #LinuxGaming #OpenSource #KDE #Setup #Kdenlive #Linux

  27. Archinstall 4.3 introduces security and partitioning bug fixes, as well as installer enhancements such as optional additional font selection.
    linuxiac.com/archinstall-4-3-r

    #archlinux #archinstall #linux #opensource