ディスクがいっぱいのときに未使用のパッケージをアンインストールする方法は?満たされていない依存関係linux-headers-4.4.0-108
をインストールし、カーネルを更新しようとしています。
Sudo apt-get autoremove
を使用しようとしましたが、ディスクがいっぱいのエラーで失敗します。
バージョン:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
ファイルシステム:
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 46M 350M 12% /run
/dev/xvda1 7.8G 5.0G 2.4G 69% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 396M 0 396M 0% /run/user/1000
Sudo apt-get -f install
を実行しようとすると同じエラーが表示されます
$ Sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
linux-headers-4.4.0-108
The following NEW packages will be installed:
linux-headers-4.4.0-108
0 upgraded, 1 newly installed, 0 to remove and 160 not upgraded.
7 not fully installed or removed.
Need to get 0 B/9927 kB of archives.
After this operation, 70.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 501671 files and directories currently installed.)
Preparing to unpack .../linux-headers-4.4.0-108_4.4.0-108.131_all.deb ...
Unpacking linux-headers-4.4.0-108 (4.4.0-108.131) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-
4.4.0-108_4.4.0-108.131_all.deb (--unpack):
error creating directory './usr/src/linux-headers-4.4.0-
108/Arch/powerpc/platforms/pasemi': 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)
Errors were encountered while processing:
/var/cache/apt/archives/linux-headers-4.4.0-108_4.4.0-108.131_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
また、より多くのスペースを作成するために削除できる未使用のカーネルがインストールされていることもわかりましたが、通常Sudo apt-get autoremove
を使用するため、正確な最善の方法はわかりません。
現在:
$ uname -r
4.4.0-93-generic
未使用:
$ dpkg --list | grep linux-image
ii linux-image-4.4.0-101-generic 4.4.0-101.124 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-103-generic 4.4.0-103.126 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-104-generic 4.4.0-104.127 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iU linux-image-4.4.0-108-generic 4.4.0-108.131 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-31-generic 4.4.0-31.50 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-78-generic 4.4.0-78.99 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-79-generic 4.4.0-79.100 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-81-generic 4.4.0-81.104 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-83-generic 4.4.0-83.106 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-87-generic 4.4.0-87.110 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-89-generic 4.4.0-89.112 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-91-generic 4.4.0-91.114 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-92-generic 4.4.0-92.115 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-93-generic 4.4.0-93.116 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-96-generic 4.4.0-96.119 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-97-generic 4.4.0-97.120 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-98-generic 4.4.0-98.121 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iU linux-image-virtual 4.4.0.108.113 AMD64 This package will always depend on the latest minimal generic kernel image.
また、カーネルを手動で削除しようとしましたが、次のエラーが表示されます。
$ Sudo apt-get purge linux-image-4.4.0-78
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'linux-image-4.4.0-78-generic' for regex 'linux-image-4.4.0-78'
Note, selecting 'linux-image-4.4.0-78-lowlatency' for regex 'linux-image-4.4.0-78'
Package 'linux-image-4.4.0-78-lowlatency' is not installed, so not removed
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
linux-headers-4.4.0-108-generic : Depends: linux-headers-4.4.0-108 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
iノードの統計:
$ df -iH
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 504k 360 504k 1% /dev
tmpfs 506k 495 506k 1% /run
/dev/xvda1 525k 514k 11k 98% /
tmpfs 506k 1 506k 1% /dev/shm
tmpfs 506k 4 506k 1% /run/lock
tmpfs 506k 16 506k 1% /sys/fs/cgroup
tmpfs 506k 4 506k 1% /run/user/1000
カーネルヘッダーも確認してください
16個のカーネルイメージがインストールされており、カーネルヘッダーのインストール中にエラーが発生しました。
問題全体がどのように1つのタイトなボールにまとめられているかを確認してください。
カーネルイメージとカーネルヘッダーの16セットが実際にインストールされている場合は、dpkgを使用して1つのパッケージを削除し、通常は残りを削除するのに十分なヘッドルームを解放します。
inodeステータスは、サーバーが多数のファイルで構成されていることを示しています。 iノードは基本的に、ファイルに関する情報を保存するファイルです。したがって、ファイルの大規模な作成/保管/不適切な処理により、iノードが使い果たされている可能性があります。
サーバーでWebサイトを実行していますか?はいの場合、作成されたセッションファイルが適切に処理されていないことを確認してください。または、大規模なファイルを生成しているスクリプトがある可能性があります。
スクリプトを使用して、各ディレクトリ内のファイル数を確認できます。
for i in /*; do echo "$i"; find "$i" |wc -l; done
上記のコマンドをシェルで入力することもできます。
したがって、ディスクはファイルでいっぱいではありませんが、iノードカウントはほぼいっぱいです。これは、ディスク上のどこかにたくさんの小さなファイルがあることを示しています。
これらの小さなファイルをすべて見つけるには、次を試してください。
cd /
Sudo du -a -d 1 --inodes . | sort -nr | head -20
最初のコマンドはルートディレクトリに変更され、2番目のコマンドはコンピューター上の20個の最大のiノード消費ディレクトリのリストを作成します。私のコンピューターでは、たとえば、「/ proc」は266672 iノードを使用します...
Iノードの大規模な消費者の軌跡をたどり、0バイトのファイルでいっぱいのディレクトリ、または非常に小さなファイルがたくさんあるディレクトリを見つけるかどうかを確認します。これが問題のある場所です。
https://unix.stackexchange.com/questions/117093/find-where-inodes-are-being-used で、および iノードの不足)でiノードに関する情報があります。