“ การบูตโวลุ่มมีพื้นที่ดิสก์เหลือเพียง 0 ไบต์”


32

หลังจากอัปเดตล่าสุดฉันได้รับการแจ้งเตือนว่า:

The volume boot has only 0 bytes disk space remaining

แต่คอมพิวเตอร์ของฉันมีพื้นที่ HD มากมายฟรี ไม่มีใครรู้ว่าฉันจะแก้ไขปัญหานี้ได้อย่างไร (ถ้ามันเกี่ยวข้องกันฉันใช้คุณสมบัติการเข้ารหัสดิสก์ทั้งหมดของอิมเมจการติดตั้งสำรองสำหรับ Ubuntu 12.04)


มันขึ้นอยู่กับว่าคุณติดตั้ง Ubuntu บนเครื่องของคุณอย่างไร คุณสามารถ "sudo fdisk -l" ใน terminal และตรวจสอบว่ามีพาร์ทิชันขนาดเล็กซึ่งเกือบเต็มหรือไม่
Paulius Šukys

4
ยังดีกว่าโปรดเรียกใช้คำสั่ง 'df -H -x tmpfs -x devtmpfs' โดยไม่ต้องใส่เครื่องหมายคำพูดและวางผลลัพธ์ที่นี่
fabricator4

คำถามและคำตอบนี้เกี่ยวข้องกับปัญหาและอาจช่วยได้
elomage

เห็นได้ชัดว่าเป็นปัญหาที่ทราบกันดีสำหรับพาร์ติชันที่เข้ารหัส คำตอบaskubuntu.com/a/230942/231504ยอดเยี่ยมมาก - ใช้ได้สำหรับฉัน นอกจากนี้โปรดเพิ่มจำนวนผู้ใช้ที่ได้รับผลกระทบในตัวติดตาม ubuntu: bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/ …
pestophagous

คำตอบ:


48

ในการแสดงรายการเคอร์เนลทั้งหมด:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

ผลลัพธ์มีลักษณะดังนี้:

linux-image-3.19.0-7-generic 
linux-image-3.18.0-13-generic  
linux-image-3.16.0-23-generic

อย่าลบเมล็ดทั้งหมดเพียงอันเดียวเท่านั้น!

ต่อไปเราจะลบเคอร์เนล 3.16
sudo apt-get purge linux-image-3.16.0-23-generic

และแพ็กเกจที่ไม่ได้ใช้ทั้งหมดจากระบบ:
sudo apt-get autoclean && sudo apt-get autoremove


ฉันมีบางคนเรียกextraเกินไปเช่นทั้งสองและlinux-image-3.13.0-40-generic linux-image-extra-3.13.0-40-genericฉันสามารถลบรายการที่มีextraหรือไม่
Mads Skjern

สิ่งนี้มีประโยชน์อย่างมาก แต่ก็ไม่ได้แก้ปัญหาของฉันได้อย่างสมบูรณ์ (การล้างเคอร์เนลเก่ายังคงล้มเหลว) ฉันต้องลบไฟล์เคอร์เนลเก่าด้วยตนเอง find /boot/ -type f | xargs du | sort -nผมพบว่าคนที่มีขนาดใหญ่ไม่กี่ใช้ ฉันเคอร์เนลที่ทำงานอยู่ในขณะนี้3.13.0-66-genericดังนั้นฉันระมัดระวังไม่ให้อะไรที่เกี่ยวข้องกับการลบนั้น sudo rm /boot/initrd.img-3.13.0-63-generic /boot/initrd.img-3.13.0-65-generic /boot/vmlinuz-3.13.0-65-generic /boot/vmlinuz-3.13.0-63-genericแต่ฉันไม่เอาต่อไปนี้: ในที่สุดการล้างข้อมูลบนเคอร์เนลเก่าก็ประสบความสำเร็จ
blong

4
หากคุณมีอิสระ 0 ไบต์สิ่งนี้จะไม่ทำงานอย่างที่ @blong พูด คุณต้องลบไฟล์ vmlinuz เก่าด้วยตัวเองก่อนเนื่องจากกระบวนการล้างข้อมูลจำเป็นต้องสร้างไฟล์บางไฟล์และหากเหลือ 0 ไบต์สิ่งนี้จะล้มเหลว
pomarc

1
ฉันจะรู้ได้อย่างไรว่าข้าวเมล็ดเก่า ผลลัพธ์ของฉันคือ linux-image-4.10.0-42-generic linux-image-4.13.0-26-generic linux-image-4.13.0-32-generic-linux-image-4.13.0-37-generic linux-image -4.13.0-38-generic linux-image-4.13.0-39-generic linux-image-4.13.0-41-linux-image-4.13.0-43-linux-image-4.8.0-36 -generic
jacob

25

สาเหตุเป็นภาพเคอร์เนลเก่าจริง ๆ
เพื่อล้างสิ่งที่ฉันต้องทำคือใช้หนึ่งบรรทัด:

sudo apt-get autoclean && sudo apt-get autoremove

สิ่งนี้จะจดจำเมล็ดเก่าโดยอัตโนมัติและนำออก


9

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

df -h

มีหน้าดีบนเป็นวิธีการเอาเมล็ดเก่า

ในระยะสั้นตรวจสอบรุ่นเคอร์เนลปัจจุบันของคุณรับรายการสิ่งที่ติดตั้งแล้ว apt-get ลบเวอร์ชันเก่า นอกจากนี้ยังมีคำสั่ง "ซับเวทย์" เวทมนต์เดียวบนหน้าเว็บที่จะทำทุกอย่างให้คุณ แต่ใช้ความเสี่ยงของคุณเอง

คำแนะนำในรายละเอียดเพิ่มเติม:

  1. รับเวอร์ชันเคอร์เนลปัจจุบันซึ่งเป็นเวอร์ชันที่คุณต้องการเก็บไว้ :

    uname -r
    
  2. รับรายการของเมล็ดทั้งหมดที่ติดตั้ง:

    dpkg -l | grep linux-image-
    
  3. เรียกใช้ apt-get remove บนเมล็ดที่คุณต้องการลบ ไม่ได้อยู่ในล่าสุด ! ตัวอย่างเช่น:

    sudo apt-get remove linux-image-2.6.32-22-generic
    

หมายเหตุเพิ่มเติม:

  • dpkg -lจะบอกสถานะของแพ็คเกจ (เคอร์เนล)ก่อนชื่อแพ็คเกจ ตัวอย่างเช่น:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • "RC" หมายความว่าแพคเกจถูกR emoved และมี onfiguration ไฟล์ สิ่งเหล่านี้คุณไม่จำเป็นต้องลบอีกต่อไป
    • "สอง" หมายความว่าแพคเกจถูกทำเครื่องหมายสำหรับฉัน nstallation และฉัน nstalled

    จากนี้คุณสามารถแสดงรายการเฉพาะแพ็คเกจเคอร์เนลที่ติดตั้ง:

    dpkg -l | grep "ii.*linux-image-"
    

วิธีการแก้ปัญหาทางเลือกโดยใช้เครื่องมือ GUI Ubuntu Tweak

ติดตั้งและไปที่ Computer Janitor ตรวจสอบ System-> Kernel เก่าและ System-> Unneeded แพ็คเกจและกด Clean


3

ใช้สคริปต์นี้เพื่อที่จะลบเมล็ดเก่าอื่น ๆ ทั้งหมดออกจากรุ่นปัจจุบันและก่อนหน้า (รุ่นเคอร์เนล 1 ตัวสุดท้าย)

KERNELMAGES=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-image/g'`

KERNELHEADERS=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-headers/g'`

for PURGEKERNEL in `echo $KERNELMAGES $KERNELHEADERS`; do

apt-get autoremove -y && apt-get purge $PURGEKERNEL -y

done

ทำงานได้สมบูรณ์แบบแม้ในขณะที่ฉันไม่สามารถทำคำตอบ "Paradiesstaub" จากบรรทัดคำสั่ง
bulltorious

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