回答:
最近、私は同様の状況に直面しました。インストールされたアプリケーションが多すぎて、ルートマウントスペースを使用し始めました。私が従ったいくつかの手順をリストし、同じ手順を使用できることを期待しています。
apt-getキャッシュを消去します。次のコマンドは、ダウンロードされたすべてのdebファイルをapt-getキャッシュディレクトリから削除します。
次のコマンドを実行します: sudo apt-get clean
/ homeマウントポイントを別のドライブに移動します。以前は、ホームフォルダーはルートドライブにありました。そこで、ホームフォルダを別のドライブに移動しました。ほとんどのアプリケーションはデータを/ home / user_name /フォルダーに保存するため、これによりルートマウントから多くのストレスを解放できました。ホームフォルダーを別のドライブに移動する方法をお読みください。
ルートパーティションのサイズを大きくするそれは非常に明白な答えだと知っています。しかし、信じてください。データは時間とともに変化する必要があります。20 GBの/ rootマウントで十分だと思いましたが、1年でルートマウントのサイズを変更し、50 GBに増やしました。
apt-get clean
インストール済みのパッケージも削除することに注意してください。アップグレードが失敗した場合に備えて、これらを保持することができます。
次のコマンドを使用して、古いヘッダーと画像を削除して3.5 GBを正常にクリアしました。
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
コマンドの最初の部分を実行して、どのパッケージがパージされるかを確認できます。
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
-y
apt-getコマンドのオプションは実際には必要ありません。省略すると、apt-getは(一度だけ)パイプされたパッケージをすべて削除するかどうかを尋ねます。を使用しない方が良いと-y
思います(上記の2番目のコマンドに加えて)確認する可能性がもう1つあります。私にとって、これはルートパーティションで15GBを解放しました!
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
は、システムに現在インストールされているカーネルバージョンを削除しようとしました。システムを起動不能にしないように注意してください。
uname -r
現在のカーネルを見つけるために実行し、削除しないように注意しました。homebrand
どのパッケージがパージされるかを確認するために提供されるコマンドが現在のカーネルを表示しない場合、彼が言及したパージコマンドを安全に実行する必要があります。
を使用dpkg-query
して最大のパッケージを見つけ、不要になったパッケージを削除します(ソース):
dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'
wajig sizes
sudo apt autoclean # clean /var/cache/apt/archives folder which save packages while install.
sudo apt autoremove # this command remove unused packages.
sudo shutdown -rf # it will restart your PC immediately and check filesystem in next boot.
古いカーネルバージョン(homebrandで既に提案されている)を削除すると、まだ実行していない場合はかなりの容量を解放できます。
古いカーネルバージョンを削除するにはいくつかの方法があり、さまざまなオプションの範囲が投稿された回答にあります:古いカーネルバージョンを削除してブートメニューをクリーンアップするにはどうすればよいですか?
私が好む方法は、ペンリターンからのこの回答であり、かなり単純な理解可能なステップに分割されています:
ターミナルを開き、現在のカーネルを確認します。
uname -r
このカーネルを削除しないでください!
次に、以下のコマンドを入力して、システムにインストールされているすべてのカーネルを表示/一覧表示します。
dpkg --list | grep linux-image
現在のカーネルよりも低いすべてのカーネルを見つけます。削除するカーネルがわかったら、以下に進んで削除します。
以下のコマンドを実行して、選択したカーネルを削除します。
sudo apt-get purge linux-image-x.x.x.x-generic
パージが終了すると、答えは「update-grub2」になりますが、これは現在古くなっている可能性があります。Ubuntu14.04 sudo update-grub
以降で十分です。また、彼らは「システムを再起動する」(これはクリーンアップされた起動メニューを見ることができるように思われる)とも言うので、この場合は必要ありません。
grubブートローダーメニューは、メインページにすべての古いカーネルバージョンを表示するために使用されていましたが、現在はサブメニューの後ろに隠れています。それはかなりすてきですが、Ubuntu / Linuxの初心者は、スペースを占有していることに気付いていないかもしれません。
提案されているように、現在のカーネルを削除しないでください。また、以前のカーネルバージョンも保持することをお勧めします。
これを行うにはより高速な方法がありますが、主に途中で各コマンドを理解できるため、この方法のシンプルさを好みます。
「使用しているカーネルのバージョンは何ですか?持っているカーネルのバージョンは何ですか?さて、それを削除してください。」
すすぎ、繰り返し、解放したスペースを賞賛します。
dpkg --list | grep linux-image
ターミナルで表示される結果から削除する特定の古いカーネルの名前をコピーして、コピーした名前を使用sudo apt-get purge
して貼り付けるのはかなり簡単です。
通常、3つまたは4つの古いカーネルを削除すると、ルートドライブの空き容量が約1 GBになります。
サーバーの空き容量を増やす必要がある場合、次のコマンドを使用します。
find / -type f -size +50M -exec du -h {} \; | sort -n
50 MBを超えるすべてのファイルを検索し、ファイルのdu -h
リストを作成し、"sort -n
パイプの後にファイルサイズで数値順にソートしたリストを作成します。
Ubuntuコミュニティのドキュメントの指示に従って、大量のゴミファイルを発見しました-/var/log/syslog.1のバックアップのように見えましたが、おそらく何かがsyslogに大量の出力を吐き出していました...
それを見つけたコマンドは:
sudo find / -size +1G
そして、というフォルダ内の大きなファイルは、.Trash
おそらく削除するのが良いでしょう...
ルートパーティションの空き領域を確保するために実行するスクリプトを次に示します
function myclean {
## Show free space
df -Th | grep -v fs
# Will need English output for processing
LANG=en_GB.UTF-8
## Clean apt cache
apt-get update
apt-get -f install
apt-get -y autoremove
apt-get clean
## Remove old versions of snap packages
snap list --all | while read snapname ver rev trk pub notes; do
if [[ $notes = *disabled* ]]; then
snap remove "$snapname" --revision="$rev"
fi
done
## Set snap versions retain settings
if [[ $(snap get system refresh.retain) -ne 2 ]]; then snap set system refresh.retain=2; fi
rm -f /var/lib/snapd/cache/*
## Remove old versions of Linux Kernel
# This one-liner is deprecated since 18.04
# dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -y purge
# New 2 lines to remove old kernels
dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge
dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge
## Rotate and delete old logs
/etc/cron.daily/logrotate
find /var/log -type f -iname *.gz -delete
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
## Show free space
df -Th | grep -v fs
}
docker system prune
/var/crash/*.crash
ない
sudo
関数を呼び出す必要があるため、関数sudo
内では冗長に見えます。また、vacuum-time=1s
常に動作しない場合がありますが、私は代わりに真空サイズを使用するので、私はよく分からない:forum.manjaro.org/t/...
Ubuntuでは、各フォルダーに独自のファイルシステムを設定できます。つまり、任意のフォルダーを独自のパーティション、別のディスク、さらにはリモートネットワークに移動できます。これは、ホームディレクトリで特に人気があります。これは、個人設定を変更したりファイルを失うことなくUbuntuを再インストールできることを意味します。また、ユーザーが別のマシンにログオンし、自分の個人設定とファイルを取得できるネットワークでも人気があります。しかし、それはあなたのような多くの異なる場合に役立ちます。
ご提案のように、アプリケーションは特定のフォルダーにインストールされません。アプリケーションのさまざまな部分は、ファイルシステムのさまざまな部分に配置されます。メインプログラムは通常/ usr / binに配置されますが、構成ファイルは/ etcに配置されます。MySQLの場合、データベース自体は/ varのどこかに配置されます。/ var / mysqlと思います。
/ usrと/ varは両方ともルートファイルシステムのディレクトリであるため、ルートファイルシステムスペースを使用します。しかし、私が言ったように、それらを異なるファイルシステムに移動できます。MySQLの場合、データベースの保存場所を構成できます。たとえば、データベースを/home/username/.mysql/databasesに簡単に移動できます。
パッケージマネージャーがアプリケーションをインストールするパスを変更することはできません。ほとんどのアプリケーションファイルはに保存され/usr
ます。ルートパーティションの領域を回復する場合/usr
は、別のパーティションに移動することが解決策です。
コメントから:
コピーする際に権限を保持します。つまり、ファイルマネージャーが何をするかわからない場合は、コマンドラインを使用することをお勧めします。
これに対する正しい方法は、新しいファイルシステムを/ usrにマウントするか、を使用することmount --bind
です。シンボリックリンクがどの程度うまく機能するかは明確ではありません。
/opt
ます。
/opt
「ルール」に反するものをインストールします。
今日の時点では、新しい機能(14.04以降)を使用して古いカーネルイメージを削除することをお勧めします。
sudo apt autoremove
詳細を確認してください:なぜUbuntuは古いカーネルを自動的に削除しないのですか?
mssqlデータベースサーバーがインストールされている場合、メモリを使い果たす可能性があります。NCursesディスク使用量の実行
$ sudo ncdu /
最大のストレージを使用しているフォルダーとファイルを確認する。mssqlデータは通常、次の場所に保存されます
/var/opt/mssql/backup/