第4章:よくあるエラーと対処法

4.1 初心者が必ず遭遇するエラー TOP 10

Linux エラーメッセージ診断チャート 1. Permission denied 権限がありません 解決: sudo を使う または chmod で権限変更 2. Command not found コマンドが見つかりません 解決: apt/yum でインストール またはPATHを確認 3. No such file or directory ファイルが存在しません 解決: パスを確認 pwd と ls で現在地確認 4. Is a directory ディレクトリです(ファイルではない) 解決: cd でディレクトリに移動 または正しいファイル名を指定 5. Device or resource busy 使用中のため操作できません 解決: lsof でプロセス確認 必要なら kill で終了 6. No space left on device ディスク容量不足 解決: df -h で容量確認 不要ファイルを削除 7. Connection refused 接続が拒否されました 解決: サービスが起動しているか確認 systemctl status でチェック 8. Syntax error 構文エラー 解決: スペルミスや記号を確認 特にスペースや引用符に注意

4.2 エラー別対処法詳細

🚫 Permission denied

bash: /etc/hosts: Permission denied

原因:

ファイルやディレクトリへのアクセス権限がない

解決方法:

$ sudo nano /etc/hosts # 管理者権限で実行
$ ls -l file.txt # 権限を確認
$ chmod 644 file.txt # 権限を変更
$ sudo chown $USER file.txt # 所有者を変更

❓ Command not found

git: command not found

原因:

コマンドがインストールされていない、またはPATHが通っていない

解決方法:

$ sudo apt install git # Ubuntu/Debian
$ sudo yum install git # CentOS/RHEL
$ which git # インストール確認
$ echo $PATH # PATH確認
$ export PATH=$PATH:/new/path # PATH追加

📁 No such file or directory

cat: test.txt: No such file or directory

原因:

指定したファイルやディレクトリが存在しない

解決方法:

$ pwd # 現在のディレクトリを確認
$ ls # ファイル一覧を確認
$ ls -la # 隠しファイルも含めて確認
$ find . -name "test.txt" # ファイルを検索

💾 No space left on device

cp: error writing './large.file': No space left on device

原因:

ディスクの空き容量が不足

解決方法:

$ df -h # ディスク使用状況確認
$ du -sh * # 各ディレクトリのサイズ確認
$ sudo apt autoremove # 不要パッケージ削除
$ sudo apt clean # キャッシュクリア
$ find /tmp -type f -delete # /tmp クリーンアップ

🔒 Device or resource busy

umount: /mnt: target is busy

原因:

ファイルやディレクトリが使用中

解決方法:

$ lsof /mnt # 使用中のプロセスを確認
$ fuser -v /mnt # 使用中のプロセスを表示
$ cd / # ディレクトリから移動
$ sudo umount -l /mnt # 強制アンマウント

🌐 Connection refused

curl: (7) Failed to connect to localhost port 80: Connection refused

原因:

サービスが起動していない、またはポートが閉じている

解決方法:

$ sudo systemctl status apache2 # サービス状態確認
$ sudo systemctl start apache2 # サービス起動
$ sudo netstat -tlnp # ポート確認
$ sudo ufw status # ファイアウォール確認
$ sudo ufw allow 80 # ポート開放

4.3 エラーメッセージの読み方

エラーメッセージの構造

bash: /usr/bin/foo: No such file or directory

👆 この例を分解すると:

  • bash: エラーを出したプログラム
  • /usr/bin/foo: 問題のあるファイルやコマンド
  • No such file or directory: エラーの内容

デバッグのコツ

  1. エラーメッセージを最後まで読む - 重要な情報は最後にあることが多い
  2. ファイル名やパスを確認 - タイポが原因の場合が多い
  3. 権限を確認 - ls -l で確認
  4. ログファイルを見る - /var/log/ 以下のログを確認
  5. エラーメッセージで検索 - Google検索で解決策が見つかることが多い

4.4 トラブルシューティングコマンド

システム情報確認

$ uname -a # システム情報
$ cat /etc/os-release # OS情報
$ free -h # メモリ使用状況
$ df -h # ディスク使用状況
$ top # プロセス監視

ログ確認

$ sudo tail -f /var/log/syslog # システムログ
$ sudo journalctl -xe # systemdログ
$ dmesg # カーネルメッセージ
$ last # ログイン履歴

ネットワーク診断

$ ping google.com # 接続確認
$ ip addr # IPアドレス確認
$ netstat -tlnp # ポート確認
$ ss -tlnp # ソケット確認
$ traceroute google.com # 経路確認

4.5 よくある質問と回答

Q: sudoパスワードを忘れました

A: リカバリーモードで起動し、rootでログインしてパスワードをリセット

$ passwd username

Q: ファイルを誤って削除しました

A: Linuxでは通常、削除したファイルの復元は困難。定期的なバックアップが重要

Q: システムが重い/遅い

A: topコマンドでCPU/メモリ使用率の高いプロセスを確認

$ top # qで終了

Q: パッケージの依存関係エラー

A: パッケージマネージャーの修復コマンドを実行

$ sudo apt --fix-broken install # Ubuntu/Debian
$ sudo yum-complete-transaction # CentOS/RHEL