web-dev-qa-db-ja.com

壊れたapt-getでスタックし、VPSを更新したり、インストールを実行できません

私は通常、グーグルの助けを借りて問題を回避して修正することができたので、ここに初めて投稿しましたが、今回は少し漬け物になっていると思います。

私はDigitalOceanでVPSを実行しており、個人プロジェクトに使用しています。ずっと前にセットアップしていたのですが、DOによってプレインストールされていたのかもしれません。 Ubuntu 14.04を実行しているので、アップグレードすることにしました-大きな間違い。

Sudo apt-get update && Sudo apt-get upgrade実行する前にSudo do-release-upgrade

これらの1つで問題が始まった-apt-get removeは古いカーネルバージョンを削除できませんか?しかし、悲しいことに、私はLinuxの更新にそれほど熟達していないので、私は情報を完全に誤って読んでいる可能性があります。

私が読んだすべてのコマンド出力を一覧表示してみます。この混乱から抜け出すためのヒントはありがたいです。

df -hT出力:

root@web:~# df -hT

Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  487M  4.0K  487M   1% /dev
tmpfs          tmpfs     100M  344K  100M   1% /run
/dev/vda1      ext4       20G  4.7G   14G  25% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     497M     0  497M   0% /run/shm
none           tmpfs     100M     0  100M   0% /run/user

サーバーのスペースに問題がないようです

Sudo apt-get autoremoveSudo apt-get remove --purge --auto-remove出力:

root@web:~# 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-3.13.0-79-generic : Depends: initramfs-tools (>= 0.36ubuntu6) but it is not installed
                                 Recommends: grub-pc or
                                             grub-efi-AMD64 or
                                             grub-efi-ia32 or
                                             grub but it is not installed or
                                             lilo (>= 19.1) but it is not installed
 linux-image-3.13.0-83-generic : Depends: initramfs-tools (>= 0.36ubuntu6) but it is not installed
                                 Recommends: grub-pc or
                                             grub-efi-AMD64 or
                                             grub-efi-ia32 or
                                             grub but it is not installed or
                                             lilo (>= 19.1) but it is not installed
E: Unmet dependencies. Try using -f.

修正フラグ付きの自動削除:

root@web:~# Sudo apt-get -f autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  bash-completion cloud-guest-utils coreutils dpkg ifupdown
  init-system-helpers initramfs-tools initramfs-tools-bin initramfs-tools-core
  initscripts klibc-utils libalgorithm-diff-xs-Perl libapparmor-Perl libblkid1
  libdbd-mysql-Perl libdbi-Perl libfdisk1 libfile-fcntllock-Perl libgcrypt20
  libgpg-error0 libklibc liblocale-gettext-Perl libmount1 libmysqlclient20
  libncurses5 libncursesw5 libperl5.22 libselinux1 libsmartcols1
  libsub-name-Perl libsystemd0 libtext-charwidth-Perl libtext-iconv-Perl
  libtinfo5 libudev1 lsb-base Perl perl-base Perl-modules-5.22 rename
  sysvinit-utils udev util-linux
Suggested packages:
  rdnssd libclone-Perl libmldbm-Perl libnet-daemon-Perl libsql-statement-Perl
  rng-tools Perl-doc libterm-readline-gnu-Perl libterm-readline-Perl-perl
  bootlogd sash kbd console-tools util-linux-locales
The following packages will be REMOVED:
  libterm-readkey-Perl libtext-soundex-Perl linux-headers-3.13.0-79
  linux-headers-3.13.0-79-generic linux-image-3.13.0-79-generic
  linux-image-extra-3.13.0-79-generic mysql-client-5.5 Perl-modules
The following NEW packages will be installed:
  initramfs-tools initramfs-tools-core libfdisk1 libgcrypt20 libmysqlclient20
  libperl5.22 libsmartcols1 libsystemd0 Perl-modules-5.22 rename udev
The following packages will be upgraded:
  bash-completion cloud-guest-utils coreutils dpkg ifupdown
  init-system-helpers initramfs-tools-bin initscripts klibc-utils
  libalgorithm-diff-xs-Perl libapparmor-Perl libblkid1 libdbd-mysql-Perl
  libdbi-Perl libfile-fcntllock-Perl libgpg-error0 libklibc
  liblocale-gettext-Perl libmount1 libncurses5 libncursesw5 libselinux1
  libsub-name-Perl libtext-charwidth-Perl libtext-iconv-Perl libtinfo5
  libudev1 lsb-base Perl perl-base sysvinit-utils util-linux
32 upgraded, 11 newly installed, 8 to remove and 277 not upgraded.
4 not fully installed or removed.
Need to get 0 B/16.2 MB of archives.
After this operation, 279 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Extracting templates from packages: 100%
(Reading database ... 143659 files and directories currently installed.)
Removing linux-image-extra-3.13.0-79-generic (3.13.0-79.123) ...
depmod: FATAL: could not load /boot/System.map-3.13.0-79-generic: No such file or directory
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
/etc/kernel/postinst.d/initramfs-tools: 33: /etc/kernel/postinst.d/initramfs-tools: update-initramfs: not found
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 127
dpkg: error processing package linux-image-extra-3.13.0-79-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.13.0-79-generic (3.13.0-79.123) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
/etc/kernel/postrm.d/initramfs-tools: 33: /etc/kernel/postrm.d/initramfs-tools: update-initramfs: not found
run-parts: /etc/kernel/postrm.d/initramfs-tools exited with return code 127
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.13.0-79-generic.postrm line 328.
dpkg: error processing package linux-image-3.13.0-79-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 linux-image-extra-3.13.0-79-generic
 linux-image-3.13.0-79-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Sudo apt-get -f install出力:

root@web:~# Sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  bash-completion cloud-guest-utils coreutils dpkg ifupdown
  init-system-helpers initramfs-tools initramfs-tools-bin initramfs-tools-core
  initscripts klibc-utils libalgorithm-diff-xs-Perl libapparmor-Perl libblkid1
  libdbd-mysql-Perl libdbi-Perl libfdisk1 libfile-fcntllock-Perl libgcrypt20
  libgpg-error0 libklibc liblocale-gettext-Perl libmount1 libmysqlclient20
  libncurses5 libncursesw5 libperl5.22 libselinux1 libsmartcols1
  libsub-name-Perl libsystemd0 libtext-charwidth-Perl libtext-iconv-Perl
  libtinfo5 libudev1 lsb-base Perl perl-base Perl-modules-5.22 rename
  sysvinit-utils udev util-linux
Suggested packages:
  rdnssd libclone-Perl libmldbm-Perl libnet-daemon-Perl libsql-statement-Perl
  rng-tools Perl-doc libterm-readline-gnu-Perl libterm-readline-Perl-perl
  bootlogd sash kbd console-tools util-linux-locales
The following packages will be REMOVED:
  libterm-readkey-Perl libtext-soundex-Perl linux-image-3.13.0-79-generic
  linux-image-extra-3.13.0-79-generic mysql-client-5.5 Perl-modules
The following NEW packages will be installed:
  initramfs-tools initramfs-tools-core libfdisk1 libgcrypt20 libmysqlclient20
  libperl5.22 libsmartcols1 libsystemd0 Perl-modules-5.22 rename udev
The following packages will be upgraded:
  bash-completion cloud-guest-utils coreutils dpkg ifupdown
  init-system-helpers initramfs-tools-bin initscripts klibc-utils
  libalgorithm-diff-xs-Perl libapparmor-Perl libblkid1 libdbd-mysql-Perl
  libdbi-Perl libfile-fcntllock-Perl libgpg-error0 libklibc
  liblocale-gettext-Perl libmount1 libncurses5 libncursesw5 libselinux1
  libsub-name-Perl libtext-charwidth-Perl libtext-iconv-Perl libtinfo5
  libudev1 lsb-base Perl perl-base sysvinit-utils util-linux
32 upgraded, 11 newly installed, 6 to remove and 277 not upgraded.
4 not fully installed or removed.
Need to get 0 B/16.2 MB of archives.
After this operation, 202 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Extracting templates from packages: 100%
(Reading database ... 143659 files and directories currently installed.)
Removing linux-image-extra-3.13.0-79-generic (3.13.0-79.123) ...
depmod: FATAL: could not load /boot/System.map-3.13.0-79-generic: No such file or directory
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
/etc/kernel/postinst.d/initramfs-tools: 33: /etc/kernel/postinst.d/initramfs-tools: update-initramfs: not found
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 127
dpkg: error processing package linux-image-extra-3.13.0-79-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.13.0-79-generic (3.13.0-79.123) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
/etc/kernel/postrm.d/initramfs-tools: 33: /etc/kernel/postrm.d/initramfs-tools: update-initramfs: not found
run-parts: /etc/kernel/postrm.d/initramfs-tools exited with return code 127
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.13.0-79-generic.postrm line 328.
dpkg: error processing package linux-image-3.13.0-79-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 linux-image-extra-3.13.0-79-generic
 linux-image-3.13.0-79-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

ls -l /boot出力:

root@web:~# ls -l /boot
total 70752
-rw-r--r-- 1 root root  1165578 Mar 10  2016 abi-3.13.0-83-generic
-rw-r--r-- 1 root root   166221 May  9  2019 config-3.13.0-170-generic
-rw-r--r-- 1 root root   165918 Mar 10  2016 config-3.13.0-83-generic
-rw-r--r-- 1 root root   191071 Nov 13 22:00 config-4.4.0-170-generic
drwxr-xr-x 5 root root     4096 Dec 29 08:09 grub
-rw-r--r-- 1 root root 20352301 Dec 29 08:05 initrd.img-3.13.0-170-generic
-rw-r--r-- 1 root root 20176312 Dec 29 08:05 initrd.img-3.13.0-79-generic
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3418683 May  9  2019 System.map-3.13.0-170-generic
-rw------- 1 root root  3393725 Mar 10  2016 System.map-3.13.0-83-generic
-rw------- 1 root root  3913902 Nov 13 22:00 System.map-4.4.0-170-generic
-rw------- 1 root root  5909496 May 14  2019 vmlinuz-3.13.0-170-generic
-rw------- 1 root root  5827776 Mar 10  2016 vmlinuz-3.13.0-83-generic
-rw------- 1 root root  7208856 Nov 14 10:33 vmlinuz-4.4.0-170-generic

uname -a出力:

root@web:~# uname -a
Linux web 3.13.0-83-generic #127-Ubuntu SMP Fri Mar 11 00:25:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

dpkg -l | grep linux-image出力:

root@web:~# dpkg -l | grep linux-image
ii  linux-image-3.13.0-170-generic          3.13.0-170.220                                  AMD64        Signed kernel image generic
rc  linux-image-3.13.0-77-generic           3.13.0-77.121                                   AMD64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rH  linux-image-3.13.0-79-generic           3.13.0-79.123                                   AMD64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
iU  linux-image-3.13.0-83-generic           3.13.0-83.127                                   AMD64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-170-generic           4.4.0-170.199                                   AMD64        Signed kernel image generic
rc  linux-image-extra-3.13.0-77-generic     3.13.0-77.121                                   AMD64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rH  linux-image-extra-3.13.0-79-generic     3.13.0-79.123                                   AMD64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-generic                     4.4.0.170.178                                   AMD64        Generic Linux kernel image

dpkg -l | egrep -v '^ii|rc'出力:

root@web:~# dpkg -l | egrep -v '^ii|rc'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
+++-=======================================-===============================================-============-===============================================================================
rH  linux-image-3.13.0-79-generic           3.13.0-79.123                                   AMD64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rH  linux-image-3.13.0-83-generic           3.13.0-83.127                                   AMD64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-170-generic           4.4.0-170.199                                   AMD64        Signed kernel image generic
rH  linux-image-extra-3.13.0-79-generic     3.13.0-79.123                                   AMD64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
4
Pankucins

思ったより悪くないです。さて、それを修復してみましょう。

まず、本当に重要なデータからバックアップを作成します。

十分なスペースとiノードが空いていることを確認してください。

df -h;df -i

次のステップは、initramfs-toolsを再インストールすることです。コマンドupdate-initramfsが見つからないため、必要です。

Sudo apt install --reinstall initramfs-tools=0.122ubuntu8.16

これはパッケージ検索によるとxenialバージョンで、xenial-updatesにあります。

それが不可能な場合。パッケージをwgetで直接描画する

wget -c http://mirrors.kernel.org/ubuntu/pool/main/i/initramfs-tools/initramfs-tools_0.122ubuntu8.16_all.deb

dpkgでインストールします。

 Sudo dpkg -i initramfs-tools_0.122ubuntu8.16_all.deb

これがエラーなしで実行されている場合のみ。

Sudo dpkg --configure -a && Sudo apt-get -f install

確認する

dpkg -l | egrep -v '^ii|rc'

すべてのパッケージがクリーンな状態の場合。私のようである必要があります。

Desired=Unknown/Install/Remove/Purge/Hold                                                                                                                    
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend                                                                               
+++-=============================================-========================================-============-===============================================================================                                                                                                                                   

その後、アップグレードの準備をすることができます。

Sudo apt-get update && Sudo apt-get dist-upgrade

何かが配線された場合は、お知らせください。

1
nobody

Ubuntu 14.04は延長サポートメンテナンスに移行しました 2019年5月 。カーネルバージョンの更新は通常、手動で直接インストールされる特定のバージョンではなく、単一のメタパッケージによって処理されます。現在サポートされていないインストール済みバージョンをアップグレードする方法を説明するUbuntuコミュニティヘルプWikiの サポート終了のアップグレード手順 に従う必要があります。