Xóa hạt nhân mới / khởi động đầy đủ


8

Chúng tôi đã có một số máy chủ Ubuntu 16.04. unattended-upgradesđược tự động kích hoạt kể từ 16.04 và phân vùng khởi động nằm trên một phân vùng riêng. Do cập nhật bảo mật tự động, phân vùng khởi động sắp hết dung lượng với các nhân mới.

Chúng ta không thể khởi động lại hệ thống để máy vẫn sử dụng kernel áp chót.

Những hạt nhân nào tôi nên loại bỏ? Tất cả trừ dòng điện, cũ nhất và mới nhất?

Các bạn có một số khuyến nghị?

Tôi cũng đã nhận thấy rằng hạt nhân mới nhất có trạng thái "Cấu hình một nửa". Hạt nhân này có thể không hoạt động vì vậy tôi nên loại bỏ hạt nhân này và sử dụng hạt nhân cũ hơn.

Đầu ra của dpkg -l | grep linux image:

    ii  linux-image-4.4.0-21-generic --> old kernel
    ii  linux-image-4.4.0-34-generic --> current kernel
    ii  linux-image-4.4.0-36-generic --> new kernel
    ii  linux-image-4.4.0-38-generic --> new kernel
    ii  linux-image-4.4.0-42-generic --> new kernel
    ii  linux-image-4.4.0-45-generic --> new kernel
    ii  linux-image-4.4.0-47-generic --> new kernel
    ii  linux-image-4.4.0-51-generic --> new kernel
    ii  linux-image-4.4.0-53-generic --> new kernel
    iF  linux-image-4.4.0-57-generic --> new kernel

Câu trả lời:


7

Để lọc kernel cũ, bạn có thể sử dụng purge-old-kernelscông cụ dòng lệnh.

Chương trình này sẽ loại bỏ các gói kernel và tiêu đề cũ khỏi hệ thống, giải phóng không gian đĩa. Nó sẽ không bao giờ loại bỏ kernel hiện đang chạy. Theo mặc định, nó sẽ giữ ít nhất 2 hạt nhân mới nhất, nhưng người dùng có thể ghi đè giá trị đó bằng tham số --keep. Bất kỳ tham số bổ sung sẽ được chuyển trực tiếp đếnapt-get

Để cài đặt purge-old-kernels, chạy:

sudo apt install byobu

hoặc là

sudo apt install bikeshed

Để giữ nkernel chạy mới nhất :

sudo purge-old-kernels --keep n

e, g: n = 2

sudo purge-old-kernels --keep 2

Cập nhật grub:

sudo update-grub

2
byobucó lẽ là gói bạn muốn cho 16,04 Xenuial: purge-old-kernelsđã chuyển từ bikeshedđến byobukhoảng giữa Trusty và Xenial, mặc dù bikeshedhiện nay khuyến cáo byobu, do đó bạn vẫn sẽ nhận được các chương trình, trừ khi bạn không có cài đặt-khuyến cáo.
Wolfgang

4

Đối với Ubuntu, Grub2 tự động hiển thị kernel mới nhất và ẩn các kernel cũ hơn. Nếu bạn muốn nhìn thấy chúng, bạn có thể nhấn Shift trong khi khởi động.

Vì vậy, trước khi xóa các kernel cũ hơn, hãy khởi động với kernel có sẵn mới nhất (grub2 tải nó theo mặc định khi khởi động). Để kiểm tra kernel nào bạn đang sử dụng, bạn có thể sử dụng lệnh:

uname -r

Khuyến cáo là giữ ít nhất hai hoặc tốt nhất là ba nhân kể cả mới nhất. Lý do là bạn sẽ có ít nhất một / hai hạt nhân khác để khởi động nếu điều đó xảy ra là bạn không thể khởi động với kernel mới nhất.

Để loại bỏ các nhân cũ hơn, hãy mở terminal và kiểm tra kernel hiện tại của bạn:

uname -r 

Sau đó, để liệt kê tất cả các hạt nhân được cài đặt trên hệ thống của bạn.

dpkg --list | grep linux-image 

Tìm tất cả các hạt nhân thấp hơn hạt nhân hiện tại của bạn. Chạy các lệnh dưới đây để loại bỏ kernel bạn đã chọn:

sudo apt-get purge linux-image-x.x.x.x-generic 

Cuối cùng, chạy các lệnh bên dưới để cập nhật grub2

sudo update-grub2 

Và khởi động lại hệ thống của bạn.


1
Từ câu hỏi: "chúng tôi không thể khởi động lại hệ thống" . Câu trả lời của bạn yêu cầu làm như vậy hai lần.
Các cuộc đua nhẹ nhàng trong quỹ đạo

3

apt-get autoremove, chạy định kỳ, sẽ có thể giúp bạn hoàn thành những gì bạn muốn. Hạt nhân đang chạy, hạt nhân trước và hai hạt nhân mới nhất là đủ.


1
Đưa ra danh sách các kernel đã cài đặt và thực tế là kernel đang chạy đã cũ, tôi sẽ nói "kernel đang chạy, kernel trước và hai kernel mới nhất".
Stephen Kitt

2

Khởi động một trong các kernel trước.

Lần thử đầu tiên apt autoremove --purge

Nếu nó không hoạt động dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

Kiểm soát những gì sẽ được deinstallt.

dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo dpkg -P Điều này sẽ thanh lọc hạt nhân listet từ lệnh bên dưới.

sudo apt -f install

và chắc chắn

 sudo update-grub
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.