第4章:よくあるエラーと対処法
4.1 初心者が必ず遭遇するエラー TOP 10
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 # 所有者を変更
$ 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追加
$ 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" # ファイルを検索
$ 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 クリーンアップ
$ 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 # 強制アンマウント
$ 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 # ポート開放
$ 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: エラーの内容
デバッグのコツ
- エラーメッセージを最後まで読む - 重要な情報は最後にあることが多い
- ファイル名やパスを確認 - タイポが原因の場合が多い
- 権限を確認 -
ls -l
で確認 - ログファイルを見る -
/var/log/
以下のログを確認 - エラーメッセージで検索 - Google検索で解決策が見つかることが多い
4.4 トラブルシューティングコマンド
システム情報確認
$ uname -a # システム情報
$ cat /etc/os-release # OS情報
$ free -h # メモリ使用状況
$ df -h # ディスク使用状況
$ top # プロセス監視
$ cat /etc/os-release # OS情報
$ free -h # メモリ使用状況
$ df -h # ディスク使用状況
$ top # プロセス監視
ログ確認
$ sudo tail -f /var/log/syslog # システムログ
$ sudo journalctl -xe # systemdログ
$ dmesg # カーネルメッセージ
$ last # ログイン履歴
$ sudo journalctl -xe # systemdログ
$ dmesg # カーネルメッセージ
$ last # ログイン履歴
ネットワーク診断
$ ping google.com # 接続確認
$ ip addr # IPアドレス確認
$ netstat -tlnp # ポート確認
$ ss -tlnp # ソケット確認
$ traceroute 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
$ sudo yum-complete-transaction # CentOS/RHEL