Linuxのハードドライブがほぼいっぱいになったときにディスクスペースを管理する方法

Linuxでは、ディスク容量不足に予期せず遭遇し、フラストレーションの原因となることがあります。システムがスムーズに動作していたのに、次の瞬間にはアップデートに失敗したり、パフォーマンスが低下したり、タスクがまったく実行されなくなったりすることもあります。特に長期間メンテナンスされていないシステムでは、このような状況はよく発生しますが、改善が可能です。幸いなことに、Linuxには、システムの整合性を損なうことなく、問題を特定し、段階的に解決するための様々なツールと方法が用意されています。

Linux システムにおけるディスク容量不足の影響

Linuxでは、ディスク容量不足は様々な問題を引き起こす可能性があります。システムを効率的に動作させるには、一時ファイル、ログ、メモリスワップといった重要な領域を確保する必要があります。ディスク容量不足の顕著な影響として、システムパフォーマンスの著しい低下が挙げられます。アプリケーションの起動が遅くなったり、デスクトップの表示が遅れたり、日常的な操作でさえ中断される可能性があります。

さらに、ソフトウェアアプリケーションは必要なファイルを生成できないために予期せず終了することがあります。特に、APTやDNFなどのパッケージマネージャは、アップデートのダウンロードとインストールに十分なディスク容量を必要とします。十分なディスク容量がないと、これらのプロセスが途中で停止し、システムが不安定になる可能性があります。

これらの例は、ディスク容量不足によって引き起こされる悪影響のほんの一部に過ぎません。Linuxシステムにおけるディスク容量の問題を解決するための具体的な手順を見ていきましょう。

ディスク使用量の分析

最初のステップは、ディスク容量がどこで使用されているかを分析することです。システムに組み込まれているグラフィカルツールを活用できます。例えば、GNOMEユーザーはディスク使用量アナライザー(Baobab)を使用して、ディスク使用量を視覚的に分析できます。また、KDEユーザーはFilelightを使用して、同様の機能をインタラクティブなインターフェースで利用できます。

Linux ディスク使用量アナライザー GUI

ターミナルを使いたい場合や、サーバーを管理している場合は、コマンドラインツールの方がより高度な制御が可能です。以下のコマンドを実行してください。

df -h

人間が読める形式でディスク容量を表示する

このコマンドは、マウントされた各パーティションの使用済み領域と使用可能領域をユーザーフレンドリーな形式で表示します。

dfはどのディスクがいっぱいになっているかを特定しますが、何がスペースを消費しているかは明らかにしません。そのため、duこのコマンドが最適です。影響を受けているディスクを特定したら、duどのディレクトリが過剰なスペースを消費しているかを調べます。例えば、特定のディレクトリのサイズを確認するには、次のコマンドを使用します。

du -sh /path

すべてのトップレベルディレクトリの簡潔な概要を取得するには、次のコマンドを実行します。

sudo du -sh /*

インタラクティブなターミナルエクスペリエンスをご希望の場合は、の使用をご検討くださいncdu。このディスク使用量アナライザーは、サイズ別にディレクトリを探索するための明確で操作しやすいインターフェースを提供し、大きなファイルやディレクトリを素早く識別する作業を容易にします。

ncdu メインインタラクティブインターフェース

キャッシュと一時ファイルの消去

Linuxシステムには、時間の経過とともに一時ファイルやキャッシュデータが蓄積され、その多くは不要になります。パッケージマネージャーが保存するインストールファイルからWebブラウザが構築するキャッシュまで、これらのファイルは貴重なディスク容量をあっという間に占有してしまいます。これらのファイルを定期的に削除することは、システムの機能を損なうことなくディスク容量を回復する簡単な方法です。

Debian または Ubuntu ベースのシステムの場合、次のコマンドを実行して不要なファイルを消去します。

sudo apt clean

あるいは、古くなったパッケージだけを対象とするより慎重な削除の場合は、次のコマンドを実行します。

sudo apt autoclean

Ubuntuで使われていない古いパッケージを削除する

Fedora または Red Hat ユーザーは、次のコマンドでパッケージ キャッシュを消去できます。

sudo dnf clean all

Arch Linux システムの場合、対応するコマンドは次のとおりです。

sudo pacman -Scc

さらに、BleachBit などの専用のクリーンアップ ユーティリティは、パッケージ キャッシュ、一時ファイル、ブラウザー キャッシュを効果的にクリーンアップするためのユーザーフレンドリーなグラフィカル インターフェイスを提供します。

Linuxでファイルを安全に削除する - BleachBitストアページ

実行中のプログラムの一時ファイルを保存する/tmpディレクトリを忘れずに削除してください。通常、このディレクトリは再起動時に消去されますが、システムを再起動するのが最も簡単な方法です。再起動が困難な場合は、以下のコマンドで一時ファイルを手動で削除することを検討してください。

sudo rm -rf /tmp/*

削除するファイルを現在重要なプロセスが使用していないことを確認してください。

ログファイルの管理

ログファイルはシステム診断において重要な役割を果たしますが、時間の経過とともに蓄積され、監視されていない場合は膨大なディスク容量を消費する可能性があります。systemd を採用した最近の Linux ディストリビューションでは、ジャーナルにログが保存され、無期限に保存される可能性があります。ログファイルのサイズは、以下の方法で確認できます。

journalctl --disk-usage

サイズを効果的に管理するには、指定した量のログだけを保持することでディスク使用量を制限できます。

sudo journalctl --vacuum-size=500M

このコマンドを使用すると、トラブルシューティングに必要なログを保持しつつ、不要になった可能性のある古いエントリを削除できます。さらに、従来のログファイルは「/var/log/」ディレクトリに保存されます。syslogやkern.logなどのファイルは、問題が発生すると非常に大きくなる可能性があります。これらのファイルを削除する代わりに、ファイル自体は保存したまま内容を切り捨てることで、サービスの機能を維持することができます。

sudo truncate -s 0 /var/log/syslog

Baobab、Filelight、BleachBit などのいくつかの GUI ツールは、大きなログ ファイルの識別と管理を簡素化します。

使用されていないソフトウェアの削除

時間が経つにつれて、使われていないアプリケーションや依存関係が残ってしまい、貴重なディスク容量を占有してしまうことがあります。これらのパッケージをアンインストールすると、ディスク容量を解放できるだけでなく、システムのセキュリティも強化されます。UbuntuなどのGNOMEベースのシステムでは、ユーザーはApp Centerにアクセスし、 「管理」タブを選択してアプリケーションを確認できます。そこから不要になったアプリケーションを選択し、「削除」をクリックするだけです。KDEユーザーは、Discoverアプリで同様の結果を得ることができます。

Ubuntu アプリセンター

ターミナルの方が好みであれば、次のコマンドで不要なパッケージとその設定を削除できます。

sudo apt autoremove --purge

不要なパッケージを削除し、残った設定ファイルを消去します

Fedora ユーザーは以下を実行する必要があります:

sudo dnf autoremove

Arch Linux ユーザーは、以下の方法で孤立したパッケージをクリーンアップできます。

sudo pacman -Rns $(pacman -Qtdq)

このクリーンアップ プロセスは、システムの編成と効率を維持するのに役立ちます。

SnapsやFlatpakなどのコンテナ化されたアプリケーションは、従来のパッケージに比べてディスク容量を多く占める傾向があるため、確認することも重要です。削除に適したアプリケーションを特定するには、snap listまたはを使用してください。flatpak list

大きなファイルの識別と削除

古くなったISOイメージ、バックアップアーカイブ、データベースダンプ、仮想マシンファイルなどのファイルは、気づかないうちにディスク容量を大量に消費してしまう可能性があります。Baobabのようなツールを使えば、大容量のファイルやディレクトリを容易に特定でき、削除または移動すべきファイルを迅速に判断できます。

ターミナルを好むユーザー向けには、、、などのコマンドをls使用してfinddu大きな未使用ファイルを特定し、サイズとともにリスト表示できます。特定できたら、これらのファイルを削除したり、別の場所や外部ストレージに転送したりできます。

古いカーネルバージョンの削除

Linuxは、システムアップデートのたびに、新しいカーネルで問題が発生した場合に備えて、フォールバックオプションとして以前のカーネルバージョンを保持します。ただし、通常、アクティブなカーネルと最後に正常に動作していたカーネル以外を保持する必要は特にありません。古いカーネルはディスク容量を大量に消費する可能性がありますが、多くの場合、その存在は認識されません。

通常、sudo apt autoremove最近のUbuntuシステムでは、必要に応じて古いカーネルを自動的に削除します。現在のカーネルバージョンを確認するには、次のコマンドを使用します。

uname -r

インストールされているすべてのカーネルの概要を取得するには、次のコマンドを実行します。

dpkg --list | grep linux-image

Ubuntuにインストールされているすべてのカーネルを確認する

特定のカーネル バージョンを手動で削除するには、次のコマンドを使用します。

sudo apt remove linux-image-5.4.0-42-generic

使用中のカーネルを削除しないでください。システムが起動できなくなる可能性があります。Stacerなどのビジュアルツールは、カーネルバージョンを効果的に管理するためのユーザーフレンドリーなインターフェースを提供します。

外部ストレージへのデータのオフロード

キャッシュ、ログ、パッケージを完全に消去しても容量制限が解消されない場合は、データ要件がドライブの空き容量を超えている可能性があります。大きなファイルを外付けストレージまたはセカンダリストレージに転送することが賢明な解決策となる場合があります。この方法により、プライマリパーティションを乱雑にすることなく、外付けドライブを簡単にマウントしてアクセスできるようになります。

rsyncなどのツールを利用することで、権限と所有権を維持しながら安全なデータ転送が可能になります。また、Nextcloudなどのサービスを利用すれば、独自のクラウドストレージをホストすることで、データの管理を維持できます。

結論

クリーンアップ後も、将来のディスク容量不足を防ぐために定期的な監視を継続することが不可欠です。徐々に増加するディスク容量を早期に検知することで、ストレージ容量が急激に低下した際に予期せぬ問題を回避できます。継続的な管理を支援するために、パネルにディスク使用量ウィジェットを追加し、使用状況の指標に簡単にアクセスできるようにすることを検討してください。これらの側面を継続的に監視することで、システムの安定性とパフォーマンスを維持できます。

出典と画像