Ubuntu 11.04を使用していますが、ルートディレクトリのスペースを解放したいのですが、これはオーバーロードされています。特に、アプリケーションのインストールに使用するパスを変更したい(それらはルートドライブに直接インストールされます)。
もう1つの考慮事項は、MySQLデータベースサーバーで作業していることです。サーバーはルートディレクトリ自体にインストールされるため、データを失うリスクはありません。
この問題を解決するためのヒントを教えてください。
最近、私は同様の状況に直面しました。インストールされたアプリケーションが多すぎて、ルートマウントスペースを使用し始めました。私が従ったいくつかの手順をリストし、同じ手順を使用できることを期待しています。
apt-getキャッシュを消去します。次のコマンドは、ダウンロードされたすべてのdebファイルをapt-getキャッシュディレクトリから削除します。
次のコマンドを実行します:Sudo apt-get clean
/ homeマウントポイントを別のドライブに移動します。以前は、ホームフォルダーはルートドライブにありました。そこで、ホームフォルダを別のドライブに移動しました。ほとんどのアプリケーションはデータを/ home/user_name /フォルダーに保存するため、これによりルートマウントから多くのストレスを解放することができました。読み取り ホームフォルダーを別のドライブに移動する方法
ルートパーティションのサイズを大きくするそれは非常に明白な答えだと知っています。しかし、信じてください。データは時間とともに変化する必要があります。 20 GBの/ rootマウントで十分だと思いましたが、1年でルートマウントのサイズを変更し、50 GBに増やしました。
次のコマンドを使用して、古いヘッダーと画像を削除して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'
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}'
Sudo apt-get autoclean // clean /var/cache/apt/archives folder witch save packages while install.
Sudo apt-get autoremove //this command remove unused lib packages.
Sudo shutdown -rf // it will restart your pc immediately and check filesystem in next boot.
古いカーネルバージョンを削除すると(homebrandで既に示唆されているように)、まだ実行していない場合はかなりの容量を解放できます。
古いバージョンのカーネルを削除するにはいくつかの方法があり、以下にリンクされている質問への回答にさまざまなオプションがあります。
ブートメニューをクリーンアップするために古いカーネルバージョンを削除するにはどうすればよいですか?
私が好む方法は、主にpenreturnsからのこの回答で、かなり単純な理解可能なステップに分解されます
ターミナルを開き、現在のカーネルを確認します。
uname -r
このカーネルを削除しないでください!
次に、以下のコマンドを入力して、システムにインストールされているすべてのカーネルを表示/一覧表示します。
dpkg --list | grep linux-image
現在のカーネルよりも低いすべてのカーネルを見つけます。削除するカーネルがわかったら、以下に進んで削除します。
以下のコマンドを実行して、選択したカーネルを削除します。
Sudo apt-get purge linux-image-x.x.x.x-generic
パージが終了すると、答えは「update-grub2」になりますが、これは現在古くなっている可能性があります:Sudo update-grubshould Ubuntu 14.04以降で十分です。また、彼らは「システムを再起動する」(これはクリーンアップされた起動メニューを見ることができるように思われる)とも言うので、この場合は必要ありません。
Grubブートローダーメニューは、メインページにすべての古いカーネルバージョンを表示するために使用されていましたが、サブメニューの後ろに隠れるようになりました。それはかなりすてきですが、Ubuntu/Linuxの初心者は、スペースを占有していることに気付いていないかもしれません。
提案されているように、現在のカーネルを削除しないでください。また、以前のカーネルバージョンも保持することをお勧めします。
これを行うにはより高速な方法がありますが、主に途中で各コマンドを理解できるため、この方法の単純さを好みます。
「どのバージョンのカーネルを使用していますか?どのバージョンのカーネルを使用していますか?さて、thatを削除してください。」
すすぎ、繰り返し、解放したスペースを賞賛します。
結果から削除したい特定の古いカーネルの名前をコピーするのはかなり簡単ですdpkg --list | grep linux-imageが端末に表示されたら、Sudo apt-get purgeを使用して、コピーした名前を貼り付けますに。
通常、3つまたは4つの古いカーネルを削除すると、ルートドライブの空き容量が約1 GBになります。
buntu community docs の指示に従って、大量のゴミファイルを発見しました-それは/var/log/syslog.1のバックアップのように見えました。
それを見つけたコマンドは:
Sudo find / -size +1G
そして、.Trash
と呼ばれるフォルダー内の大きなファイルは、おそらく削除するのが良いでしょう...
サーバーの空き容量を増やす必要がある場合は、このコマンドを使用します。 50 MBを超えるすべてのファイルを検索し、「du -h」はファイルのバレットリストを作成し、パイプはファイルサイズで数値順にソートした後に「sort -n」を作成します。
find / -type f -size +50M -exec du -h {} \; | sort -n
これは、ルートパーティションの空き領域を確保するために実行するスクリプトです。
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
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | 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
}
Ubuntuでは、各フォルダーに独自のファイルシステムを設定できます。つまり、任意のフォルダーを独自のパーティション、別のディスク、さらにはリモートネットワークに移動できます。これは、ホームディレクトリで特に人気があります。これは、個人設定を変更したりファイルを失うことなくUbuntuを再インストールできることを意味します。また、ユーザーが別のマシンにログオンし、自分の個人設定とファイルを取得できるネットワークでも人気があります。しかし、それはあなたのような多くの異なる場合に役立ちます。
ご提案のように、アプリケーションは特定のフォルダーにインストールされません。アプリケーションのさまざまな部分は、ファイルシステムのさまざまな部分に配置されます。メインプログラムは通常/ usr/binに配置されますが、構成ファイルは/ etcに配置されます。 MySQLの場合、データベース自体は/ varのどこかに配置されます。/var/mysqlと思います。
/ usrと/ varは両方ともルートファイルシステムのディレクトリであるため、ルートファイルシステムスペースを使用します。しかし、私が言ったように、それらを異なるファイルシステムに移動できます。 MySQLの場合、データベースの保存場所を構成できます。たとえば、データベースを/home/username/.mysql/databasesに簡単に移動できます。
別のファイルシステムがたくさんある場合、次のトリックが便利かもしれません:Mount/another time、今回は/ mntの下。これで、間違ったファイルシステムを走査することなく、大規模または多数のファイルのすべての検索を実行できます。
また、別のマウントの下に隠されているファイルを見つけるのに役立ちます。
パッケージマネージャーがアプリケーションをインストールするパスを変更することはできません。ほとんどのアプリケーションファイルは/usr
に保存されます。ルートパーティションの領域を回復する場合は、/usr
を別のパーティションに移動することが考えられます。
コメントから:
コピーする際に権限を保持します。つまり、ファイルマネージャーが何をするかわからない場合は、コマンドラインを使用することをお勧めします。
これに対する正しい方法は、新しいファイルシステムを/ usrにマウントするか、mount --bind
を使用することです。シンボリックリンクがどの程度うまく機能するかは明確ではありません。
今日の時点では、新しい機能(14.04以降)を使用して古いカーネルイメージを削除することをお勧めします。
Sudo apt-get autoremove
詳細を確認してください: なぜUbuntuは古いカーネルを自動的に削除しないのですか?
Mssqlデータベースサーバーがインストールされている場合、メモリを使い果たす可能性があります。走る
$ Sudo nscdu /
最大のストレージを使用しているフォルダーとファイルを確認する。 mssqlデータは通常、次の場所に保存されます
/var/opt/mssql/backup/