우분투 16.04 깨진 커널 패키지는 apt-get으로 아무것도 설치하거나 제거 할 수 없습니다.


11

설치, 제거, 제거, 업데이트, 업그레이드 여부에 관계없이 apt-get로 무엇이든하려고 할 때마다 항상 같은 오류가 발생합니다.

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)

나는이 질문에 따라 노력했지만 운이 없다 : Apt가 부분적으로 설치된 커널을 제거하지 못하고 다른 패키지를 설치할 수 없다

dpkg 상태 파일 확인 두 패키지가 모두 절반 설치되어 있음을 확인했습니다.

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.

** 편집

user.dz의 지침에 따라 커널 패키지를 수동으로 제거한 후 paste.ubuntu.com/23487716

그동안 sudo apt-get install -f 동안 우분투는 시스템 오류에 대해 경고했습니다. 여기에 이미지 설명을 입력하십시오


달리면 어떻게됩니까 sudo apt-get install -f?
negusp

같은 문제가 발생합니다
dses

1
최근에 VirtualBox를 설치 했습니까? 문제는 선 run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error이다. vboxadd커널을 추가 또는 제거 할 때마다 실행되며 매번 설치 또는 제거를 계속 중단합니다. Exec format error일반적으로 언급 된 실행 파일이 잘못된 아키텍처 용으로 컴파일되었음을 의미합니다. 출력은 file /etc/kernel/postinst.d/vboxadd무엇입니까?
차이 티 렉스

/etc/kernel/postinst.d/vboxadd : 비어 있음
dses

sudo apt-get install sshlinux-image-extra 패키지를 제거하려고 하는지 궁금 합니다.
jarno

답변:


11

참고 : ChaiT.Rex가 아래에 설명했듯이 문제를 해결하려면 4 단계와 5 단계 만 필요합니다.

일부 패키지를 수동으로 제거해야하는 사람을 위해 1, 2, 3 단계를 문서화 한 상태로 둡니다. 그러나 먼저이 /ubuntu//a/490677/26246 을 사용해보십시오 .

  1. , 수동으로 제거 주의 는 명령 아래가 다시 입력하는 경우 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 상태 파일에서 상태를 변경하십시오.

    만일을 대비하여 백업하십시오

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

    관련 항목을 찾습니다 (예상 출력 명령, 줄 번호가 다름).

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

    패키지 상태를 편집하고 변경하기 위해 상태 파일을 엽니 다.

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

    에서:

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

    에:

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

    Ctrl+ o저장합니다. Ctrl+ x종료합니다.

    linux-image-extra-4.4.0-42-generic과 동일하게 변경하십시오.

  3. 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
    

    상태를 다음으로 수정하기 전과 동일 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. 그 귀찮은 virtualbox 파일을 제거하십시오

    sudo rm /etc/kernel/postinst.d/vboxadd
    
  5. dpkg 상태 및 그럽 메뉴 업데이트

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

확인 지시에 따라 패키지를 성공적으로 설치하고 제거 할 수있었습니다. 그러나 나는 실행 후 위에 나열된 오류에 따라 얻을 sudo는 apt-get을 -f 설치
dses

내 대답을 업데이트 한 @ dses는 1 단계부터 시작할 수 있습니다.
user.dz

다시 한 번 당신의 단계를 따르면 정상적으로 apt를 사용할 수있었습니다. 추가 커널 패키지 오류가 발생하는 문제가 있으며 Ubuntu는 "apt install -f"중에 ​​시스템 편집 오류를 질문의 편집 섹션에 표시된대로 표시했습니다.
dses

1
@ user.dz 제거 /etc/kernel/postinst.d/vboxadd가 작동하면 이것이 전부 필요한 것이라고 생각합니다. 해당 디렉토리의 모든 것은 커널이 설치 또는 제거 될 때마다 실행되며 해당 파일을 Exec format error인터럽트하면 매번 해당 커널 제거가 중단됩니다.
차이 티 렉스

1
@ ChaiT.Rex, 당신 말이 맞아요.
user.dz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.