web-dev-qa-db-ja.com

/に新しいカーネルアップデートをインストールするための十分なスペースがありません

最近の更新中に、私はこれを受け取りました:

Installing: kernel-default-2.6.37.6-0.11.1 [error]
Installation of kernel-default-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed:    installing package kernel-default-2.6.37.6-0.11.1.x86_64 needs 147MB on the / filesystem


Abort, retry, ignore? [a/r/i] (a): i
Installing: kernel-desktop-2.6.37.6-0.11.1 [error]
Installation of kernel-desktop-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed:    installing package kernel-desktop-2.6.37.6-0.11.1.x86_64 needs 148MB on the / filesystem


Abort, retry, ignore? [a/r/i] (a): i
Installing: kernel-source-2.6.37.6-0.11.1 [error]
Installation of kernel-source-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed:    installing package kernel-source-2.6.37.6-0.11.1.noarch needs 432MB on the / filesystem

私が想定していることは、私の/パーティションにいくらかのスペースが必要であることを意味します。だから私はサイズ/スペースをチェックしました:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              25G   24G  208M 100% /

/はどのようにしてこんなに巨大になったのですか!?これはよくあることで、スペースを解放するための簡単なトリックはありますか?そこには使っていないものがあり、過去1年間はカーネルを簡単に更新できたと思いますので、何かが蓄積されています。

ドライブ全体を再パーティション化して/を拡張するのではなく、何を解放するか(古いカーネルは保持されますか?)を把握したいと思います。

4
n0pe

次の変更を行う前にバックアップを作成してください
バックアップまたはすべてのデータを失う意思がない限り、先に進まないでください。

実行

du -sh /home

/ homeディレクトリで使用されるサイズを取得します。
十分に大きい場合(> = 4G)、/ homeは独自のパーティションを持つのに適した候補です。

Livecdまたは SystemRescueCd のいずれかから起動します
パーティションテーブルの種類(GPTまたはMBR)に応じて、gdiskparted、またはfdiskのいずれかを使用します。

新しいパーティションを作成します
お好みのfstypeを使用したフォーマット
例えば。

mkfs.ext4 /dev/sda2
mkdir /mnt/os
mkdir /mnt/home
mount /dev/sda1 /mnt/os    # mount your OS, now all on /
mount /dev/sda2 /mnt/home  # mount newly formatted partion
cp -a /mnt/os/home/* /mnt/home/ # copy current /home data to new partition
cd /mnt/os/home                 # remove old home data, leaving mountpoint
rm -rf .

次に、/ mnt/os/etcにcdして、fstabを編集して追加する必要があります。

/dev/sda2 /home ext4 defaults 0 1

これを行うには複数の方法があります。経験とスキルに応じて、UUIDでマウントできます(推奨されますが、必須ではありません)。

他のファイルシステムでも同じことができます。多くのグーグルツールやEclipseをインストールしている場合、それらは/ optに組み込まれ、独自のパーティションに配置することもできます。

パーティションが多数ある場合は、GPTパーティションやLVMに切り替えることをお勧めします。もしそうなら、もう一度質問してください

2
bsd

25GBのシステムパーティションが大きいか小さいかは、インストールしたソフトウェアの量(これは単一目的のサーバーですか、それともドメイン固有のソフトウェアがたくさんある共有ワークステーションですか?)と/varに潜んでいるデータの量によって異なります(そのパーティションに200人のユーザーのメールがありますか?).

蓄積された残骸を探すのに適した場所は次のとおりです。

  • /tmp:そこに古い大きなファイルはありますか? /tmptmpfsファイルシステムにして、ディスクスペースを消費せず、起動のたびに新たに起動するようにすることをお勧めします。
  • /var/tmp:そこに巨大なファイルはありますか?
  • /var/log:暴走したサービスはギガバイトのログを生成しましたか?
  • /var/cache:適切にパージされていない大きなキャッシュはありますか?特に、ディストリビューションがダウンロードされたパッケージを配置する場所を確認してください(APTベースのディストリビューションの場合は/var/cache/apt/archives/など)。
  • 未使用のソフトウェアはインストールされていますか?通常はそれほど多くはありませんが、システム上にある実行可能ファイルで使用されていないライブラリバージョンを見つけることができる場合があります。 deborphan(Debianおよび派生物)のようなプログラムが役に立ちます。古いカーネルにも悩まされていないか確認してください。

削除するものが見つからない場合は、少なくともduまたは グラフィカルな代替Baobab (Gnome)など)でスペースを占有しているものを確認できます。ユーティリティ)。

他の場所にスペースが残っている場合は、/usrまたは/var(または該当する場合は/optまたは/srv)の大きなチャンクを別のパーティションに移動して、シンボリックリンクを作成できます。