apt-get:デバイスにスペースが残っていません(12.04)


42

私は見つけることができるすべてのスレッドを読みました-質問が他の場所で回答されたと言っているスレッドでさえも、私が抱えている特定の問題に対処するスレッドはありません。Update Managerが実行され、満たされていない依存関係に関連するエラーが生成され、apt-get install -fの使用が提案されましたが、次のメッセージで失敗します。

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

デバイスに残っている最後の5ワードのスペースは重要ではないと思いますが、dfとduは両方とも十分なスペースを示しています。だから、どのデバイスがより多くのスペースを必要とするのだろうか?

から df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 

ルートパーティションにスペースがありますか?
don.joey

1
(i)の出力df -hと(ii)の出力を貼り付けてくださいmount。dpkgは、作業が終了した後にファイルをクリーンアップします。したがって、実際にはそうしなくても十分なスペースがあるように見えるかもしれません。apt-get cleandpkgを起動する前に実行することを検討してください。

1
実行watch -n 1 df -h中に端末でdoを監視するapt-get install(i / oが少し遅くなりますが、どのファイルシステムが小さすぎるかはわかります)
エマニュエル

3台のうち1台のコンピューターでUbuntu 14.04とカーネルバージョン3.13.0.108を使用しても問題が発生します。askubuntu.com/questions/223143/から始めましたが、ここに示されている回答は同じ行にあります。
XavierStuvw

回答:


48

これと同じ問題が発生しました。私は他の場所でiノードについて言及し、自分のターミナルでiノードの使用状況を確認するために走りました。

  df -i 

これにより、99%でiノードの使用が示されました。そのため、ディスクには十分な空き容量がありましたが、inodeの数に制限があるため、これ以上ファイルを作成できませんでした。いくつかのディスクのクリーンアップは私の問題の解決策でした。


6
古いカーネルを自動的に削除しないカーネル更新によって引き起こされる同じ問題がありました。すべてのカーネルアップデートのLinuxヘッダーは、かなりの数のiノードを占有します!---私の「安全な」解決策は、異なるファイルシステムへの2つのカーネルヘッダのディレクトリを移動することでした:cd /usr/src ; cp -a linux-headers-3.2.0-3{2,3}* /home/tmp-hdr ; rm -r linux-headers-3.2.0-3{2,3}*apt-get-install -f:、いくつかの他のヘッダ正しい方法を削除しapt-get purge linux-headers-...、TMPの背中からヘッダを移動しますcd /usr/src ; cp -a /home/tmp-hdr/* .。を使用して、古いカーネルをさらに削除しapt-get purgeます。
pabouk 14年

1
アクティビティの少ないバグレポートへの参加を検討してください。バグ#1089195 linux-headersはLTS上のiノードを食べます。、バグ#690911 の書式なしのインストールは、古いカーネルを削除するために失敗した
pabouk

@pabouk dpkg --purge linux-headers-3.2.0-3{2,3}*; apt-get -f installコピーが必要ないように使用できたのだろうか?
ヤルノ

@jarno長い間でしたが、dpkgまたはaptデータベースを使用するすべてのコマンドが失敗したと思います。これは、自動アップグレード中のinodeの数が不十分なために、依存関係が壊れていたり、その他の不整合があったためだと思います。
-pabouk

必要なディスククリーンアップはsudo linux-purge --fixスクリプトが公開されると実行できます。
ヤルノ

37

ブートパーティションには古いカーネルイメージがいっぱいで、新しいカーネルイメージapt-getをインストールしようとする余地はないと考えています。入力できます

dpkg -l linux-headers-\* linux-image-\* | grep ^ii

端末ウィンドウに。これを行うと、

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            amd64        Generic Linux kernel headers

私にはかなりの数があるので、最も古いもののいくつかを削除することができます

sudo apt-get remove linux-headers-3.8.0-18

apt-getいくつかのパッケージの依存関係を見逃して失敗した場合(無料のiノードがないためインストールできない)、dpkg代わりに直接使用することができます:

sudo dpkg --remove linux-headers-3.8.0-18

あなたの一番古い人にそれを数回しなさい、linux-headers-*そしてあなたには部屋があるはずだ。


4
これにより、他の問題が明らかになります。dpkgを実行しようとするたびに、依存関係が満たされていないことがわかります次のパッケージには依存関係が満たされていない:linux-headers-3.5.0-36-generic:Depends:linux-headers-3.5.0-36インストールされますが、それは十分なスペースがないためにインストールされないものです
ドンA

おそらく、ブートパーティションを台無しにする前に、ユーザーファイルのバックアップが適切に行われているのでしょうか?これを行うのに苦労したことはありませんが、もしそうなら、再インストールに必要なものはすべて手に入ります。もちろん、私はとにかく毎日バックアップを行います。
マーク

ブートパーティションをいじる必要がなく、依存関係の無限のサイクルから抜け出す方法があることを望んでいました。データのバックアップとやり直しがより簡単になると思われます。古いアイテムをきれいにすることの重要性を知ったので、それを習慣にします。彼らの支援に感謝します。
ドンA

どういたしまして 。。。バックアップは常に良いアイデアであり、あなたは本当にapt-getでいくつかのパッケージをアンインストールするだけで、ブートパーティションをめちゃくちゃにしていない。それはケーキでなければなりません。データをバックアップすることをお勧めします。問題がある場合(またはそうでない場合でも)にデータをバックアップすることを常にお勧めしているからです。削除するのに3分かかりましたlinux-headers-3.8.0-18
マーク

1
で再び失敗した場合はsudo dpkg --remove linux-headers-3.8.0-18、削除sudo dpkg --remove linux-headers-3.8.0-18-genericして、他のヘッダーを取得します。
セソン

17

私は使用しsudo apt-get autoremove、古いカーネルヘッダーパッケージの束を削除しました。その後に行って良い。


私の場合、apt-getは、解決する壊れたパッケージがあったという事実を優先して自動削除を行うことを拒否しました。どの破損したパッケージは、iノードの飽和が原因でした。このAskUbuntuスレッド
XavierStuvw

まあ、これはちょうど私を救った!更新後、私のxセッションは決してログインせず、再度ログインするように要求しただけで、スペースがありませんというメッセージが頻繁に表示されました。私は自分のHDをフォーマットしなければならないと思ったが、あなたのトリックはちょうど私を救った:)
user5193682

1
私はあまりにも多くのファイルを持っているので、笑、私は...これを実行することはできません
ブライアン・リーシュマン

2

私の知る限り、Linux ext *ファイルシステムのiノードの制限は約40億ですが、それ以下ではなく、膨大な量のファイルです。あなたの問題は、何かが多くのファイルを生成していることです。最初にこれを確認することを提案できます:http : //blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes これで、FSのiノードを埋めているものを見つけることができます。aptキャッシュを消去することも提案できます。

sudo apt-get clean

そして

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