Ubuntu 16.04 bozuk çekirdek paketleri apt-get ile herhangi bir şey yüklememe veya kaldırmama izin vermiyor


11

Apt-get ile yükleme, kaldırma, temizleme, güncelleme, yükseltme gibi bir şey yapmaya çalıştığımda her zaman aynı hatayla vurulur.

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)

Bu soruyu izlemeye çalıştım ama şansım yok: Apt kısmen yüklenmiş çekirdeği kaldıramıyor ve başka paketler yükleyemiyor

dpkg durum dosyasını kontrol ederek her iki paketin de yarı yüklü olduğunu görüyorum

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.

** Düzenlemeler

çekirdek paketlerini kullanıcı başına manuel olarak kaldırdıktan sonra. dz'nin talimatları paste.ubuntu.com/23487716

bu arada sudo apt-get install sırasında -f Ubuntu bir sistem hatası hakkında beni uyarmış resim açıklamasını buraya girin


Koşun ne olur sudo apt-get install -f?
negusp

Aynı sorunu
alıyorum

1
Yakın zamanda VirtualBox yüklediniz mi? Sorun çizgi run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error. vboxaddçekirdeği her eklediğinizde veya kaldırdığınızda çalıştırılır ve yükleme veya kaldırmayı her seferinde kesmeye devam eder. Exec format errorgenellikle belirtilen çalıştırılabilir dosyanın yanlış mimari için derlendiği anlamına gelir. Çıktısı nedir file /etc/kernel/postinst.d/vboxadd?
Chai T. Rex

/etc/kernel/postinst.d/vboxadd: boş
dses

Neden sudo apt-get install sshbu linux-image-extra paketlerini kaldırmaya çalıştığını merak ediyorum .
jarno

Yanıtlar:


11

Not: ChaiT.Rex'in aşağıda yorumladığı gibi, sorunu çözmek için yalnızca 4. ve 5. adımlar gereklidir.

Bazı paketleri el ile kaldırması gerekebilecek herkes için 1, 2 ve 3 numaralı adımları belgelenmiş olarak bırakıyorum. Ama önce daha kolay görünen bu https://askubuntu.com/a/490677/26246 adresini deneyin .

  1. Bunları manuel olarak kaldırın , aşağıdaki komutları yeniden yazıyorsanız dikkatli olun , root olarak çalıştırıldığında tehlikeli bir komuttur.rm -rf

    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. Dpkg durum dosyasındaki durumlarını değiştirin.

    Her ihtimale karşı yedekleme yapın

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

    İlgili girişleri bulun (beklenen çıktıya sahip komut, satır numarası farklı olacaktır):

    ~$ 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
    

    Düzenlemek için durum dosyasını açın ve paket durumunu değiştirin:

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

    dan:

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

    için:

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

    Ctrl+ okaydedin. Ctrl+ xile çıkın.

    Linux-image-extra-4.4.0-42-generic ile aynı değişiklikleri yapın.

  3. Manuel olarak linux-image-4.4.0-38-generic ve linux-image-4.4.0-42-generic'i kaldırın

    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
    

    Durumlarını 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. Bu zahmetli sanal kutu dosyasını kaldırın

    sudo rm /etc/kernel/postinst.d/vboxadd
    
  5. Dpkg durumunu güncelleme ve grub menüsü

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

Tamam Talimatlarınızı uyguladıktan sonra bir paketi başarıyla yükleyip kaldırabildim. Ancak sudo apt-get install -f
dses 16:16

@dses, cevabımı güncelledi, birinci adımdan başlayabilir.
user.dz

bu yüzden adımlarınızı takip etmek normal olarak apt kullanmamı sağladı. Sadece ek çekirdek paketi hataları alıyorum ve Ubuntu "apt install -f" sırasında sorunun düzenleme bölümünde gösterildiği gibi bir sistem hatası görüntüledi.
dses

1
@ user.dz Bence, kaldırma /etc/kernel/postinst.d/vboxaddişlemi işe yararsa, gerçekten gerekli olan budur. Bu dizindeki her şey, bir çekirdek her yüklendiğinde veya kaldırıldığında çalıştırılır ve söz konusu dosyanın Exec format errorher seferinde bu çekirdeklerin kaldırılmasını kesintiye uğratır.
Chai T. Rex

1
@ ChaiT.Rex, haklısın, başlangıçta bunu fark etmedim.
user.dz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.