web-dev-qa-db-ja.com

ブートがいっぱいで、apt-getをアップグレードできません

私はインターウェブ上にあるクリアブートのほとんどの指示に従いましたが、Linuxの内部では少しn00bishです。主にウェブ開発テストに使用しますが、コマンドの指示に従うのはかなり良いです;)

残念ながら、私のボックスは/ bootがいっぱいになっているようで、それをクリアするための正しい手順を回避することができません。

カーネル39のインストールが保留中であるため、ブートをクリーンアップできないと思いますが、ブートがいっぱいであるため、保留中のインストールから削除できますか?

これは私が試みた一連のステップです:

pedro@lamp01:~$ Sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run âapt-get -f installâ to correct these.
The following packages have unmet dependencies.
 linux-image-generic-lts-quantal : Depends: linux-image-3.5.0-39-generic but it is not installed
E: Unmet dependencies. Try using -f.


pedro@lamp01:~$ Sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
 linux-headers-generic-lts-quantal : Depends: linux-headers-3.5.0-39-generic but it is not going to be installed
 linux-image-generic-lts-quantal : Depends: linux-image-3.5.0-39-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).


pedro@lamp01:~$ Sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  linux-headers-3.5.0-32-generic linux-headers-3.5.0-27-generic
  linux-headers-3.5.0-30-generic linux-headers-3.5.0-28-generic
  linux-headers-3.5.0-30 linux-headers-3.5.0-31 linux-headers-3.5.0-26
  linux-headers-3.5.0-32 linux-headers-3.5.0-27 linux-headers-3.5.0-28
  linux-headers-3.5.0-31-generic linux-headers-3.5.0-26-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  linux-image-3.5.0-39-generic
Suggested packages:
  fdutils linux-lts-quantal-doc-3.5.0 linux-lts-quantal-source-3.5.0
  linux-lts-quantal-tools
The following NEW packages will be installed
  linux-image-3.5.0-39-generic
0 upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
3 not fully installed or removed.
Need to get 0 B/40.7 MB of archives.
After this operation, 157 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 269199 files and directories currently installed.)
Unpacking linux-image-3.5.0-39-generic (from .../linux-image-3.5.0-39-generic_3.5.0-39.60~precise1_AMD64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.5.0-39-generic_3.5.0-39.60~precise1_AMD64.deb (--unpack):
 failed in write on buffer copy for backend dpkg-deb during `./boot/vmlinuz-3.5.0-39-generic': No space left on device
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.5.0-39-generic /boot/vmlinuz-3.5.0-39-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.5.0-39-generic /boot/vmlinuz-3.5.0-39-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-3.5.0-39-generic_3.5.0-39.60~precise1_AMD64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
pedro@lamp01:~$

自動削除がインストールを強制しているように見えるのは少し奇妙です。現在のカーネルは37です。

pedro@lamp01:~$ uname -a
Linux lamp01 3.5.0-37-generic #58~precise1-Ubuntu SMP Wed Jul 10 17:48:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

誰でも助けることができますか?

どうもありがとう、P.

1
Pedro Costa

私はあなたの設定が似ていないので、それらのどれもうまくいかないので、何かを試す前にバックアップを作成してください!それを言った後、あなたは以下を試すことができます:

  1. dpkgを使用して古いカーネルを削除し、その後新しいカーネルをインストールします。例えば:

    $ Sudo dpkg -r linux-headers-3.5.0-28-generic
    
  2. それでも動作しない場合は、古いカーネルファイルを一時的に別の場所(ルートパーティション、ペンドライブなど)に移動し、新しいカーネルをインストールしてから古いカーネルを削除して、カーネルファイルを移動してみてください。デフォルトの場所に。

  3. /bootマウントポイントを一時的に「移動」しようとすることができます(/に十分なスペースがある場合)。これには次の手順が必要です。

    • / bootマウントポイントをアンマウントします。Sudo umount /boot;
    • 他の場所にマウントします:Sudo mount /dev/**your boot partition** /mnt;
    • ファイルを/ mntから/ bootに移動します。gksu nautilusまたはSudo mvを使用してこれを実行できます
    • 必要な変更(新しいカーネルのインストール、古いカーネルの削除)を実行します。
    • / mntから/ bootにファイルをコピーします。

また、LVMを使用している場合、パーティションのサイズ変更がはるかに簡単であることに注意してください(何かを停止したり、再起動したり、ライブCDを使用したりする必要さえありません)。その場合、lvextendを使用して/bootパーティションのスペースを増やしてください。

2
Salem

もしあなたがdf -h/bootパーティションがいっぱいです。

 braiam @ bt:〜$ df -h 
使用されたファイルシステムサイズAvail Use%マウントされた
/dev/sda7 14G 9.8G 3.3G 76%/
/ dev/sda5 922M 40M 819M 5%/ boot

これは、サイズを小さくしすぎたため、または必要のないカーネルをいくつか壊したため、またはGrubのユニコーンの背景でいっぱいにしたためです...いずれにしても、2つの簡単な解決策があります:

  1. 廃止されたカーネルをアンインストールします。

    Sudo apt-get -y autoremove
    Sudo apt-get -f install
    
  2. /bootパーティションが大きくなります。

    これには、Live OSを起動してからパーティションのサイズを変更する必要があります。

1
Braiam