毎日更新しようとすると、ソフトウェアアップデータでエラーが発生します。それは言います:
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
注:この回答は、古いカーネルを削除するための最良/最も簡単な方法を提供するというよりも、「説明」を目的としています。古いカーネルを削除する最良/最も簡単な方法については、他の回答を確認してください。
さて、/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は含めませんでした。
uname -r
から取得したバージョンです。覚えていますか?削除したくない!iF
ステータスから確認できます。つまり、「半分構成済み」です)。したがって、uname -r
の最後の数が26(または28、さらには25)であれば、上記のコマンドを実行しても安全です。プロンプトが表示されたらパスワードを入力し、要求されたらy
と入力します。これにより、多数の行が表示され、最終的にコマンドプロンプト(お使いの場合はmatty@matty-G41M-ES2L:~$
)に戻りますが、できればエラーは発生しません。完了したら、df -h
を実行し、/dev/sda1
で始まる最後の行を確認します。スペースが増え、使用率が以前のように100%未満になっていることがわかります。これで、更新を再び続行できます。
Ubuntu-Tweakをインストールできます。インストールするには、次の手順を実行します。
ターミナルを開きます。次のコマンドで必要なリポジトリを追加します。
Sudo add-apt-repository ppa:tualatrix/ppa
次のコマンドでソフトウェアリストを更新します。
Sudo apt-get update
最後に、次のコマンドを使用してUbuntu Teakをインストールします。
Sudo apt-get install ubuntu-Tweak
その後、ダッシュを開いて「ubuntu Tweak」と入力します。
そして、janitor
タブに移動し、Apps
、Personal
およびSystem
チェックボックスを選択してクリックします clean 右下のボタン。
未使用のカーネルとヘッダー(現在実行中のカーネルを除く)をすべて削除する簡単な方法が、@ 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]+//')")
これにより、アップグレードに十分なスペースが解放されます。
この問題に関するバグレポートはこちらにあります: https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1183692
「このバグもあなたに影響を与えます」かどうかお気軽に教えてください。
自宅のUbuntuシステムでは、投稿された方法と同様の方法を使用しますが、少し単純で、カーネルヘッダーなどのスペースヘッダーをクリアします。
命令型干渉しないように、使用している実行中のカーネルをチェックします。
uname -a
次に、実行中のカーネルに直接関連するnotであるすべてのカーネル関連ファイルを削除することを目的として、/ bootを調べます。これにより、削除するすべてのカーネルバージョンのリストが表示されます。たとえば、3.5.0-17、3.5.0-18
ls -l /boot
次に、パージリストの最初のカーネルバージョンを取得し、それに関連するすべてのパッケージを見つけます。
dpkg -l | grep 3.5.0-17
システムからそれらを削除する
Sudo apt-get purge <list of packages separated by spaces>
3に戻り、パージリストで次のカーネルバージョンを選択します。
完了
私はこのエラーを受け取っていました、この記事は役に立ちました。
df -h
を使用してブートがいっぱいであることを識別し、uname -r
を使用してバージョンを確認し、次に上記のpurge
文字列を使用して古いカーネルを削除しました。単一のカーネルパージは機能しましたが、マルチは機能しませんでした(私にとって)。
私はWindowsの事でファイルを見つけました。それらを削除することはできず、ターミナルを使用しなければなりませんでしたが、そこにあった古いバージョンが表示されました。
なぜ/ boot(sda2)がパーティション化されているのか、なぜそんなに小さいのかわからない。しかし、今では再びUbuntuアップデータを使用できます。
Sudo apt-get update
、Sudo apt-get upgrade
、Sudo apt-get clean
でいくつかの小さな成功を収めましたが、フリーソフトウェアBleachbitを試しました。現在のバージョンではなく、パージ文字列を使用します。これが誰かを助けることを願っています。
これらのものがある場合は、以下のコマンドで試して、古いカーネルイメージパッケージを削除できます。
Sudo apt autoremove
その後、更新を行うことができます
使用されていない古いカーネルイメージパッケージがインストールされていますか?これらは/ bootでスペースを占有する可能性があります。次のようなコマンドを使用して、インストールされているカーネルパッケージのセットを確認することをお勧めします。
dpkg -l "linux-image*" | grep "^i"
これにより、インストールされているカーネルイメージパッケージのセットの概要が提供されます。 linux-image使用されておらず、リカバリの目的で必要とは予想されないパッケージ-たとえば、復旧のために、インストールされているアクティブバージョンの背後に少なくとも1つのカーネルバージョンを保持するのが好きです。
関連するinux-headers、linux-image-extras(該当する場合)、linux-sourceもご覧になることをお勧めします、およびlinux-toolsパッケージ。未使用のlinux-imageパッケージと一緒にインストールできます。
多くの人々がこの問題に遭遇するかどうか疑っていますが、誰かがそれを必要とする場合に備えて、ここにドキュメントを掲載しています。
私の問題は、スペースがなくなるまで異なるカスタムカーネルをコンパイルしていたことです。スペースをクリーンアップする方法は、作業していた各カーネルディレクトリに入り、Sudo make clean
を実行することでした。
$ cd /usr/src
カーネルソースがあるディレクトリ$ cd linux-image-custom_kernel_name
$ Sudo make clean
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]+//')")