Fixing SSH Error: Host Key Verification Failed After VPS Re-installation

Root Cause Diagnosis Re-installing the VPS regenerates the SSH host keys in /etc/ssh/sshhost*_key, so the server now presents a different public key from the one your client stored in ~/.ssh/known_hosts on first connection. The client compares the presented key with the stored entry for that IP or hostname, finds a mismatch, and aborts with WARNING: … Read more

Resolving Linux swap partition not mounting automatically on system reboot

Root Cause Diagnosis Swap is activated at boot by systemd from /etc/fstab entries (via systemd-fstab-generator, which creates dev-disk-by\x2duuid-<UUID>.swap units) or from native .swap units. If the swap area is absent from /etc/fstab, the fstab entry references a stale UUID or device name (/dev/sdXN names change between boots), or the swap signature is missing, the unit … Read more

Docker Compose network external bridge host port already allocated error fix

Root Cause Diagnosis The error Bind for 0.0.0.0:PORT failed: port is already allocated means Docker’s own port-publishing table already has that host port and protocol claimed, either by another running container or by a stale docker-proxy and NAT rule left behind after a daemon crash. Attaching a service to an external: true bridge network does … Read more

Fixing apt-get update Hash Sum Mismatch Error on Ubuntu Archive Mirrors

Root Cause Diagnosis Hash Sum mismatch occurs when the package index file apt downloaded doesn’t match the SHA256/MD5 checksum listed in the mirror’s Release file, meaning the local copy under /var/lib/apt/lists/ is corrupted or stale relative to what the mirror is currently serving. This happens most often because a transparent caching proxy (ISP-level, corporate, or … Read more

How to clear dead Docker overlay2 storage directory safely without breaking daemon

Root Cause Diagnosis /var/lib/docker/overlay2/ accumulates directories named by content-addressable hash for every image layer, stopped container’s writable layer, and build-cache intermediate that Docker has ever created; the daemon does not garbage-collect them automatically. Directories become “dead” (safe to remove) when their owning image, container, or build cache entry no longer exists in Docker’s internal reference … Read more

Linux systemd service status: main process exited, code=killed, status=9/KILL

Root Cause Diagnosis code=killed, status=9/KILL means the service’s main PID was terminated by SIGKILL, which cannot be caught or handled. It was not a clean exit and not an application crash. systemd reports the signal but not the sender, and the sender is one of four things: the kernel OOM killer (global memory exhaustion, or … Read more

Resolving Linux Error: “No Space Left on Device” When Disk Space Shows 50% Free (Inodes Full)

Root Cause Diagnosis Every ext2/ext3/ext4 filesystem allocates a fixed number of inodes at format time, calculated from a bytes-per-inode ratio — each inode tracks metadata (permissions, timestamps, block pointers) for exactly one file or directory, independent of that file’s actual size. When a workload creates enormous numbers of tiny files — session caches, mail queue … Read more

Fix: Docker Exited with Code 137 on Low-Memory ARM Instances

Root Cause Diagnosis Exit code 137 is 128 + 9, indicating the container process received SIGKILL — on low-memory ARM instances this is almost always the Linux kernel OOM killer terminating the container because it exceeded available memory, not a Docker-internal failure. ARM instances (particularly AWS Graviton, Raspberry Pi, and budget ARM VPS tiers) compound this because many … Read more