web-dev-qa-db-ja.com

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

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

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
142
carmatt95

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

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

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

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

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%未満になっていることがわかります。これで、更新を再び続行できます。

192
Alaa Ali

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 右下のボタン。

42
αғsнιη

未使用のカーネルとヘッダー(現在実行中のカーネルを除く)をすべて削除する簡単な方法が、@ Lekensteynの answer の質問 どうすれば/ブート?

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

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

17
marianoju

この問題に関するバグレポートはこちらにあります: https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1183692

「このバグもあなたに影響を与えます」かどうかお気軽に教えてください。

6
alci

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

  1. 命令型干渉しないように、使用している実行中のカーネルをチェックします。

    uname -a
    
  2. 次に、実行中のカーネルに直接関連するnotであるすべてのカーネル関連ファイルを削除することを目的として、/ 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. 完了

3
Kiat

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

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

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

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

Sudo apt-get updateSudo apt-get upgradeSudo apt-get cleanでいくつかの小さな成功を収めましたが、フリーソフトウェアBleachbitを試しました。現在のバージョンではなく、パージ文字列を使用します。これが誰かを助けることを願っています。

1
Brian P

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

Sudo apt autoremove

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

0
Dinusha Dilanka

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

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

これにより、インストールされているカーネルイメージパッケージのセットの概要が提供されます。 linux-image使用されておらず、リカバリの目的で必要とは予想されないパッケージ-たとえば、復旧のために、インストールされているアクティブバージョンの背後に少なくとも1つのカーネルバージョンを保持するのが好きです。

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

0
Sean Champ

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

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

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

marianoj の答えは本当に役に立ちましたが、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
PascalVKooten