dpkg: แพ็คเกจการประมวลผลข้อผิดพลาด - ไม่สามารถซ่อมแซม / ลบเวอร์ชันอิมเมจ linux โดยใช้ apt และ dpkg
ฉันมีปัญหากับ ฉลาด
และ dpkg
อัปเดตเวอร์ชันเคอร์เนล linux ของฉัน
ความช่วยเหลือจะได้รับการชื่นชมอย่างมาก และฉันก็มองว่านี่เป็นโอกาสในการเรียนรู้ลินุกซ์ที่ดีสำหรับตัวฉันเองด้วย :)
ฉันได้ดูโซลูชันออนไลน์ที่คล้ายกันมากมายซึ่งแนะนำคำสั่งซึ่งเมื่อเรียกใช้จะจบลงด้วยข้อผิดพลาดเดียวกันหรือคล้ายกันมากกับสิ่งที่ฉันแสดงด้านล่างหรือที่ฉันอาจมีแบบเต็ม /บูต
ผู้อำนวยการ แต่ฉันไม่เชื่อว่านี่เป็นปัญหาเนื่องจากมีการรายงาน 50% ฉันไม่สามารถลบเวอร์ชันเคอร์เนลเพื่อเพิ่มพื้นที่ว่างได้ (ดูข้อผิดพลาดด้านล่าง):
สถานะที่ฉันต้องการได้รับคือการมีเคอร์เนลเวอร์ชันล่าสุดและมีเวอร์ชันก่อนหน้าสองสามเวอร์ชันเป็นทางเลือก
ปัจจุบัน $ dpkg --list 'linux-image-*'
ส่งคืนเวอร์ชัน 50 หรือมากกว่านั้น (รูปแบบของ 5.4*
, 5.8*
และ 5.11*
)
$ sudo du -sh /boot
337M /คัน
$ sudo df /boot
ระบบไฟล์ 1K-blocks ใช้อยู่ ใช้% Mounted on
/dev/nvme0n1p2 721392 328124 340804 50% /บูต
เวอร์ชันเคอร์เนลปัจจุบันของฉันคือ:
$ uname -r
5.11.0-27-ทั่วไป
ระบบปฏิบัติการ:
~$ uname -a
Linux thomas-labtop 5.11.0-27-generic #29~20.04.1-Ubuntu SMP วันพุธที่ 11 ส.ค. 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$lsb_release -a
ไม่มีโมดูล LSB
รหัสผู้จัดจำหน่าย: Ubuntu
คำอธิบาย: Ubuntu 20.04.3 LTS
เผยแพร่: 20.04
ชื่อรหัส: โฟกัส
เมื่อฉันวิ่ง sudo apt --fix-breaked ติดตั้ง
ฉันได้รับ:
$ sudo apt --fix-breaked ติดตั้ง
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา
กำลังอ่านข้อมูลสถานะ...
แพ็คเกจต่อไปนี้จะถูกลบออก
linux-image-5.11.0-34-ทั่วไป
0 เพื่ออัปเกรด 0 เพื่อติดตั้งใหม่ 1 เพื่อลบและ 5 เพื่อไม่อัปเกรด
2 ไม่ได้ติดตั้งหรือถอดออกอย่างสมบูรณ์
หลังจากการดำเนินการนี้ พื้นที่ดิสก์ 10.2 MB จะถูกทำให้ว่าง
คุณต้องการดำเนินการต่อหรือไม่ [ใช่/ไม่ใช่] ย
(กำลังอ่านฐานข้อมูล ... 238716 ไฟล์และไดเร็กทอรีที่ติดตั้งอยู่ในขณะนี้)
การลบ linux-image-5.11.0-34-generic (5.11.0-34.36~20.04.1) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: การลบ /boot/initrd.img-5.11.0-34-generic
/etc/kernel/postrm.d/zz-update-grub:
การจัดหาไฟล์ `/etc/default/grub'
การจัดหาไฟล์ `/etc/default/grub.d/init-select.cfg'
กำลังสร้างไฟล์การกำหนดค่าด้วง ...
พบอิมเมจ linux: /boot/vmlinuz-5.11.0-27-generic
พบภาพ initrd: /boot/initrd.img-5.11.0-27-generic
พบอิมเมจ linux: /boot/vmlinuz-5.11.0-25-generic
พบภาพเริ่มต้น: /boot/initrd.img-5.11.0-25-generic
พบอิมเมจ linux: /boot/vmlinuz-5.4.0-84-generic
พบภาพ initrd: /boot/initrd.img-5.4.0-84-generic
การเพิ่มรายการเมนูบู๊ตสำหรับการตั้งค่าเฟิร์มแวร์ UEFI
/etc/grub.d/35_fwupd: บรรทัดที่ 5: /usr/share/grub: เป็นไดเรกทอรี
ส่วนเรียกใช้: /etc/kernel/postrm.d/zz-update-grub ออกด้วยรหัสส่งคืน 126
dpkg: แพคเกจการประมวลผลข้อผิดพลาด linux-image-5.11.0-34-generic (--remove):
ติดตั้ง linux-image-5.11.0-34-generic package post-removal script subprocess ส่งคืนสถานะการออกจากข้อผิดพลาด 1
dpkg: มีข้อผิดพลาดมากเกินไป หยุดทำงาน
พบข้อผิดพลาดขณะประมวลผล:
linux-image-5.11.0-34-ทั่วไป
การประมวลผลหยุดลงเนื่องจากมีข้อผิดพลาดมากเกินไป
E: กระบวนการย่อย /usr/bin/dpkg ส่งคืนรหัสข้อผิดพลาด (1)
ฉันได้ลองล้างอิมเมจโดยใช้ dpkg และได้ลองตั้งค่าให้ติดตั้งด้วย:
$ echo "การติดตั้ง linux-image-5.11.0-34-generic" | sudo dpkg --set-selections
ภายหลัง ฉลาด
คำสั่งจบลงด้วยการตั้งค่ากลับเป็นลบต่อไป
ฉันได้พยายามต่างๆ ลบ
, ล้าง
และ ติดตั้ง
คำสั่ง เนื่องจาก linux-image-5.11.0-34-ทั่วไป
อยู่ใน ติดตั้งครึ่งหนึ่ง
ระบุว่าฉันคิดว่าฉันสามารถลบออกได้ทั้งหมดเพื่อที่ฉันจะได้ติดตั้งใหม่หรือเสร็จสิ้นการติดตั้งปัจจุบัน แต่ไม่สามารถป้องกันไม่ให้ถูกทำเครื่องหมายว่าลบออกได้สำเร็จ
สถานะปัจจุบันของ dpkg --list 'linux-image*'
เป็น
$ dpkg --list 'linux-image*'
Desired=Unknown/Install/Remove/Purge/Hold
| สถานะ=ไม่/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (สถานะ,Err: ตัวพิมพ์ใหญ่=ไม่ดี)
||/ ชื่อ เวอร์ชัน สถาปัตยกรรม คำอธิบาย
+-======================================-======= =============-============-====================== ===========
un linux-image <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
ii linux-image-5.11.0-25-generic 5.11.0-25.27~20.04.1 amd64 อิมเมจเคอร์เนลที่ลงชื่อทั่วไป
ii linux-image-5.11.0-27-generic 5.11.0-27.29~20.04.1 amd64 อิมเมจเคอร์เนลที่ลงชื่อทั่วไป
rH linux-image-5.11.0-34-generic 5.11.0-34.36~20.04.1 amd64 อิมเมจเคอร์เนลที่ลงนามทั่วไป
un linux-image-5.4.0-42-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-53-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-54-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-56-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-58-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-59-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-72-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-73-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-74-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-77-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-80-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
un linux-image-5.4.0-81-generic <ไม่มี> <ไม่มี> (ไม่มีคำอธิบาย)
...
...
...
เพิ่มเติมด้านล่าง
ขึ้นอยู่กับบรรทัด:
/etc/grub.d/35_fwupd: บรรทัดที่ 5: /usr/share/grub: เป็นไดเรกทอรี
ส่วนเรียกใช้: /etc/kernel/postrm.d/zz-update-grub ออกด้วยรหัสส่งคืน 126
ฉันดูวิธีแก้ปัญหานี้โซลูชันออนไลน์ได้แนะนำให้ลบแพ็คเกจด้วงบางตัวออกและติดตั้งใหม่ จากปัญหาปัจจุบันของฉันกับ ฉลาด
ฉันละเว้นจากการทำเช่นนี้ในกรณีที่ทำให้สถานะของเครื่องของฉันแย่ลงไปอีก นอกจากนี้ ฉันไม่สามารถเรียกใช้การเปลี่ยนแปลงสถานะใดๆ ฉลาด
สั่งยังไงก็ได้
ด้านล่างนี้เป็นเนื้อหาของ /etc/grub.d/35_fwupd
:
$cat /etc/grub.d/35_fwupd
#! /ถัง/ทุบตี
# ตัวระบุใบอนุญาต SPDX: LGPL-2.1+
ตั้ง -e
${pkgdatadir:?}
# shellcheck source=/dev/null
. "$pkgdatadir/grub-mkconfig_lib"
ถ้า [ -f /var/lib/fwupd/uefi_capsule.conf ] &&
ls /sys/firmware/efi/efivars/fwupd-*-0abba7dc-e516-4167-bbf5-4d9d1c739416 1>/dev/null 2>&1; แล้ว
ที่มา /var/lib/fwupd/uefi_capsule.conf
ถ้า [ "${EFI_PATH}" !=" "" ] && [ "${ESP}" !="" ]; แล้ว
echo "การเพิ่มรายการ Linux Firmware Updater" >&2
แมว << EOF
เมนูรายการ 'Linux Firmware Updater' \$menuentry_id_option 'fwupd' {
อฟ
${grub_probe:?}
เตรียม_grub_to_access_device '`${grub_probe} --target=device \${ESP}` | sed -e "s/^/\t/"'
แมว << EOF
ตัวโหลดโซ่ ${EFI_PATH}
}
อฟ
ไฟ
ฟิ```