ปัญหา initramfs เมื่อพื้นที่ดิสก์ไม่เพียงพอ


13

ฉันเพิ่งอัพเกรดจาก 10.10 เป็น 11.04 ในระหว่างกระบวนการอัพเกรดมันบอกว่ามีปัญหาในการตั้งค่า initramfs-tools และฉันจำเป็นต้องทำ sudo dpkg --configure -a

ดังนั้นเมื่อฉันได้ 11.04 เริ่มเป็นครั้งแรกฉันก็ทำอย่างนั้น นี่คือผลลัพธ์

Setting up initramfs-tools (0.98.8ubuntu3) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.38-8-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-2.6.38-8-generic
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools

หลังจากค้นหาไปรอบ ๆ ดูเหมือนว่านี่เป็นปัญหาของพื้นที่ไม่เพียงพอในพาร์ติชัน / boot ของฉัน มันเป็นเพียง 100 MB และไม่เคยมีปัญหามาก่อน แต่แม้จะลบทั้งหมด แต่เคอร์เนลล่าสุดฉันยังคงได้รับข้อความเดียวกัน

คำตอบ:


19

100MB เพียงพอสำหรับ 2 เมล็ดและ ramdisk เริ่มต้น คุณสามารถดูเมล็ดที่ติดตั้งปัจจุบันของคุณได้โดยการดำเนินการ:

dpkg -l 'linux-image-*' | grep '^ii'

ตัวอย่างผลลัพธ์:

ii  linux-image-2.6.35-28-generic        2.6.35-28.50                               Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-2.6.38-8-generic         2.6.38-8.42                                Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-generic                  2.6.38.8.22                                Generic Linux kernel image

หลังจากยืนยันว่าเคอร์เนลล่าสุดทำงานได้คุณสามารถลบเคอร์เนลก่อนหน้าได้ ในกรณีนี้มีเคอร์เนลที่ซ้ำซ้อนเพียงหนึ่งตัวเท่านั้น:

sudo apt-get purge linux-image-2.6.35-28-generic

ถ้าขั้นตอนนี้ไม่สมบูรณ์เพราะของทริกเกอร์ติดตั้งก่อนหน้าลองเพิ่ม-f( --fix-broken) purgeก่อน


2
ในการกำจัดเคอร์เนลเก่าแต่ละตัวมันให้ข้อผิดพลาดเดียวกับที่ฉันโพสต์ไว้ด้านบน
user3403

การใช้-f(การใช้กำลัง) ไม่ได้ช่วยอะไรเลย
Sridhar Ratnakumar

-f ไม่ได้หมายถึงการบังคับ
สตูว์

4

ฉันขอแนะนำให้ดูสิ่งที่ใช้พื้นที่ใน/boot/:

find /boot/ -type f | xargs du | sort -n

จากนั้นหากคุณพบผู้บริโภคจำนวนมากในพื้นที่คุณสามารถดูแพ็คเกจที่มาจาก:

dpkg -S /boot/some-large-file

และหากไม่จำเป็นต้องใช้แพ็คเกจนั้นอีกต่อไปคุณสามารถลบได้ อย่างไรก็ตามระวังอย่าลบสิ่งที่คุณต้องการโดยเฉพาะอย่างยิ่ง bootloader (ด้วง) และเคอร์เนลที่รันอยู่ในปัจจุบัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.