アップグレード時に十分な空きディスク容量がない


142

毎日更新しようとすると、ソフトウェアアップデーターでエラーが発生します。それは言います:

The upgrade needs a total of 25.3 M free space on disk `/boot`.
Please free at least an additional 25.3 M of disk space on `/boot`.
Empty your trash and remove temporary packages of former installations 
using `sudo apt-get clean`.

sudo apt-get cleanターミナルに入力しようとしましたが、まだメッセージが表示されます。私が読んだページはすべて、経験豊富なUbuntuer向けです。Ubuntu 12.10を実行しています。13.04にアップグレードしたいのですが、最初にこれらを完了する必要があることを理解しています。

これは、cat /etc/fstabターミナルへの入力からの出力です。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

の出力df -h

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

そしてdpkg -l | grep linux-image与える:

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP

1
また、/ etc / fstabの内容が役立つ場合があります。/ bootは別のパーティションにマウントされているようです。
チャックR

1
@Githlarが言うように、fstabはhdパーティションに関する情報を提供してくれます。
ssoto

1
fstabは、コンピューターの起動時にマウントされるパーティションに関する情報を含むファイルです。このファイルの内容を表示するにcat /etc/fstabは、ターミナルに入力します。出力をコピーして質問に追加します(質問を編集できます)。また、の出力をコピーdf -hしてdpkg -l | grep linux-image
Alaaアリ

1
あなたの問題はlinux-image.../bootパーティション内のすべての余分なファイルがスペースを使い果たしていることです-あなたはパーティション上に6MBの空きしかありません。sudo dpkg -P purge 'older_linux_image_filename'最新バージョン= 3.5.0-28.48および3.5.0-26.42を除くすべてを削除するこれにより、更新/アップグレードが可能になります。
-douggro

2
sudo apt-get autoremoveこれを修正するために実行する必要がありました。
ジュアンピーNR

回答:


192

注:この回答は、古いカーネルを削除するための最良/最も簡単な方法を提供するというよりも「説明」を目的としています。古いカーネルを削除する最良/最も簡単な方法については、他の回答を確認してください。

さて、/etc/fstab投稿した出力から、あなた/bootは別のパーティションにマウントされているようで、の出力からdf -hそのパーティションはいっぱいです。これは、不要な古いカーネルがインストールされているためです。dpkg -l | grep linux-image投稿した出力を見ると、異なるバージョンの複数の " linux-image "を見ることができます。古いバージョンを削除する必要があります。

まず、uname -rターミナルでコマンドを実行してください。これにより、現在使用しているカーネルのバージョンが表示されます。そのカーネルバージョンを削除することはありません。コマンドはこのようなことを言います。その番号をメモしてください!次のコマンドは、それが実行中のカーネルであると想定します。3.5.0-26-generic26

古いカーネルバージョンを削除するコマンドは次のとおりです。

sudo apt-get purge linux-image-x.x.x-xx-generic

...ここで、x文字は数字です。したがって、あなたの場合、古いバージョン(17、18、19など)が多数あるため、次のように、バージョンごとにこのコマンドを実行する必要があります。

  • sudo apt-get purge linux-image-3.5.0-17-generic
  • sudo apt-get purge linux-image-3.5.0-18-generic
  • sudo apt-get purge linux-image-3.5.0-19-generic

...等々。しかし、1つのコマンドでこれらすべてを実行する方法があります。コマンドはこれです(まだコマンドを実行しないでください!以下をお読みください。):

sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

このコマンドは、括弧内に記載されているバージョンを削除します。次の理由により、バージョン25、26、28は含めませんでした。

  • 26が含まれていないのは、それが現在実行しているカーネルバージョンだからです!これは、コマンドから取得したバージョンuname -rです、覚えていますか?削除したくない!
  • 28は含まれていませんでした。これは、アップグレードがアップグレードしようとしていたものだからです(iF次のステータスからわかります。つまり、「半分構成済み」です)。
  • 通常、少なくとも1つの古いバージョンを残すことをお勧めするため、25は含めませんでした。したがって、26を実行しているため、25を保持するため、上記のコマンドには含めません。

したがって、最後の数字uname -rが26(または28、または25)であれば、上記のコマンドを実行しても安全です。プロンプトが表示されたらパスワードを入力し、y求められたら入力します。これにより多数の行が表示され、最終的にはコマンドプロンプト(場合によってはmatty@matty-G41M-ES2L:~$)に戻ります。完了したらdf -h、最後の行であるで始まる行を確認し/dev/sda1ます。スペースが増え、使用率が以前のように100%未満になっていることがわかります。これで、更新を再び続行できます。


1
動いた!!!本当にありがとう!ボーナスの質問:Ubuntuを初めてダウンロードしたときに、ホームエリアの「pictures」フォルダーを誤って削除しました。このため、横に「写真」タブはありません。「ピクチャ」というフォルダを作成することでこれを回避しましたが、サイドバーには表示されません。そこに到達する方法を知っていますか?クリックしてドラッグしてみましたが、役に立ちませんでした。@Alaa
carmatt95

3
どういたしまして!他の質問については、別の質問を作成し、回答します。この方法で、その問題を探している人々はそれを見つけることができます。
アラアアリ

13
私はそれを参照するために戻ってくるたびにこれを賛成できたらいいのに...今ではたくさんあるでしょう。
sevenseacat 14

4
うん、同じことを参照するために再びここに戻ります。あなたは今までにそれを覚えていると思うでしょう。
sevenseacat 14

2
すべての古いカーネルをパージするためのより簡潔なコマンドは次のsudo apt-get autoremove --purge
とおりです。– ctrueden

42

Ubuntu-Tweakをインストールできます。インストールするには、次の手順に従います。

ターミナルを開きます。次のコマンドで必要なリポジトリを追加します。

sudo add-apt-repository ppa:tualatrix/ppa

次のコマンドでソフトウェアリストを更新します。

sudo apt-get update

最後に、次のコマンドを使用してUbuntu Teakをインストールします。

sudo apt-get install ubuntu-tweak

その後、ダッシュを開いて「ubuntu tweak」と入力します。

そしてに行きjanitorタブを選択しAppsPersonalそしてSystemチェックボックスをクリックしclean、右下のボタンを。


9
コマンドラインをいじってすべてのカーネルを削除しようとするよりもはるかに優れていますが、異なるバージョン(最後に-32だけでなく)と-extraパケットがある場合でも最新ではありません。Ubuntuの調整で5分節約できました。ありがとう!
POMATu 14

はるかに便利です。
Saeed Amiri 14年

PPAを追加できませんでした.debが、proyectのWebサイトubuntu-tweak.com
Luigi Siri

ubuntu 14.04にPPAを追加する必要はありません
Edward Torvalds 14

1
@edwardtorvaldsもちろん、そのPPAを14.04および14.10にその.debパッケージで追加せずにインストールできますが、これは最も望ましい方法ではありません。PPA経由でインストールする理由は、更新を保証するためです。
αғsнιη

17

すべての未使用のカーネルとヘッダー(現在実行中のカーネルを除く)を削除する簡単な方法は、/ Lekensteyn が/ bootの空き容量を増やすにはどうすればよいかという質問に対する回答で指摘されています。

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')") 

これにより、アップグレードに十分なスペースが解放されます。



3

私のホームUbuntuシステムでは、投稿された方法と同様の方法を使用しますが、それは少し単純で、カーネルヘッダーなどのスペースヘッダーをクリアします。

  1. それを妨げないことが不可欠であるため、使用している実行中のカーネルをチェックします。

    uname -a
    
  2. 次に、実行中のカーネルに直接関連しないすべてのカーネル関連ファイルを削除することを目的として、/ bootを調べます。これにより、削除するすべてのカーネルバージョンのリストが表示されます。たとえば、3.5.0-17、3.5.0-18

    ls -l /boot
    
  3. 次に、パージリストの最初のカーネルバージョンを取得し、それに関連するすべてのパッケージを見つけます。

    dpkg -l | grep 3.5.0-17
    
  4. システムからそれらを削除する

    sudo apt-get purge <list of packages separated by spaces>
    
  5. 3に戻り、パージリストで次のカーネルバージョンを選択します。

  6. 完了


1

私はこのエラーを受け取っていました、この記事は役に立ちました。

私は以前、バージョンdf -hごとにブートがいっぱいであることを特定しuname -r、次にpurge上記の文字列を使用して古いカーネルを削除しました。単一のカーネルパージは機能しましたが、マルチは機能しませんでした(私にとって)。

私はWindowsの事でファイルを見つけました。それらを削除することはできず、ターミナルを使用する必要がありましたが、そこにあった古いバージョンが表示されました。

なぜ/ boot(sda2)がパーティション化されているのか、なぜそんなに小さいのかわかりません。しかし、今では再びUbuntuアップデータを使用できます。

私はといくつかのマイナーな成功を持っていたsudo apt-get updatesudo apt-get upgrade、をsudo apt-get clean、また、フリーソフトウェアBleachbitを試してみました。現在のバージョンではなく、パージ文字列を使用します。これが誰かを助けることを願っています。


編集:パージ文字列に「-generic」を追加する必要はないと思う
ブライアンP

0

使用されていない古いカーネルイメージパッケージがインストールされていますか?これらは/ bootでスペースを占有する可能性があります。次のようなコマンドを使用して、インストールされているカーネルパッケージのセットを確認することをお勧めします。

dpkg -l "linux-image*" | grep "^i"

これにより、インストールされているカーネルイメージパッケージのセットの概要が提供されます。それらのためのlinux-画像例えば、例えば私は、回復のために、インストールされアクティブバージョンの背後に、少なくとも1つのカーネル・バージョンを維持したい- -それ以外の場合は、使用されていないと、それが回復のために必要であると予想されないパッケージaptitudeなどのお気に入りのパッケージツールを使用して、このような未使用のパッケージを削除できます。

また、関連するinux-headerslinux-image-extras(該当する場合)、linux-source、およびlinux-toolsパッケージも確認することをお勧めします。これらは未使用のlinux-imageパッケージと一緒にインストールできます。


0

多くの人々がこの問題に遭遇するかどうか疑っていますが、誰かがそれを必要とする場合に備えて、ドキュメントのためにここに掲載しています。

私の問題は、スペースがなくなるまで異なるカスタムカーネルをコンパイルしていたことです。スペースをクリーンアップしなければならなかった方法は、作業していた各カーネルディレクトリに入り、を実行することsudo make cleanでした。

  • $ cd /usr/src カーネルソースがあるディレクトリ
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean

0

marianojuの答えは本当に役に立ちましたが、を使用してエラーが発生しましたapt purge。強制オプションが見つかりませんでした。

下位レベルのdpkgを組み合わせることで、先に進むことができました。

sudo dpkg -r $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' \
               | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

0

これらのものがある場合は、以下のコマンドで試して、古いカーネルイメージパッケージを削除できます。

sudo apt autoremove

その後、更新を行うことができます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.