boot-failure-recoveryGet a Linux machine that will not boot, or boots into emergency mode, back: establish a way in that survives the failure (console, cloud rescue or volume detach), read the previous boot's journal (journalctl -b -1, enabling persistence if volatile), triage by stage (bootloader, initramfs, root mount
disk-failure-replacementHandle a failing or failed disk in mdadm, ZFS or LVM mirrors. Use for \"mdadm array is degraded\", \"SMART says reallocated sectors\", \"zpool shows DEGRADED\" or \"filesystem remounted read-only after I/O errors\". Confirm the failure from the kernel and the drive, not one tool: dmesg I/O errors, s
disk-full-triageFind and free space on a full Linux filesystem: run df -h and df -i first because \"No space left on device\" covers blocks, inodes, a full thin pool and quotas, explain df and du disagreeing (deleted-but-open files with lsof +L1, data hidden under a mount point), use du -x so nothing crosses filesy
dns-resolution-debuggingDebug name resolution on a Linux client: \"dig works but the app cannot resolve\", \"resolv.conf keeps getting overwritten\", \"split DNS for the VPN\", \"intermittent SERVFAIL\", \"Alpine resolves differently\". Test through the application's path with getent hosts (NSS order, mDNS, sssd), not dig.
firewall-rule-tracingFind where a Linux firewall drops traffic: \"connection times out but the port is open\", \"nftables rule not matching\", \"Docker bypasses my iptables rules\", \"ufw and firewalld both installed\". Identify the framework really in force first (nft list ruleset is the truth; iptables may be the nft
high-load-triageFind the one saturated resource on a slow Linux host: \"load average is 40 but CPU is idle\", \"server is sluggish and I do not know why\", \"is it CPU, memory or disk\". Run a fixed 60-second sequence and write down each reading: uptime, dmesg -T, vmstat 1, mpstat -P ALL 1, pidstat 1, iostat -xz 1,
kernel-crash-forensicsMake an unexplained reboot, kernel panic, soft lockup or hung task diagnosable. Use for \"server rebooted by itself\", \"BUG: soft lockup\", \"hung_task blocked for more than 120 seconds\" or \"how do I get a vmcore\". Separate crash from power loss, watchdog reset or admin action using last-boot ev
kernel-update-safetyUpdate kernels and reboot fleets safely. Use for \"patching kernels on production tomorrow\", \"DKMS module failed to build after upgrade\", \"how do I roll back a kernel\" or \"needs-restarting says reboot required\". Before rebooting confirm console access, keep a known-good kernel, check dkms sta
linux-lockout-recoveryRegain access to a Linux server you are locked out of: \"broke sudoers and cannot get root\", \"changed sshd config and now cannot log in\", \"lost the only SSH key\", \"firewall rule cut my own connection\". Take the least destructive door in order: a session still open (keep it), serial or hypervi
mtu-blackhole-huntFind a path MTU problem: \"small requests work but large ones hang\", \"connection stalls after the TLS ClientHello\", \"only breaks over the VPN or in the overlay network\", \"ssh logs in but hangs on ls\". The signature is a completed handshake and then large packets vanishing because ICMP fragmen
oom-kill-forensicsWork out why the Linux kernel OOM killer fired and what to change: read the kernel's own report, not top (journalctl -k gives constraint= such as CONSTRAINT_MEMCG for a cgroup limit versus system-wide exhaustion, the victim's oom_score_adj and the task table with RSS), classify cgroup limit versus h
packet-capture-triageRead a network capture you are authorised to examine — a pcap from tcpdump, tshark or Wireshark, or a cloud flow log — to answer why a connection failed or was slow. Filter to the one conversation first, then read the TCP handshake, retransmissions, resets, window and MSS, TLS alerts and DNS timing,
permission-denied-triageExplain \"Permission denied\" when the mode bits look right by walking the layers in order and stopping at the first that denies: namei -l on the whole path (every parent needs x), the real uid, gid and supplementary groups of the running PID, ACLs, file attributes (immutable, append-only), mount op
private-ca-trust-distributionGet an internal or corporate CA trusted in every runtime. Use for \"x509: certificate signed by unknown authority\", \"Python requests fails behind the proxy\", \"Java PKIX path building failed\" or \"npm cannot verify the registry\". Inventory the trust stores, since each has its own: OS bundle (up
resource-limit-exhaustionFix \"Too many open files\", \"fork: retry: Resource temporarily unavailable\", \"inotify watch limit reached\" and \"cannot create thread\" errors. Read the limits of the running process in /proc/PID/limits, never your shell's ulimit, because systemd units ignore limits.conf and PAM. Separate the l
scheduled-job-debuggingFind out why a cron job or systemd timer did not run, ran twice or behaves differently than by hand. Prove it was scheduled and started before touching the script: grep CRON in the journal, systemctl list-timers, systemd-analyze calendar to validate the expression. Then the causes in order: cron's m
ssh-access-debuggingWork out why an SSH login fails or is slow: \"Permission denied (publickey)\", \"Too many authentication failures\", \"connection reset during key exchange\", \"host key changed warning\", \"ssh hangs for 30 seconds before the prompt\". Run the client with ssh -vvv and read which keys were offered,
systemd-unit-failureDiagnose a systemd service that fails, flaps or never starts: read Result= and the exit status before any log (203/EXEC is a bad ExecStart path or permission, 217/USER a missing user, 226/NAMESPACE a sandbox directive, the 200-series are setup failures before your code ran), reproduce under the unit
time-sync-repairFix clock drift and time-sync failures. Use for \"certificate is not yet valid\", \"Kerberos clock skew too great\", \"chrony not syncing\" or \"VM clock jumped after resume\". Measure first with chronyc tracking (offset, frequency, stratum), chronyc sources -v and sourcestats, or timedatectl timesy
tls-handshake-debuggingDiagnose a failing TLS connection: \"SSL handshake failed\", \"tlsv1 alert\", \"unable to get local issuer certificate\", \"works in the browser but not curl\", \"certificate required\" on mTLS. Establish TCP reachability, then run openssl s_client -connect host:443 -servername host -showcerts, beca
volume-resizeGrow, or carefully shrink, a disk, partition, LVM volume or filesystem: \"extend /var after the EBS resize\", \"lvextend but df shows the old size\", \"can I shrink this xfs\". The ordering is the skill: capture lsblk and df first, confirm a snapshot or backup, then grow bottom-up (rescan the device