dpkg: gói xử lý lỗi - Không thể sửa chữa/xóa phiên bản hình ảnh linux bằng apt và dpkg
tôi đang gặp vấn đề với đúng cách
và đpkg
cập nhật phiên bản kernel linux của tôi.
Trợ giúp sẽ được đánh giá rất cao và tôi cũng đang xem đây là cơ hội học tập linux tốt cho bản thân mình :)
Tôi đã xem xét nhiều giải pháp tương tự trực tuyến đề xuất các lệnh mà khi chạy kết thúc bằng các lỗi giống hoặc rất giống với những gì tôi đã trình bày bên dưới hoặc tôi có thể có đầy đủ /khởi động
dir nhưng tôi không tin đây là vấn đề vì nó báo cáo 50%. Dù sao thì tôi cũng không thể xóa các phiên bản kernel để giải phóng dung lượng (xem các lỗi bên dưới):
Trạng thái tôi muốn tham gia là có phiên bản kernel cập nhật nhất và có một vài phiên bản trước đó làm dự phòng.
Hiện tại $ dpkg --list 'linux-image-*'
trả về 50 phiên bản hoặc hơn (các biến thể của 5.4*
, 5.8*
và 5.11*
)
$ sudo du -sh /khởi động
337M/khởi động
$ sudo df /khởi động
Hệ thống tập tin Khối 1K Được sử dụng Có sẵn Sử dụng% Được gắn trên
/dev/nvme0n1p2 721392 328124 340804 50%/boot
Phiên bản hạt nhân hiện tại của tôi là:
$ uname -r
5.11.0-27-chung
hệ điều hành:
~$ uname -a
Linux thomas-labtop 5.11.0-27-generic #29~20.04.1-Ubuntu SMP Thứ tư ngày 11 tháng 8 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
Không có mô-đun LSB nào khả dụng.
ID nhà phân phối: Ubuntu
Mô tả: Ubuntu 20.04.3 LTS
Phát hành: 20.04
Tên mã: tiêu cự
Khi tôi chạy sudo apt --fix-break cài đặt
Tôi nhận được:
$ sudo apt --cài đặt bị hỏng
Đang đọc danh sách gói... Xong
Xây dựng cây phụ thuộc
Đang đọc thông tin trạng thái... Xong
Các gói sau sẽ bị LOẠI BỎ
linux-image-5.11.0-34-generic
0 để nâng cấp, 0 để cài đặt mới, 1 để gỡ bỏ và 5 để không nâng cấp.
2 chưa được cài đặt hoặc gỡ bỏ hoàn toàn.
Sau thao tác này, dung lượng ổ đĩa 10,2 MB sẽ được giải phóng.
Bạn có muốn tiếp tục? [Y/n] y
(Đọc cơ sở dữ liệu ... 238716 tệp và thư mục hiện được cài đặt.)
Xóa linux-image-5.11.0-34-generic (5.11.0-34.36~20.04.1) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Đang xóa /boot/initrd.img-5.11.0-34-generic
/etc/kernel/postrm.d/zz-update-grub:
Tệp nguồn `/etc/default/grub'
Tệp nguồn `/etc/default/grub.d/init-select.cfg'
Đang tạo tệp cấu hình grub ...
Đã tìm thấy hình ảnh linux: /boot/vmlinuz-5.11.0-27-generic
Đã tìm thấy hình ảnh initrd: /boot/initrd.img-5.11.0-27-generic
Đã tìm thấy hình ảnh linux: /boot/vmlinuz-5.11.0-25-generic
Đã tìm thấy hình ảnh initrd: /boot/initrd.img-5.11.0-25-generic
Đã tìm thấy hình ảnh linux: /boot/vmlinuz-5.4.0-84-generic
Đã tìm thấy hình ảnh initrd: /boot/initrd.img-5.4.0-84-generic
Thêm mục menu khởi động cho Cài đặt chương trình cơ sở UEFI
/etc/grub.d/35_fwupd: dòng 5: /usr/share/grub: Là một thư mục
run-parts: /etc/kernel/postrm.d/zz-update-grub đã thoát với mã trả về 126
dpkg: gói xử lý lỗi linux-image-5.11.0-34-generic (--remove):
đã cài đặt linux-image-5.11.0-34-generic package post-remove script sub process trả về trạng thái thoát lỗi 1
dpkg: quá nhiều lỗi, đang dừng
Đã bắt gặp các lỗi trong quá trình xử lí thông tin:
linux-image-5.11.0-34-generic
Quá trình xử lý đã bị tạm dừng do có quá nhiều lỗi.
E: Tiến trình con /usr/bin/dpkg trả về mã lỗi (1)
Tôi đã thử xóa hình ảnh bằng dpkg và tôi cũng đã thử cài đặt nó để cài đặt:
$ echo "cài đặt chung linux-image-5.11.0-34" | Sudo dpkg --set-selections
Tiếp theo đúng cách
các lệnh cuối cùng sẽ đặt nó trở lại để loại bỏ.
Tôi đã thử nhiều cách khác nhau gỡ bỏ
, thanh trừng
và Tải về
mệnh lệnh. Từ linux-image-5.11.0-34-generic
là trong một cài đặt một nửa
trạng thái Tôi hình dung rằng tôi có thể xóa hoàn toàn phần mềm này để có thể cài đặt phần mềm mới hoặc hoàn tất cài đặt hiện tại nhưng không thể ngăn chặn thành công phần mềm bị đánh dấu là đã xóa.
Tình trạng hiện tại của dpkg --list 'linux-image*'
Là
$ dpkg --list 'linux-image*'
Mong muốn=Không xác định/Cài đặt/Xóa/Thanh lọc/Giữ
| Trạng thái=Không/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Trạng thái,Err: chữ hoa=xấu)
||/ Tên Phiên bản Kiến trúc Mô tả
++++-======================================================== ==============-============-======== ===========
un linux-image <none> <none> (không có mô tả)
ii linux-image-5.11.0-25-generic 5.11.0-25.27~20.04.1 AMD64 Hình ảnh hạt nhân đã ký chung
ii linux-image-5.11.0-27-generic 5.11.0-27.29~20.04.1 AMD64 Hình ảnh hạt nhân đã ký chung
rH linux-image-5.11.0-34-generic 5.11.0-34.36~20.04.1 AMD64 Hình ảnh hạt nhân đã ký chung
un linux-image-5.4.0-42-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-53-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-54-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-56-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-58-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-59-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-72-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-73-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-74-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-77-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-80-generic <none> <none> (không có mô tả)
un linux-image-5.4.0-81-generic <none> <none> (không có mô tả)
...
...
...
thêm bên dưới
Dựa vào các dòng:
/etc/grub.d/35_fwupd: dòng 5: /usr/share/grub: Là một thư mục
run-parts: /etc/kernel/postrm.d/zz-update-grub đã thoát với mã trả về 126
Tôi đã xem xét cách giải quyết vấn đề này.Các giải pháp trực tuyến đã đề xuất xóa một số gói grub nhất định và cài đặt lại chúng. Với các vấn đề hiện tại của tôi với đúng cách
Tôi đã hạn chế làm điều này trong trường hợp nó làm cho tình trạng máy của tôi trở nên tồi tệ hơn. Ngoài ra, tôi không thể chạy bất kỳ thay đổi trạng thái nào đúng cách
dù sao đi nữa.
Dưới đây là nội dung của /etc/grub.d/35_fwupd
:
$ con mèo /etc/grub.d/35_fwupd
#! /bin/bash
# Mã định danh giấy phép SPDX: LGPL-2.1+
đặt -e
${pkgdatadir:?}
# shellcheck nguồn=/dev/null
. "$pkgdatadir/grub-mkconfig_lib"
nếu [ -f /var/lib/fwupd/uefi_capsule.conf ] &&
ls /sys/firmware/efi/efivars/fwupd-*-0abba7dc-e516-4167-bbf5-4d9d1c739416 1>/dev/null 2>&1; sau đó
nguồn /var/lib/fwupd/uefi_capsule.conf
nếu [ "${EFI_PATH}" != "" ] && [ "${ESP}" != "" ]; sau đó
echo "Thêm mục cập nhật chương trình cơ sở Linux" >&2
con mèo << EOF
menuentry 'Trình cập nhật chương trình cơ sở Linux' \$menuentry_id_option 'fwupd' {
EOF
${grub_probe:?}
chuẩn bị_grub_to_access_device '`${grub_probe} --target=device \${ESP}` | sed -e "s/^/\t/"'
con mèo << EOF
bộ nạp dây chuyền ${EFI_PATH}
}
EOF
fi
fi```