🩺 トラブルシューティング

Linux 運用の現場で出くわすエラー・障害を「症状から」素早く逆引きできる事典です。Permission denied、No space left on device、SSH 接続不可、CPU 高負荷、メモリ不足、DNS 名前解決など、原因切り分けと解決策を網羅しています。

🔒 Permission denied が出る

権限
中級 ⏱️ 約10分

Permission denied の直し方

chmod/chown/sudo の使い分け、ありがちな事故を避ける手順。

解決策を見る →

🌐 接続・ネットワーク

ネットワーク
中級 ⏱️ 約12分

SSH で接続できないときのチェックリスト

Permission denied (publickey)、Host key verification failed、Connection timeout の対処方法。

解決策を見る →
中級 ⏱️ 約12分

DNS名前解決トラブルシューティング

「名前解決できない」ときの調査手順。dig/host/nslookup の使い分けと /etc/resolv.conf 確認。

解決策を見る →
中級 ⏱️ 約12分

ポート接続トラブルシューティング

「接続できない」ときの調査手順。nc/telnet/curl で接続確認、ss/netstat でポート状態確認。

解決策を見る →
中級 ⏱️ 約12分

ufw / ファイアウォールとSSH接続

「ufw enable したらSSH接続できなくなった」の原因と復旧手順。

解決策を見る →
中級 ⏱️ 約11分

「Connection refused」の切り分け

ホストには届いているのに弾かれる Connection refused を、サービス停止かポート閉塞か、timeout との違いから最短で切り分ける。

解決策を見る →
中級 ⏱️ 約12分

「Connection timed out」の切り分け

無応答で長く待たされる Connection timed out を、応答時間の計測・traceroute・tcpdump・ファイアウォール DROP の順に最短で切り分ける。

解決策を見る →
中級 ⏱️ 約11分

「No route to host」の切り分け

パケットが相手まで届く経路が無い No route to host を、ローカル経路・ARP・ルータ・ファイアウォール REJECT の順に最短で切り分ける。

解決策を見る →
中級 ⏱️ 約11分

「Host key verification failed」の解決

サーバ再構築や IP 再利用で known_hosts の鍵が不一致になったとき、ssh-keygen -R で削除して安全に再接続。

解決策を見る →
中級 ⏱️ 約11分

「Permission denied (publickey)」の解決

鍵が提示されているか、authorized_keys、権限、sshd_config をクライアント/サーバ両側から確認。

解決策を見る →
中級 ⏱️ 約12分

SSHが勝手に切れる - ServerAlive とタイムアウト対策

放置すると SSH が切れる原因を idle タイムアウトと keepalive 不足から切り分け、ServerAlive / ClientAlive で恒久対策する。

解決策を見る →
中級 ⏱️ 約11分

「Too many authentication failures」の解決

ssh-agent の鍵の送りすぎで MaxAuthTries を超える仕組みを理解し、IdentitiesOnly と ~/.ssh/config で確実に直す。

解決策を見る →
中級 ⏱️ 約11分

「certificate verify failed」の解決

curl や Python で出る SSL certificate verify failed を、openssl s_client で原因切り分け。CA証明書・チェーン不備・時刻ズレを直す手順。

解決策を見る →
中級 ⏱️ 約9分

「sudo: unable to resolve host」の解決

sudo 実行時に出る unable to resolve host 警告を、hostname と /etc/hosts の不一致として捉え、127.0.1.1 行を整えて起動遅延ごと解消する。

解決策を見る →
中級 ⏱️ 約10分

「Address already in use」の解決

ポートを占有するプロセスを ss / lsof / fuser で特定し、安全に解放。TIME_WAIT・多重起動の対処も。

解決策を見る →

📊 サーバーが重い

パフォーマンス
中級 ⏱️ 約10分

CPU 使用率 100% の原因調査

top/ps/load average で犯人プロセスを特定する手順。

解決策を見る →
中級 ⏱️ 約12分

メモリ不足の調べ方

free/top/ps の使い方と OOM Killer 対策。

解決策を見る →
中級 ⏱️ 約10分

ディスク I/O が遅い原因調査

iostat/vmstat でディスクボトルネックを特定する手順。

解決策を見る →
中級 ⏱️ 約12分

OOM killer 発動時の対処

メモリ不足でプロセスが突然落ちたとき。dmesg/journalctl でログ確認、oom_score_adj 調整、スワップ追加まで。

解決策を見る →
中級 ⏱️ 約10分

"Too many open files" の対処

FD 上限到達の原因特定。ulimit / limits.conf / sysctl / systemd で恒久設定する手順。

解決策を見る →
中級 ⏱️ 約8分

ゾンビプロセスの正体と対処

ps で消えないゾンビプロセスの発生原因と wait() / SIGCHLD による親プロセス経由の対処法。

解決策を見る →
中級 ⏱️ 約11分

load average が高いときの診断

load average が高い原因を CPU 待ちか I/O 待ちか切り分ける手順。uptime/top/vmstat/iostat の読み方を解説。

解決策を見る →
中級 ⏱️ 約12分

「Cannot allocate memory」の対処

空きメモリがあるのに出る Cannot allocate memory を overcommit 会計・ulimit・max_map_count の観点で切り分け、恒久対処する手順。

解決策を見る →
中級 ⏱️ 約11分

「fork: Resource temporarily unavailable」の対処

fork が EAGAIN で失敗する原因を、ユーザー別 ulimit・システムの pid_max・cgroup の TasksMax の順に切り分けて恒久的に直す。

解決策を見る →
中級 ⏱️ 約11分

swap スラッシングの診断と対処

サーバが急に遅くなる swap スラッシングを vmstat の si/so で見抜き、原因プロセスを特定して swappiness や cgroup で恒久対処する。

解決策を見る →

💾 ディスク容量

ディスク
中級 ⏱️ 約10分

No space left on device の対処法

df/du でディスク容量と肥大ファイルを特定。

解決策を見る →
中級 ⏱️ 約10分

Docker ディスク使用量の特定

docker system df でイメージ/コンテナ/ボリュームを切り分け。

解決策を見る →
中級 ⏱️ 約10分

find で安全にファイル削除する方法

print0 / xargs -0 でファイル名安全に削除する手順。

解決策を見る →
中級 ⏱️ 約10分

inode 枯渇の対処

df -h は空きあるのに No space left on device。df -i で原因を特定し復旧する手順。

解決策を見る →
中級 ⏱️ 約8分

"Argument list too long" の対処

rm * が失敗する原因と find -delete / find + xargs による正しい解決方法。

解決策を見る →
中級 ⏱️ 約9分

df は空きありなのに容量不足

削除済みファイルハンドルと inode 枯渇を lsof / df -i で切り分け。

解決策を見る →

📜 Web サーバ / ログ

ログ
中級 ⏱️ 約12分

Nginx/Apache のログの見方

access.log/error.log の場所と障害原因の読み方。

解決策を見る →
中級 ⏱️ 約10分

サーバ時刻ズレの対処

timedatectl で NTP 同期確認、chronyc tracking でオフセット診断、makestep で強制同期。

解決策を見る →

💽 ファイルシステム・デバイス

ファイルシステム
中級 ⏱️ 約11分

「Read-only file system」の対処

突然の read-only。remount で戻すか、fsck で直すかを最短で判断。

解決策を見る →
中級 ⏱️ 約11分

「Input/output error」の対処 - ディスク・デバイス障害の兆候

ファイル操作で EIO。dmesg でカーネルログを見て、ディスク不良か FS 破損かデバイス切断かを切り分ける。

解決策を見る →
中級 ⏱️ 約11分

ファイルシステム破損の修復 - fsck の安全な実行手順

ext4 の破損を fsck で安全に直す。マウント中実行の禁止、root FS の検査経路、-n/-y/-f の使い分け、XFS の違いまで。

解決策を見る →
中級 ⏱️ 約11分

「device is busy」でアンマウントできない時の対処

umount が busy で失敗。誰が掴んでいるかを fuser/lsof で特定し、安全に外す。

解決策を見る →
中級 ⏱️ 約10分

「No such file or directory」なのにファイルがある

ls で見えるのに No such file or directory。不可視文字・CRLF・壊れたリンク・動的リンカ欠落を順に切り分ける。

解決策を見る →
中級 ⏱️ 約11分

「Stale file handle」の対処

NFS の Stale file handle を再マウントで復旧し、fsid 固定で再発を止める。

解決策を見る →
中級 ⏱️ 約9分

「Text file busy」の対処 - 実行中バイナリの上書き

実行中のバイナリは cp で上書きできない。原因を lsof で特定し、rename で安全に差し替える。

解決策を見る →

📦 パッケージ管理

パッケージ
中級 ⏱️ 約10分

「Could not get lock」の解決

apt が「Could not get lock」で止まるとき、ロックを握るプロセスを特定して安全に解放し、中断した dpkg を復旧するまでの手順を最短でたどる。

解決策を見る →
中級 ⏱️ 約10分

壊れた依存関係の修復(held / unmet dependencies)

apt が更新を保留したり unmet dependencies で止まるとき、held packages の正体を見極め、依存関係を壊さずに修復するまでの手順を整理する。

解決策を見る →
中級 ⏱️ 約11分

リポジトリのGPG鍵エラー(NO_PUBKEY / 期限切れ署名)

apt update で出る GPG error の正体を NO_PUBKEY と EXPKEYSIG で見分け、公開鍵を keyring に取得して signed-by で正しく紐付け、署名検証を安全に復旧する。

解決策を見る →

🐚 シェル・スクリプト実行

シェル
中級 ⏱️ 約10分

自作スクリプトが「command not found」になる

自作スクリプトを実行して command not found になる原因を PATH と実行権限から切り分け。./ 実行・chmod +x・PATH 追加・hash -r まで順に解決する。

解決策を見る →
中級 ⏱️ 約9分

「bad interpreter」エラーの直し方

スクリプトが bad interpreter で動かない。CRLF 改行と shebang のパス誤りを file/cat -A で切り分け、dos2unix/sed で直す。

解決策を見る →
中級 ⏱️ 約10分

「syntax error near unexpected token」の読み解き方

bash の syntax error near unexpected token を読み解く。token が指す位置の意味を理解し、fi/then/done・(・改行・end of file 別に原因を切り分けて直す。

解決策を見る →

⚙️ システム・サービス・起動

システム
中級 ⏱️ 約12分

systemd サービスが起動しない

systemctl の Failed to start を最短で切り分け。status・journalctl・exit code から ExecStart・権限・依存・start-limit のハマりどころを順に潰す診断手順。

解決策を見る →
中級 ⏱️ 約11分

crontabが動かない時のチェックリスト

cron が動かない原因を最短で切り分け。デーモン稼働・ログ・PATH・環境変数・時刻書式・パーミッションを順に潰すチェックリスト。

解決策を見る →
中級 ⏱️ 約12分

起動できない時の初動 - kernel panic と緊急モード

kernel panic・緊急モードで Linux が起動しない時の初動。GRUB・initramfs・systemd emergency を段階で切り分け、fstab 修復・旧カーネル起動・fsck で復旧する。

解決策を見る →
中級 ⏱️ 約10分

「cannot set LC_ALL」ロケール警告の解決

ロケール未生成で出る「cannot set LC_ALL」「setlocale」警告を切り分け、locale -a で確認して locale-gen で生成、SSH 転送も止めて恒久解決する手順。

解決策を見る →
中級 ⏱️ 約10分

時刻ずれによる証明書・ビルドエラー

clock skew で出る「Clock skew detected」ビルド警告と「certificate is not yet valid」を切り分け、時計のずれを date/openssl で確認して正す手順。

解決策を見る →

🐧 実践練習で技術を身につけよう!

理論を学んだら、実際にコマンドを使って練習してみましょう。Penguin Gym Linux で体験的に学習できます。