Các gói kernel bị hỏng Ubuntu 16.04 sẽ không cho phép tôi cài đặt hoặc gỡ bỏ bất cứ thứ gì với apt-get


11

Bất cứ khi nào tôi cố gắng làm bất cứ điều gì với apt-get cho dù đó là cài đặt, gỡ bỏ, thanh lọc, cập nhật, nâng cấp, tôi luôn gặp phải lỗi tương tự.

ses@ses-VirtualBox:~/Downloads$ sudo apt-get install ssh
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-45 linux-headers-4.4.0-45-generic linux-image-4.4.0-45-generic linux-image-extra-4.4.0-45-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
Suggested packages:
  ssh-askpass rssh molly-guard monkeysphere
The following packages will be REMOVED:
  linux-image-extra-4.4.0-38-generic linux-image-extra-4.4.0-42-generic
The following NEW packages will be installed:
  ncurses-term openssh-server openssh-sftp-server ssh ssh-import-id
0 upgraded, 5 newly installed, 2 to remove and 0 not upgraded.
10 not fully installed or removed.
Need to get 0 B/643 kB of archives.
After this operation, 320 MB disk space will be freed.
Do you want to continue? [Y/n] y
Preconfiguring packages ...
(Reading database ... 308434 files and directories currently installed.)
Removing linux-image-extra-4.4.0-38-generic (4.4.0-38.57) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/vboxadd 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error
run-parts: /etc/kernel/postinst.d/vboxadd exited with return code 1
dpkg: error processing package linux-image-extra-4.4.0-38-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-extra-4.4.0-42-generic (4.4.0-42.62) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/vboxadd 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error
run-parts: /etc/kernel/postinst.d/vboxadd exited with return code 1
dpkg: error processing package linux-image-extra-4.4.0-42-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 linux-image-extra-4.4.0-38-generic
 linux-image-extra-4.4.0-42-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Tôi đã thử làm theo câu hỏi này nhưng không may mắn: Apt không xóa được kernel đã cài đặt một phần và không thể cài đặt bất kỳ gói nào khác

kiểm tra tệp trạng thái dpkg Tôi thấy rằng cả hai gói đều được cài đặt một nửa

Package: linux-image-extra-4.4.0-38-generic
Status: deinstall ok half-installed
Priority: optional
Section: kernel
Installed-Size: 158607
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Source: linux
Version: 4.4.0-38.57
Depends: linux-image-4.4.0-38-generic, crda | wireless-crda
Description: Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
 This package contains the Linux kernel extra modules for version 4.4.0 on
 64 bit x86 SMP.
 .
 Also includes the corresponding System.map file, the modules built by the
 packager, and scripts that try to ensure that the system is not left in an
 unbootable state after an update.
 .
 Supports Generic processors.
 .
 Geared toward desktop and server systems.
 .
 You likely do not want to install this package directly. Instead, install
 the linux-generic meta-package, which will ensure that upgrades work
 correctly, and that supporting packages are also installed.

** Chỉnh sửa

sau khi xóa các gói kernel theo cách thủ công theo hướng dẫn của user.dz, dán.ubfox.com / 23487716

Trong khi đó, trong sudo apt-get install -f Ubuntu đã cảnh báo tôi về một lỗi hệ thống nhập mô tả hình ảnh ở đây


Điều gì xảy ra khi bạn chạy sudo apt-get install -f?
negusp

Tôi gặp vấn đề tương tự
ống

1
Gần đây bạn đã cài đặt VirtualBox? Vấn đề là dòng run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error. vboxaddsẽ được chạy mỗi khi bạn thêm hoặc xóa kernel và sẽ tiếp tục làm gián đoạn quá trình cài đặt hoặc gỡ bỏ mỗi lần. Exec format errorthường có nghĩa là tệp thực thi được đề cập đã được biên dịch cho kiến ​​trúc sai. Đầu ra của là file /etc/kernel/postinst.d/vboxaddgì?
Chai T. Rex

/etc/kernel/postinst.d/vboxadd: trống
ống

Tôi tự hỏi tại sao sudo apt-get install sshcố gắng loại bỏ các gói linux-image-Extra.
jarno

Câu trả lời:


11

Lưu ý: Như ChaiT.Rex đã nhận xét bên dưới, chỉ cần các bước 4 & 5 để khắc phục sự cố.

Tôi để lại các bước 1,2 & 3 cho bất kỳ ai có thể cần xóa thủ công một số gói. Nhưng hãy thử đầu tiên https://askubfox.com/a/490677/26246 này có vẻ dễ dàng hơn.

  1. Loại bỏ chúng một cách thủ công, hãy cẩn thận nếu bạn đang gõ lại các lệnh dưới đây rm -rflà một lệnh nguy hiểm khi nó chạy bằng root.

    sudo rm -rf /lib/modules/4.4.0-38-generic /lib/modules/4.4.0-42-generic
    sudo rm -rf /usr/share/doc/linux-image-extra-4.4.0-38-generic /usr/share/doc/linux-image-extra-4.4.0-42-generic
    sudo rm /var/lib/dpkg/info/linux-image-extra-4.4.0-38-generic* /var/lib/dpkg/info/linux-image-extra-4.4.0-42-generic*
    
  2. Thay đổi trạng thái của họ trong tệp trạng thái dpkg.

    Tạo bản sao lưu chỉ trong trường hợp

    sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup0
    

    Tìm các mục liên quan (lệnh có đầu ra dự kiến, số dòng sẽ khác nhau):

    ~$ grep -n -e "linux-image-extra-4.4.0-38-generic" -e "linux-image-extra-4.4.0-42-generic" /var/lib/dpkg/status
    18488:Package: linux-image-extra-4.4.0-42-generic
    77123:Package: linux-image-extra-4.4.0-38-generic
    

    Mở tệp trạng thái để chỉnh sửa và thay đổi trạng thái gói:

    sudo nano +18488 /var/lib/dpkg/status
    

    từ:

    Package: linux-image-extra-4.4.0-38-generic
    Status: install ok installed
    

    đến:

    Package: linux-image-extra-4.4.0-38-generic
    Status: deinstall ok config-files
    

    Ctrl+ ođể tiết kiệm. Ctrl+ xđể thoát.

    Thực hiện các thay đổi tương tự với linux-image-Extra-4.4.0-42-generic.

  3. Xóa thủ công linux-image-4.4.0-38-generic & linux-image-4.4.0-42-generic

    sudo rm -f *4.4.0-38-generic *4.4.0-42-generic
    sudo rm -rf /usr/share/doc/linux-image-4.4.0-38-generic /usr/share/doc/linux-image-4.4.0-42-generic
    

    Giống như trước khi chỉnh sửa trạng thái của họ thành deinstall ok config-files

    $ grep -n -e "Package: linux-image-4.4.0-38-generic" -e "Package: linux-image-4.4.0-42-generic" /var/lib/dpkg/status
    61217:Package: linux-image-4.4.0-38-generic
    98051:Package: linux-image-4.4.0-42-generic
    
  4. Loại bỏ tập tin hộp ảo rắc rối đó

    sudo rm /etc/kernel/postinst.d/vboxadd
    
  5. Cập nhật trạng thái dpkg & menu grub

    sudo dpkg --audit
    sudo apt-get install -f
    sudo update-grub
    

Ok tôi đã có thể cài đặt và gỡ bỏ gói thành công sau khi làm theo hướng dẫn của bạn. Tuy nhiên, tôi nhận được các lỗi sau được liệt kê ở trên sau khi chạy sudo apt-get install -f
dodes

@dses, đã cập nhật câu trả lời của tôi, có thể bắt đầu lại từ bước một.
user.dz

vì vậy một lần nữa làm theo các bước của bạn đã cho phép tôi sử dụng apt bình thường. Có một vấn đề là bây giờ tôi gặp phải lỗi gói hạt nhân bổ sung và Ubuntu đã hiển thị lỗi hệ thống trong khi "apt install -f" như được hiển thị trong phần chỉnh sửa của câu hỏi.
ống

1
@ user.dz Tôi nghĩ rằng, nếu gỡ bỏ /etc/kernel/postinst.d/vboxaddkhông hoạt động, đó là tất cả những gì thực sự cần thiết. Mọi thứ trong thư mục đó được chạy mỗi khi kernel được cài đặt hoặc gỡ bỏ và tập tin đó Exec format errorbị gián đoạn trong việc loại bỏ các kernel đó mỗi lần.
Chai T. Rex

1
@ ChaiT.Rex, bạn đã đúng, tôi đã không nhận thấy điều đó ngay từ đầu.
user.dz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.