私のマシンの1つは2GB EeePC Surfです。これは、リソースが非常に限られているきちんとしたネットブックです。そのため、現在は制限されているため、22MBの空き領域が残っています。
その上で、私はArch LinuxをOpenbox DEとともに実行し、それがモバイルPCとして機能するために必要なアプリケーションのホストを実行しています。
不要な使用済みスペースを打ち消すには、どのような方法がありますか?
ここにあなたが始めることができるいくつかのポイントがあります:
システムにインストールされているパッケージをpacman -Q
で確認し、不要なパッケージを削除してください。 -t
スイッチを追加するとよいでしょう。
現在インストールされているパッケージで必要とされていないパッケージへの出力を制限またはフィルターします。
pacman -Sc
でpacmanのパッケージキャッシュを消去します
未使用のパッケージの依存関係も削除するには、常にpacman -Rs
を使用してください。
ディスクの大部分を使用する「大きなファイル」とフォルダを見つけるには、du
にxdiskusage
を追加するといいでしょう。この小さなツールを使用すると、ファイルシステムをすばやく参照し、フォルダのディスク使用量をグラフィカルに表示できます。
警告:これらのアイデアは、Linux全体とArch Linuxの両方に精通しているユーザーのみを対象としています。
危険な地域に足を踏み入れたい場合は、基本のArchのインストールを500MB未満にスリム化できます。これはいくつかの非常に危険なことをする必要があります:
/usr/lib/firmware
から)/usr/lib/modules/...
から).a
内の/usr/lib
ファイルを削除する(システムを使用してソフトウェアをコンパイルしたことがない場合のみ。注:これにはmakepkg
の使用が含まれます)/usr/include
内のすべてを削除する(システムを使用してソフトウェアをコンパイルしたことがない場合のみ)/usr/share/doc
および/usr/share/info
から不要なドキュメントを削除する/usr/share/man
からmanページを削除する/usr/share/terminfo
から不要な端末記述子を削除し、/usr/share/zoneinfo
から不要なタイムゾーンファイルを削除するstrip *
および/usr/bin
)を含むすべてのフォルダで/usr/sbin
を実行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_US
とlocale.alias
を維持し、その他すべてを削除すると、約80MB削られます。
さて、私が見たいのは、システムを分析し、必要なカーネルモジュールと必要なファームウェアファイルを決定するツールです。これは、これらのフォルダを「安全に」削除するための良い方法です...
または、誰かがuClibc
またはdiet-libc
または類似のものを使用するArchの「ディストリビューション」を組み立てる必要があるかもしれません。それは楽しい夏のプロジェクトかもしれません。 :-)
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つのディレクトリvar
とusr
が頭に浮かびます。中身を見てみましょう:
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
多くのユーザーはそれを削除するか、少なくともクリーンアップします。しかし、私は 問題 かもしれません。しかし、チェックアウトbleachbit(次の段落)。
自動クリーナー 。多くのものを削除しますが、それは主にロケールでした。
$ pacman -S bleachbit
$ bleachbit -p system.*
Disk space to be recovered: 488.8MB
$ bleachbit -c system.*
削除するものをさらに探すことができます。
bleachbit --list
bleachbit -p Thunderbird.*
Ubuntuを搭載したEeepcの4GBディスクでは、一部のロケールファイル(/ usr/share/localeから)とGnomeヘルプファイル(/ usr/share/gnome/help /から)を削除するのに役立ちました。どちらも私が使用していない言語用にインストールされました。ただし、Arch Linuxがこれらのファイルをすべてインストールするかどうかはわかりません。
私はあなた自身の非常に古いファイルを見て自動化し、必要かどうかを確認して削除することをお勧めします。これには2つの方法があります。非常に古いファイルを探すためにfind
コマンドを書く人。そして、この出力(おそらくパイプ)をlograte
スクリプトに使用して、3か月より古いファイルをアーカイブし、3か月より古いファイルをアーカイブから削除して、削除する前に1日にメールを送信します。重要なファイルを紛失していないことを確認できます。したがって、最後に、上記を実行するには次のコマンドが必要になります。
find , | , logrotate , mail, crontab
スプーンで餌をあげるつもりはありません。前にこれを実行して、これでかなり成功し、後でcorp [3]で監視するためにnagios
を使用することに決めたため、企業サーバーでこの種のものを実行するように調整されたため、破棄されました。 mail
コマンドがまだ構成されていない場合、最も難しいのは簡単なことでしょう。これはすべて、bashスクリプトで実行し、それをcronジョブに入れて、x日ごとに実行する必要があります。 bashスクリプトを学んでください。これだけでなく、* nixを使用して人生を楽にするのにも非常に役立ちます。したがって、お気に入りのインターネット検索エンジンを使用して、上記のコマンドとbashスクリプトについて読んでください。そして、それらを結び付けてテストします。満足したら、常用してください。これを行うのは楽しいでしょう。これまでにこれまでやったことがなければ、たくさん学ぶことができます。