web-dev-qa-db-ja.com

ディスク容量の使用を最小限に抑える方法

私のマシンの1つは2GB EeePC Surfです。これは、リソースが非常に限られているきちんとしたネットブックです。そのため、現在は制限されているため、22MBの空き領域が残っています。

その上で、私はArch LinuxOpenbox DEとともに実行し、それがモバイルPCとして機能するために必要なアプリケーションのホストを実行しています。

不要な使用済みスペースを打ち消すには、どのような方法がありますか?

30
Stefan

ここにあなたが始めることができるいくつかのポイントがあります:

  • システムにインストールされているパッケージをpacman -Qで確認し、不要なパッケージを削除してください。 -tスイッチを追加するとよいでしょう。

    現在インストールされているパッケージで必要とされていないパッケージへの出力を制限またはフィルターします。

  • pacman -Scでpacmanのパッケージキャッシュを消去します

  • 未使用のパッケージの依存関係も削除するには、常にpacman -Rsを使用してください。

  • ディスクの大部分を使用する「大きなファイル」とフォルダを見つけるには、duxdiskusageを追加するといいでしょう。この小さなツールを使用すると、ファイルシステムをすばやく参照し、フォルダのディスク使用量をグラフィカルに表示できます。

19
echox

警告:これらのアイデアは、Linux全体とArch Linuxの両方に精通しているユーザーのみを対象としています。

危険な地域に足を踏み入れたい場合は、基本のArchのインストールを500MB未満にスリム化できます。これはいくつかの非常に危険なことをする必要があります:

  1. 不要なロケールをすべて削除します(すでにカバーされています)
  2. システムの実行に不要なファームウェアファイルを削除する(/usr/lib/firmwareから)
  3. システムの実行に不要なカーネルモジュールを削除する(/usr/lib/modules/...から)
  4. .a内の/usr/libファイルを削除する(システムを使用してソフトウェアをコンパイルしたことがない場合のみ。注:これにはmakepkgの使用が含まれます)
  5. /usr/include内のすべてを削除する(システムを使用してソフトウェアをコンパイルしたことがない場合のみ)
  6. /usr/share/docおよび/usr/share/infoから不要なドキュメントを削除する
  7. (非常に悪いIDEAサーバーの場合を除いて)/usr/share/manからmanページを削除する
  8. (これも悪い考えです)/usr/share/terminfoから不要な端末記述子を削除し、/usr/share/zoneinfoから不要なタイムゾーンファイルを削除する
  9. (危険)実行可能バイナリ(strip *および/usr/bin)を含むすべてのフォルダで/usr/sbinを実行
  10. (極端な状況では)より大きなバイナリを圧縮するためにupxなどのツールを使用する(Sambaバイナリは静的にコンパイルされることが多いため、Sambaバイナリは非常に大きくなる傾向があるため、これに適しています。)また、upxは、実行中に非圧縮バイナリ全体がRAM)に収まる必要があることを意味します。したがって、RAMの少ないシステムでは飽きてしまいます。

これを行う前に、システムの完全バックアップを作成してください。 Linuxはありがたいことにこれを比較的簡単にします。外部ボリューム(USBドライブなど)を接続してマウントできる場合、cd / && tar -cf /mnt/usb/mySystem.tar /のような方法でシステム全体をバックアップできます。

繰り返しますが、Linuxの内部構造に関する詳細な知識、経験、および理解がない限り、上記(特に7から9)を実行することはお勧めしません。 Arch Linux。私がリストしたほぼすべてのファイルを操作すると、ひどい方法でシステムに損傷を与える可能性があるため、警告されています。システムが特定のファームウェアファイル、モジュールなどを必要とするかどうかわからない場合は、それを変更する前に調査してください。 (システムで必要なカーネルモジュールを削除すると、システムが起動できなくなったり、キーボード/ネットワークカード/サウンド/ディスプレイなどがサポートされなくなったり、その他の説明できない動作が発生する可能性があることに注意してください。)

また、パッケージをアップグレードすると、上記で削除したファイルの多くを復元できることに注意してください。この方法を選択する場合は、最終的に不要なファイルの削除をスクリプト化し、主要なパッケージをアップグレードするたびにスクリプトを実行することをお勧めします。 (例:カーネルをアップグレードすると、すべてのカーネルモジュールが戻されます。また、依存関係を介してアップグレードすると、linux-firmwareパッケージが/usr/lib/firmwareのすべてのファームウェアを戻します。)

最後に、ジャーナルファイルは時間とともに大きくなるため、/var/logに注意してください。過去のジャーナルを削除できますが、ジャーナルフォルダーでrm *\@*.journalのようなことを行うことにより、現在のジャーナルを保持できます。

これらの手法を使用して、NASサーバーから512MBのDisk-on-Moduleデバイスを数か月間正常に実行しましたが、まだ気の弱い人には向いていません。( LinuxFromScratchは、128MBのストレージで同様のプロジェクトを構築しますが、それは別の話です...)


編集/追加:

いくつかの追加のスペースを取得するために使用できるメソッドがいくつかあります。

  • libgoを取り除く。 libgoライブラリはgcc-libsに付属しており、Go言語で記述されたアプリケーションでのみ使用されるAFAIKです。そのライブラリーを必要とする私が使用するアプリケーションは考えられません。私のシステムでは、サイズは40MBです。スリムにしようとしているとき、それは多くのスペースです。 「ミニ」インストールからそれを削除しましたが、何をしても悪影響はありません(これもまた、YMMVです!)

  • 縮小libicudata.so。私のシステムでは27MBです。これは基本的に、ライブラリオブジェクトに圧縮された大量のUnicode /ロケールデータです。このファイルの小さいバージョンを作成できるツールがオンラインにありますが、現在のバージョンでは更新されていません(古いリリースのファイルを新しいリリースで使用することはできません)。手動でこれを試したことはありませんが、方法がわかれば、このファイルを約20〜22 MB削減できます。

  • Pythonを使用している場合、testライブラリをpython2:rm -r /usr/lib/python2.7/testから削除すると37MB程度、python3:rm -r /usr/lib/python3.6/testから削除すると約66MB節約できます。

  • Pythonの場合も、.pyoファイルと.pyファイルを取り除くことができます。 .pyoファイルは「最適化された」ファイルですが、Pythonは実際にはそれらを使用しません。.pyファイルは標準ライブラリの未加工のソースコードです。唯一のファイル= Python実行時に通常読み取りますPythonコードは.pyc(pythonコンパイル済み)ファイルです。cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;およびcd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;

  • 不要なロケールデータを削除します。これを自動化するlocalepurgeというAURパッケージがあります。それ以外の場合は、/usr/share/localeで遊ぶ必要があります。独自のロケールとlocale.aliasを保持する必要があります。私にとってここ米国では、en_USlocale.aliasを維持し、その他すべてを削除すると、約80MB削られます。

さて、私が見たいのは、システムを分析し、必要なカーネルモジュールと必要なファームウェアファイルを決定するツールです。これは、これらのフォルダを「安全に」削除するための良い方法です...

または、誰かがuClibcまたはdiet-libcまたは類似のものを使用するArchの「ディストリビューション」を組み立てる必要があるかもしれません。それは楽しい夏のプロジェクトかもしれません。 :-)

11
fdmillion

TLDR

journalctl --vacuum-size=100M #remove all logs, only retain 100mb
pacman -Scc #remove all package installation files (obsolete and current)
pacman -S bleachbit
bleachbit -c system.*

まず、システムの大きな点は

du -d1 -h / 2>/dev/null | sort -h

これは、/で最大のディレクトリのソートされたリストを示しています。2つのレベルを下げることができます。

du -d2 -h / 2>/dev/null | sort -h

私の結果は:

0       /proc
0       /sys
0       /tmp
12K     /dev
12K     /srv
16K     /lost+found
632K    /run
4.3M    /boot
13M     /opt
15M     /etc
75M     /root
93M     /home
2.4G    /var
3.2G    /usr
221G    /mnt
227G    /

/mntは無視します(外付けドライブであるため)。2つのディレクトリvarusrが頭に浮かびます。中身を見てみましょう:

du -d1 -h /var /usr 2>/dev/null | sort -h

次に、少し深く:

du -d1 -h /var/log /usr/share /usr/lib /var/cache 2>/dev/null | sort -h

ログから始めましょう

/var/logには717MBあります。

私はランダムにディレクトリを削除するのが好きではないので、きれいな方法でそれをやってみましょう:

$ journalctl --disk-usage
Archived and active journals take up 728.7M on disk.

100MBのログのみを残します。

journalctl --vacuum-size=100M
...
Deleted archived journal /var/log/journal/ba5391...b.journal (8.0M).
...
Vacuuming done, freed 616.6M of archived journals on disk.

Journalctlの設定方法についての詳細はこちら here

パッケージ

660M /var/cache/pacmanがあります。 1.8GBでしたが、未使用のパッケージを削除するためにpacman -Scを実行しました。残りを削除しましょう:

pacman -Scc

/ usr/share/locale

多くのユーザーはそれを削除するか、少なくともクリーンアップします。しかし、私は 問題 かもしれません。しかし、チェックアウトbleachbit(次の段落)。

ブリーチビット

自動クリーナー 。多くのものを削除しますが、それは主にロケールでした。

$ pacman -S bleachbit
$ bleachbit -p system.*
Disk space to be recovered: 488.8MB
$ bleachbit -c system.*

削除するものをさらに探すことができます。

bleachbit --list
bleachbit -p Thunderbird.*
5
mist

Ubuntuを搭載したEeepcの4GBディスクでは、一部のロケールファイル(/ usr/share/localeから)とGnomeヘルプファイル(/ usr/share/gnome/help /から)を削除するのに役立ちました。どちらも私が使用していない言語用にインストールされました。ただし、Arch Linuxがこれらのファイルをすべてインストールするかどうかはわかりません。

3
oliver

私はあなた自身の非常に古いファイルを見て自動化し、必要かどうかを確認して削除することをお勧めします。これには2つの方法があります。非常に古いファイルを探すためにfindコマンドを書く人。そして、この出力(おそらくパイプ)をlograteスクリプトに使用して、3か月より古いファイルをアーカイブし、3か月より古いファイルをアーカイブから削除して、削除する前に1日にメールを送信します。重要なファイルを紛失していないことを確認できます。したがって、最後に、上記を実行するには次のコマンドが必要になります。

find , | , logrotate , mail, crontab

スプーンで餌をあげるつもりはありません。前にこれを実行して、これでかなり成功し、後でcorp [3]で監視するためにnagiosを使用することに決めたため、企業サーバーでこの種のものを実行するように調整されたため、破棄されました。 mailコマンドがまだ構成されていない場合、最も難しいのは簡単なことでしょう。これはすべて、bashスクリプトで実行し、それをcronジョブに入れて、x日ごとに実行する必要があります。 bashスクリプトを学んでください。これだけでなく、* nixを使用して人生を楽にするのにも非常に役立ちます。したがって、お気に入りのインターネット検索エンジンを使用して、上記のコマンドとbashスクリプトについて読んでください。そして、それらを結び付けてテストします。満足したら、常用してください。これを行うのは楽しいでしょう。これまでにこれまでやったことがなければ、たくさん学ぶことができます。

  • それが役に立てば幸い
0
bagavadhar