Bộ khởi động âm lượng chỉ còn 0 byte không gian đĩa


32

Sau một bản cập nhật gần đây, tôi nhận được thông báo:

The volume boot has only 0 bytes disk space remaining

Nhưng máy tính của tôi có nhiều không gian HD miễn phí. Có ai biết làm thế nào tôi giải quyết điều này. (Nếu có liên quan, tôi đang sử dụng toàn bộ tính năng mã hóa ổ đĩa của hình ảnh cài đặt thay thế cho Ubuntu 12.04).


Nó thực sự phụ thuộc vào cách bạn cài đặt Ubuntu trên máy của bạn. Bạn có thể "sudo fdisk -l" trong thiết bị đầu cuối và kiểm tra xem có một phân vùng nhỏ gần đầy không?
Paulius ukys

4
Tốt hơn hết, vui lòng chạy lệnh 'df -H -x tmpfs -x devtmpfs' mà không có dấu ngoặc kép và dán đầu ra ở đây.
Fabricator4

Câu hỏi và câu trả lời này có liên quan đến vấn đề, và có thể giúp đỡ.
elomage

rõ ràng là một vấn đề được biết đến cho phân vùng được mã hóa. Trả lời Askubfox.com/a/230942/231504 là tuyệt vời - hoạt động với tôi. Ngoài ra, tuy nhiên, xin vui lòng làm tăng số lần người dùng bị ảnh hưởng trong bộ theo dõi ubuntu: bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/...
pestophagous

Câu trả lời:


48

Để liệt kê tất cả kernel:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

Các kết quả trông giống như thế này:

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

Đừng xóa tất cả các hạt nhân, chỉ những cái cũ!

Tiếp theo hãy loại bỏ kernel 3.16,
sudo apt-get purge linux-image-3.16.0-23-generic

và sau đó tất cả các gói không sử dụng từ hệ thống:
sudo apt-get autoclean && sudo apt-get autoremove


Tôi có một số được gọi extraquá, ví dụ cả hai linux-image-3.13.0-40-genericlinux-image-extra-3.13.0-40-generic. Tôi có thể xóa những cái với extra?
Mads Skjern 5/03/2015

Điều này cực kỳ hữu ích, nhưng không giải quyết được hoàn toàn vấn đề của tôi (thanh lọc một nhân cũ vẫn không thành công). Tôi đã phải tự xóa một số tập tin kernel cũ. Tôi tìm thấy một vài cái lớn bằng cách sử dụng find /boot/ -type f | xargs du | sort -n. Hạt nhân hiện đang chạy của tôi là 3.13.0-66-generic, vì vậy tôi cẩn thận không xóa bất cứ thứ gì liên quan đến nó, nhưng tôi đã xóa như sau : 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. Cuối cùng, chạy thanh trừng trên một kernel cũ thành công.
blong

4
nếu bạn thực sự có 0 byte miễn phí, điều này sẽ không hoạt động như @blong nói. bạn phải xóa thủ công một số tệp vmlinuz cũ trước đó, vì quá trình thanh lọc cần tạo một số tệp và nếu còn 0 byte, điều này không thành công.
pomarc

1
Làm thế nào để tôi biết hạt nhân nào là cũ? Đầu ra của tôi là 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-generic linux-image-4.13.0-43-generic linux-image-4.8.0-36 -generic
jacob

25

Nguyên nhân thực sự là hình ảnh hạt nhân cũ.
Để dọn dẹp tất cả những gì tôi phải làm là chạy một dòng:

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

Điều này tự động nhận ra hạt nhân cũ và loại bỏ chúng.


9

Có thể /bootphân vùng của bạn đã tích lũy quá nhiều phiên bản kernel trong khi thực hiện nâng cấp theo thời gian. Phân vùng này có thể tách biệt với phân vùng đĩa lớn của bạn (được gắn dưới dạng /). Bạn có thể kiểm tra /bootkhông gian phân vùng như thế này (tìm dòng có / boot):

df -h

Có một trang hay về cách loại bỏ hạt cũ .

Nói tóm lại, hãy kiểm tra phiên bản kernel hiện tại của bạn, lấy danh sách những gì đã được cài đặt và sau đó apt-get loại bỏ các phiên bản cũ. Ngoài ra còn có một lệnh "ma thuật" trên trang sẽ làm tất cả điều đó cho bạn. Nhưng sử dụng nó có nguy cơ của riêng bạn.

Hướng dẫn chi tiết hơn:

  1. Lấy phiên bản kernel hiện tại, phiên bản bạn muốn giữ :

    uname -r
    
  2. Lấy danh sách tất cả các hạt nhân được cài đặt:

    dpkg -l | grep linux-image-
    
  3. Chạy apt-get remove trên các kernel bạn muốn loại bỏ. Không phải trên cái mới nhất ! Ví dụ:

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

Ghi chú thêm:

  • dpkg -lsẽ cho bạn biết trạng thái của gói (kernel) trước tên gói. Ví dụ:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • "rc" có nghĩa rằng gói là r emoved và có c onfiguration tập tin. Những thứ này bạn không cần phải loại bỏ nữa.
    • "ii" có nghĩa là gói được đánh dấu cho tôi kết tinhtôi được kết tinh

    Dựa trên điều này, bạn chỉ có thể liệt kê các gói kernel được cài đặt:

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

Giải pháp thay thế , sử dụng công cụ GUI Ubuntu Tweak .

Cài đặt và đi đến Máy tính Janitor, kiểm tra Hệ thống-> Hạt nhân cũ và Hệ thống-> Gói không cần thiết và nhấn Clean.


3

Sử dụng tập lệnh này để loại bỏ tất cả các nhân cũ khác rời khỏi phiên bản hiện tại và trước đó (phiên bản 1 nhân cuối cùng)

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

Hoạt động hoàn hảo, ngay cả khi tôi không thể thực hiện câu trả lời của "Paradiesstaub" từ dòng lệnh.
bắt nạt

Tôi đang nhận được "Quyền bị từ chối" ...
Richard Hardy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.